"use client"; import { useActionState } from "react"; import { useFormStatus } from "react-dom"; import { useState, useEffect, useRef } from "react"; import TurnstileWidget from "../../../components/turnstile-widget"; import { submitSignupRequest, type SignupState } from "./actions"; const initialState: SignupState = { success: false, message: "" }; function SubmitButton() { const { pending } = useFormStatus(); return ( {pending ? "Sending..." : "Request Access"} ); } export default function SignupForm() { const [state, formAction] = useActionState(submitSignupRequest, initialState); const [token, setToken] = useState(""); const formRef = useRef(null); useEffect(() => { if (state.success && formRef.current) { formRef.current.reset(); setToken(""); } }, [state.success]); return ( Your name {state.errors?.name ? ( {state.errors.name} ) : null} Email {state.errors?.email ? ( {state.errors.email} ) : null} Store URL (optional) Message {state.errors?.message ? ( {state.errors.message} ) : null} {state.message ? ( {state.message} ) : null} ); }
{state.errors.name}
{state.errors.email}
{state.errors.message}
{state.message}