"use client"; import * as React from "react"; import { useRouter } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { de } from "@/lib/i18n/de"; import { provisionBrigade } from "../../../_actions/brigades"; /** * Bereitstellungsformular: legt Wehr + ersten wehr_admin an. Zeigt das * Einmal-Passwort nach Erfolg genau einmal an. Warnt, wenn die Adresse nicht * geokodiert werden konnte (Wehr wird dennoch angelegt). */ export function BrigadeProvisionForm() { const router = useRouter(); const [error, setError] = React.useState(null); const [result, setResult] = React.useState<{ tempPassword: string; geocoded: boolean; } | null>(null); const [pending, startTransition] = React.useTransition(); function onSubmit(e: React.FormEvent) { e.preventDefault(); setError(null); const fd = new FormData(e.currentTarget); const payload = { name: String(fd.get("name") ?? ""), strasse: String(fd.get("strasse") ?? ""), plz: String(fd.get("plz") ?? ""), ort: String(fd.get("ort") ?? ""), telefon: String(fd.get("telefon") ?? ""), email: String(fd.get("email") ?? "") || undefined, wehrfuehrer: String(fd.get("wehrfuehrer") ?? "") || undefined, adminEmail: String(fd.get("adminEmail") ?? ""), adminName: String(fd.get("adminName") ?? ""), }; startTransition(async () => { const res = await provisionBrigade(payload); if (!res.ok) { setError(res.error); return; } setResult({ tempPassword: res.tempPassword, geocoded: res.geocoded }); router.refresh(); }); } if (result) { return (

{result.geocoded ? de.admin.geocodeOk : de.admin.geocodeFehler}

{de.admin.tempPasswort}

{result.tempPassword}
); } return (
{de.admin.navWehren}
Erster Wehr-Admin
{error &&

{error}

}
); } function Field({ name, label, type = "text", required = false, }: { name: string; label: string; type?: string; required?: boolean; }) { return ( ); }