"use client"; import { FormEvent, useState } from "react"; type FormStatus = { tone: "success" | "error"; message: string; } | null; export default function MinecraftWhitelistForm() { const [submitting, setSubmitting] = useState(false); const [status, setStatus] = useState(null); async function submitRequest(event: FormEvent) { event.preventDefault(); const form = event.currentTarget; setSubmitting(true); setStatus(null); const formData = new FormData(form); const payload = { username: String(formData.get("username") ?? ""), discord: String(formData.get("discord") ?? ""), reason: String(formData.get("reason") ?? ""), }; try { const response = await fetch("/api/minecraft/whitelist/request", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload), }); const result = (await response.json()) as { ok?: boolean; message?: string; }; if (!response.ok || !result.ok) { throw new Error(result.message ?? "Demande refusée."); } form.reset(); setStatus({ tone: "success", message: result.message ?? "Demande envoyée.", }); } catch (error) { setStatus({ tone: "error", message: error instanceof Error ? error.message : "Impossible d'envoyer la demande.", }); } finally { setSubmitting(false); } } return (