"use client"; import { useState, type FormEvent } from "react"; import { TextField, TextAreaField } from "@/components/FormField"; import { TurnstileWidget } from "@/components/TurnstileWidget"; export function GroupRegistrationForm({ offerSlug, siteKey }: { offerSlug: string; siteKey: string }) { const [state, setState] = useState<{ sent: boolean; error?: string }>({ sent: false }); const [busy, setBusy] = useState(false); const [token, setToken] = useState(null); const [resetKey, setResetKey] = useState(0); async function submit(event: FormEvent) { event.preventDefault(); setBusy(true); setState({ sent: false }); const data = new FormData(event.currentTarget); try { const response = await fetch("/api/group-registration", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ offerSlug, name: data.get("name"), email: data.get("email"), phone: data.get("phone"), message: data.get("message"), token, }), }); const result = await response.json().catch(() => ({})); if (!response.ok) setState({ sent: false, error: result.error || "Die Anmeldung konnte nicht gesendet werden." }); else { setState({ sent: true }); event.currentTarget.reset(); } } catch { setState({ sent: false, error: "Verbindung fehlgeschlagen. Bitte versuche es erneut." }); } finally { setBusy(false); setResetKey((key) => key + 1); } } if (state.sent) return

Danke, deine Anmeldung ist angekommen. Anna meldet sich, sobald sie die Plätze geprüft hat.

; return (
{state.error &&

{state.error}

} ); }