import { AvatarUploader } from "@/components/avatarUploader"; import { PlusIcon } from "@lume/icons"; import type { Metadata } from "@lume/types"; import { Spinner } from "@lume/ui"; import { createFileRoute, useNavigate } from "@tanstack/react-router"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; export const Route = createFileRoute("/auth/new/profile")({ component: Screen, loader: ({ context }) => { return context.ark.create_keys(); }, }); function Screen() { const keys = Route.useLoaderData(); const navigate = useNavigate(); const { t } = useTranslation(); const { ark } = Route.useRouteContext(); const { register, handleSubmit } = useForm(); const [picture, setPicture] = useState(""); const [loading, setLoading] = useState(false); const onSubmit = async (data: { name: string; about: string; website: string; }) => { setLoading(true); try { // Save account keys const save = await ark.save_account(keys.nsec); // Then create profile if (save) { const profile: Metadata = { ...data, picture }; const eventId = await ark.create_profile(profile); if (eventId) { navigate({ to: "/auth/new/backup", search: { account: keys.npub }, replace: true, }); } } } catch (e) { setLoading(false); toast.error(String(e)); } }; return (

Let's set up your profile.

{picture ? ( avatar ) : null}