import AccentSubmitButton from "@/components/ui/Button"; import TextInput from "@/components/TextInput"; import CenteredForm from "@/layouts/CenteredForm"; import Link from "next/link"; import { useRouter } from "next/router"; import { FormEvent, useState } from "react"; import { toast } from "react-hot-toast"; interface FormData { password: string; token: string; } export default function ResetPassword() { const [submitLoader, setSubmitLoader] = useState(false); const router = useRouter(); const [form, setForm] = useState({ password: "", token: router.query.token as string, }); const [requestSent, setRequestSent] = useState(false); async function submit(event: FormEvent) { event.preventDefault(); if ( form.password !== "" && form.token !== "" && !requestSent && !submitLoader ) { setSubmitLoader(true); const load = toast.loading("Sending password recovery link..."); const response = await fetch("/api/v1/auth/reset-password", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(form), }); const data = await response.json(); if (response.ok) { toast.success(data.response); setRequestSent(true); } else { toast.error(data.response); } toast.dismiss(load); setSubmitLoader(false); } else { toast.error("Please fill out all the fields."); } } return (

{requestSent ? "Password Updated!" : "Reset Password"}

{!requestSent ? ( <>

Enter your email so we can send you a link to create a new password.

New Password

setForm({ ...form, password: e.target.value }) } />
Update Password ) : ( <>

Your password has been successfully updated.

Back to Login
)}
); }