import useGlobalStore from '@/config/use-global'; 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/custom-components/area-code-select'; import { Icon } from '@workspace/ui/custom-components/icon'; import { useTranslations } from 'next-intl'; import { Dispatch, SetStateAction, useRef, useState } from 'react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; import SendCode from '../send-code'; import CloudFlareTurnstile, { TurnstileRef } from '../turnstile'; export default function ResetForm({ loading, onSubmit, initialValues, onSwitchForm, }: { loading?: boolean; onSubmit: (data: any) => void; initialValues: any; setInitialValues: Dispatch>; onSwitchForm: Dispatch>; }) { const t = useTranslations('auth.reset'); const { common } = useGlobalStore(); const { verify, auth } = common; const [targetDate, setTargetDate] = useState(); 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); } }} /> )} />
)} /> (
)} /> ( )} /> {verify.enable_reset_password_verify && ( ( )} /> )}
{t('existingAccount')} 
); }