'use client' import Link from 'next/link' import { useForm } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import * as z from 'zod' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from '@/components/ui/card' // import { Icons } from "@/components/ui/icons" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form' import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' import httpBrowserClient from '@/lib/httpBrowserClient' import { ApiEndpoints } from '@/config/api' import { Routes } from '@/config/routes' const requestPasswordResetSchema = z.object({ email: z.string().email({ message: 'Invalid email address' }), }) type RequestPasswordResetFormValues = z.infer export default function RequestPasswordResetForm() { const form = useForm({ resolver: zodResolver(requestPasswordResetSchema), defaultValues: { email: '', }, }) const onRequestPasswordReset = async ( data: RequestPasswordResetFormValues ) => { form.clearErrors() try { await httpBrowserClient.post( ApiEndpoints.auth.requestPasswordReset(), data ) } catch (error) { form.setError('email', { message: 'Invalid email address' }) } } return (
Reset your password Enter your email address and we'll send you a link to reset your password {!form.formState.isSubmitted ? (
( Email )} /> ) : ( {/* */} Check your email If an account exists for {form.getValues().email}, you will receive a password reset link shortly. If you don't receive an email, please check your spam folder or contact support. )}
Back to login
) }