"use client"; import { Ban, X } from "lucide-react"; import { useEffect, useRef, useState } from "react"; import { Button } from "@/components/ui/Button"; import type { WiderrufUebersicht } from "@/server/queries/widerruf"; import { WiderrufFormular } from "./WiderrufFormular"; /** * „Widerrufen“ auf der Schluesselseite (#024): Gefahr-Knopf mit Bestaetigungsdialog. Offen/zu * als Zustand wie im AusrollDialog – kein Render-Pfad liest die Ref. */ export function WiderrufKnopf({ uebersicht, ruecksprung, beschriftung = "Widerrufen", }: { uebersicht: WiderrufUebersicht; ruecksprung: string; beschriftung?: string; }) { const dialog = useRef(null); const [offen, setOffen] = useState(false); const name = uebersicht.schluessel[0]?.name ?? ""; useEffect(() => { const element = dialog.current; if (!element) return; if (offen && !element.open) element.showModal(); if (!offen && element.open) element.close(); }, [offen]); const schliessen = () => setOffen(false); return ( <>

„{name}“ widerrufen?

{offen && ( )}
); }