"use client"; import { useState, type FormEvent } from "react"; const fieldClass = "w-full rounded-2xl border border-anouma-taupe/30 bg-white px-5 py-3 text-base text-anouma-plum placeholder:text-anouma-plum/50 focus:border-anouma-mauve-dark focus:outline-none"; 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)} className={fieldClass} autoComplete="name" />
setEmail(e.target.value)} className={fieldClass} autoComplete="email" />
{error && (

{error}

)}
); }