import { useState } from "react"; import { useNavigate } from "react-router"; import { toast } from "sonner"; import MnemonicInputs from "src/components/mnemonic/MnemonicInputs"; import { Button } from "src/components/ui/button"; import { Checkbox } from "src/components/ui/checkbox"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "src/components/ui/dialog"; import { Label } from "src/components/ui/label"; import { useInfo } from "src/hooks/useInfo"; import { handleRequestError } from "src/utils/handleRequestError"; import { request } from "src/utils/request"; type Props = { open?: boolean; defaultOpen?: boolean; onOpenChange?(open: boolean): void; mnemonic: string; }; export default function MnemonicDialog({ open, defaultOpen, onOpenChange, mnemonic, }: Props) { const { data: info } = useInfo(); const { mutate: refetchInfo } = useInfo(); const [backedUp, setIsBackedUp] = useState(false); const [backedUp2, setIsBackedUp2] = useState(false); const navigate = useNavigate(); async function onSubmit(e: React.FormEvent) { e.preventDefault(); const sixMonthsLater = new Date(); sixMonthsLater.setMonth(sixMonthsLater.getMonth() + 6); try { await request("/api/backup-reminder", { method: "PATCH", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ nextBackupReminder: sixMonthsLater.toISOString(), }), }); await refetchInfo(); navigate("/"); toast("Recovery phrase backed up!"); } catch (error) { handleRequestError("Failed to store back up info", error); } } return ( Recovery Phrase Write these words down, store them somewhere safe, and keep them secret.
setIsBackedUp(!backedUp)} className="mt-0.5" />
{backedUp && !info?.albyAccountConnected && (
setIsBackedUp2(!backedUp2)} className="mt-0.5" />
)}
); }