/* eslint-disable @typescript-eslint/no-explicit-any */ import BaseLayout from '@layouts/baseLayout'; import OnboardingLayout from '@layouts/onboardingLayout'; import { motion } from 'framer-motion'; import { useRouter } from 'next/router'; import { nip19 } from 'nostr-tools'; import { JSXElementConstructor, ReactElement, ReactFragment, ReactPortal } from 'react'; 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) => { let privkey = data['key']; if (privkey.substring(0, 4) === 'nsec') { privkey = nip19.decode(privkey).data; } try { router.push({ pathname: '/onboarding/fetch-profile', query: { privkey: privkey }, }); } catch (error) { setError('key', { type: 'custom', message: 'Private Key is invalid, please check again', }); } }; return (
{/* spacer */}
Import your private key You can import private key format as hex string or nsec. If you have installed Nostr Connect compality wallet in your mobile, you can connect by scan QR Code below
{errors.key &&

{errors.key.message}

}
{isSubmitting ? ( ) : ( )}
); } Page.getLayout = function getLayout( page: | string | number | boolean | ReactElement> | ReactFragment | ReactPortal ) { return ( {page} ); };