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

{t.pwReset.titolo}

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