"use client"; import { useState, type FormEvent } from "react"; import { TextField, FormError } from "@/components/FormField"; export function RegisterForm({ slug }: { slug: string }) { const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [status, setStatus] = useState<"idle" | "loading" | "done" | "error">("idle"); const [error, setError] = useState(null); async function handleSubmit(e: FormEvent) { e.preventDefault(); setStatus("loading"); setError(null); try { const res = await fetch(`/api/meetings/${slug}/register`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name, email }), }); const data = await res.json(); if (!res.ok) { setError(data.error || "Anmeldung leider nicht möglich."); setStatus("error"); return; } setStatus("done"); } catch { setError("Verbindung fehlgeschlagen. Bitte versuche es erneut."); setStatus("error"); } } if (status === "done") { return (

Danke für deine Anmeldung – wir freuen uns auf dich!

); } return (
setName(e.target.value)} autoComplete="name" /> setEmail(e.target.value)} autoComplete="email" /> {error && {error}} ); }