import { Controller, useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import * as yup from "yup"; import { useNotificationContext } from "@app/components/context/Notifications/NotificationProvider"; import issueBackupKey from "@app/components/utilities/cryptography/issueBackupKey"; import { Button, FormControl, Input } from "@app/components/v2"; import { useUser } from "@app/context"; const schema = yup.object({ password: yup.string().required("Password is required") }).required(); export type FormData = yup.InferType; export const EmergencyKitSection = () => { const { createNotification } = useNotificationContext(); const { user } = useUser(); const { reset, control, handleSubmit } = useForm({ defaultValues: { password: "", }, resolver: yupResolver(schema) }); const onFormSubmit = ({ password }: FormData) => { try { if (!user?.email) return; issueBackupKey({ email: user.email, password, personalName: `${user.firstName} ${user.lastName}`, setBackupKeyError: () => {}, setBackupKeyIssued: () => {} }); reset(); } catch (err) { console.error(err); createNotification({ text: "Failed to download emergency kit", type: "error" }); } } return (

Emergency Kit

The kit contains information you can use to recover your account.

( )} control={control} name="password" />
); }