"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { OneTimeCredentials } from "@/components/OneTimeCredentials"; import { inviteAdmin, type IssuedCredentials } from "../actions"; export function InviteAdminForm() { const [issued, setIssued] = useState(null); const [error, setError] = useState(null); const [pending, setPending] = useState(false); const router = useRouter(); return (
{issued && } {error && (
{error}
)}
{ setPending(true); setError(null); try { const result = await inviteAdmin(fd); if (result && "error" in result) { setError(result.error); return; } setIssued(result ?? null); router.refresh(); } catch { // Filet pour l'imprévu : les échecs de saisie, eux, sont renvoyés // par l'action et affichés tels quels ci-dessus. setError("Impossible de créer ce compte. Réessayez dans un instant."); } finally { setPending(false); } }} >

Un mot de passe temporaire est généré et affiché une seule fois ici. L'invité devra le changer à sa première connexion.

); }