import { useRouter } from "next/router"; import { useState } from "react"; import toast from "react-hot-toast"; import { z } from "zod/v4"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "~/components/custom_ui/form"; import Input from "~/components/custom_ui/input"; import { Button } from "~/components/ui/button"; import { useZodForm } from "~/lib/zodForm"; import { useTranslation } from "~/providers/I18nProvider"; import { api } from "~/utils/api"; export const FormPswReset = () => { const router = useRouter(); const LoginSchema = z.object({ email: z.email(), }); type LoginFormValues = z.infer; const defaultValues: LoginFormValues = { email: "", }; const { locale, t } = useTranslation(); z.config(z.locales[locale]()); const form = useZodForm(LoginSchema, { defaultValues: defaultValues, }); const { mutate } = api.auth.sendResetLink.useMutation({ onError: () => { toast.error(t.auth.login.fail); }, onMutate: () => { setAlreadyRequested(true); }, onSuccess: async () => { toast.success( "Verifica la tua casella di posta per il link di reset password", ); await router.push("/login"); }, }); const [altreadyRequested, setAlreadyRequested] = useState(false); function onSubmit(fields: LoginFormValues) { mutate({ email: fields.email, }); form.reset(); } return ( <>

{t.pwReset.titolo}

(
{t.pwReset.email}{" "}
)} />
); };