'use client'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { useRequestResetPassword } from '@kit/supabase/hooks/use-request-reset-password'; import { Alert, AlertDescription } from '@kit/ui/alert'; import { Button } from '@kit/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; import { Trans } from '@kit/ui/trans'; import { useCaptchaToken } from '../captcha/client'; import { AuthErrorAlert } from './auth-error-alert'; const PasswordResetSchema = z.object({ email: z.string().email(), }); export function PasswordResetRequestContainer(params: { redirectPath: string; }) { const { t } = useTranslation('auth'); const resetPasswordMutation = useRequestResetPassword(); const { captchaToken, resetCaptchaToken } = useCaptchaToken(); const error = resetPasswordMutation.error; const success = resetPasswordMutation.data; const form = useForm>({ resolver: zodResolver(PasswordResetSchema), defaultValues: { email: '', }, }); return ( <>
{ const redirectTo = new URL( params.redirectPath, window.location.origin, ).href; return resetPasswordMutation .mutateAsync({ email, redirectTo, captchaToken, }) .catch(() => { resetCaptchaToken(); }); })} className={'w-full'} >
( )} />
); }