"use client"; import { Plus, X } from "lucide-react"; import { useEffect, useRef, useState, type ReactNode } from "react"; import { Button } from "@/components/ui/Button"; /** * „+ Ausrollen“: Knopf mit nativem Dialog (#016, #017). Offen/zu als Zustand, der Effekt * gleicht den Dialog an – so liest kein Render-Pfad die Ref. */ export function AusrollDialog({ titel, children, }: { titel: string; children: (schliessen: () => void) => ReactNode; }) { const dialog = useRef(null); const [offen, setOffen] = useState(false); 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 ( <>

{titel}

{offen && children(schliessen)}
); }