"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm, SubmitHandler } from "react-hook-form"; import { z } from "zod"; import { Input } from "./ui/input"; import { Button } from "./ui/button"; import { Label } from "./ui/label"; import { sendResetEmail } from "@/utils/forgotPassword"; import { useState } from "react"; const schema = z.object({ email: z.string().email("Email tidak valid"), }); type FormFields = z.infer; export default function ForgotPasswordForm() { const [successMsg, setSuccessMsg] = useState(null); const { register, handleSubmit, setError, formState: { errors, isSubmitting }, } = useForm({ resolver: zodResolver(schema) }); const onSubmit: SubmitHandler = async ({ email }) => { setSuccessMsg(null); const res = await sendResetEmail(email); if (!res.ok) { setError("root", { message: res.message }); return; } setSuccessMsg(res.message); }; return (
{errors.email && (
{errors.email.message}
)} {errors.root && (
{errors.root.message}
)} {successMsg && (
{successMsg}
)}
); }