'use client'; import { useActionState, useState } from 'react'; import { changePasswordAction, confirmMfaSetupAction, disableMfaAction, regenerateRecoveryCodesAction, startMfaSetupAction } from '@/lib/auth/account-actions'; import { idle } from '@/lib/auth/state'; import { CodeInput, Field, FormMessage, PasswordField, SubmitButton, TextInput } from '@/components/account/form'; export function ChangePasswordForm() { const [state, action] = useActionState(changePasswordAction, idle); return (
); } function RecoveryCodes({ codes }: { codes: string[] }) { const [copied, setCopied] = useState(false); return ( ); } export function MfaSection({ enabled }: { enabled: boolean }) { const [start, startAction] = useActionState(startMfaSetupAction, idle); const [confirm, confirmAction] = useActionState(confirmMfaSetupAction, idle); const [disable, disableAction] = useActionState(disableMfaAction, idle); const [regen, regenAction] = useActionState(regenerateRecoveryCodesAction, idle); const [showDisable, setShowDisable] = useState(false); const [showRegen, setShowRegen] = useState(false); const codes = (confirm.data?.recoveryCodes as string[] | undefined) ?? (regen.data?.recoveryCodes as string[] | undefined); if (confirm.ok && codes) { return (