"use client"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useActionState, useEffect, useState } from "react"; import { toast } from "sonner"; import { AuthForm } from "@/components/custom/auth-form"; import { SubmitButton } from "@/components/custom/submit-button"; import { register, RegisterActionState } from "../actions"; export default function Page() { const router = useRouter(); const [email, setEmail] = useState(""); const [state, formAction] = useActionState( register, { status: "idle", }, ); useEffect(() => { if (state.status === "user_exists") { toast.error("Account already exists"); } else if (state.status === "failed") { toast.error("Failed to create account"); } else if (state.status === "invalid_data") { toast.error("Failed validating your submission!"); } else if (state.status === "success") { toast.success("Account created successfully"); router.refresh(); } }, [state, router]); const handleSubmit = (formData: FormData) => { setEmail(formData.get("email") as string); formAction(formData); }; return (

Sign Up

Create an account with your email and password

Sign Up

{"Already have an account? "} Sign in {" instead."}

); }