import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@workspace/ui/components/button"; import { Form, FormControl, FormField, FormItem, FormMessage, } from "@workspace/ui/components/form"; import { Input } from "@workspace/ui/components/input"; import { AreaCodeSelect } from "@workspace/ui/composed/area-code-select"; import { Icon } from "@workspace/ui/composed/icon"; import type { Dispatch, SetStateAction } from "react"; import { useRef } from "react"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { z } from "zod"; import { useGlobalStore } from "@/stores/global"; import SendCode from "../send-code"; import type { TurnstileRef } from "../turnstile"; import CloudFlareTurnstile from "../turnstile"; export default function ResetForm({ loading, onSubmit, initialValues, onSwitchForm, }: { loading?: boolean; onSubmit: (data: any) => void; initialValues: any; setInitialValues: Dispatch>; onSwitchForm: Dispatch>; }) { const { t } = useTranslation("auth"); const { common } = useGlobalStore(); const { verify, auth } = common; const formSchema = z.object({ telephone_area_code: z.string(), telephone: z.string(), password: z.string(), code: auth?.email?.enable_verify ? z.string() : z.string().nullish(), cf_token: verify.enable_register_verify && verify.turnstile_site_key ? z.string() : z.string().nullish(), }); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: initialValues, }); const turnstile = useRef(null); const handleSubmit = form.handleSubmit((data) => { try { onSubmit(data); } catch (_error) { turnstile.current?.reset(); } }); return ( <>
(
( { if (value.phone) { form.setValue( "telephone_area_code", value.phone ); } }} placeholder="Area code..." simple value={field.value} /> )} />
)} /> (
)} /> ( )} /> {verify.enable_reset_password_verify && ( ( )} /> )}
{t("reset.existingAccount", "Remember your password?")} 
); }