'use client'; import { CableTag } from 'iconoir-react'; import { useRouter } from 'next/navigation'; import { getPublicKey, nip19 } from 'nostr-tools'; import { Resolver, useForm } from 'react-hook-form'; type FormValues = { key: string; }; const resolver: Resolver = async (values) => { return { values: values.key ? values : {}, errors: !values.key ? { key: { type: 'required', message: 'This is required.', }, } : {}, }; }; export default function Page() { const router = useRouter(); const { register, setError, handleSubmit, formState: { errors, isDirty, isValid, isSubmitting }, } = useForm({ resolver }); const onSubmit = async (data: any) => { try { let privkey = data['key']; if (privkey.substring(0, 4) === 'nsec') { privkey = nip19.decode(privkey).data; } if (typeof getPublicKey(privkey) === 'string') { router.push(`/onboarding/login/${privkey}`); } } catch (error) { setError('key', { type: 'custom', message: 'Private Key is invalid, please check again', }); } }; return (

Login with Private Key

{/* #TODO: add function */}
or
{errors.key &&

{errors.key.message}

}
{isSubmitting ? ( ) : ( )}
); }