// DXF-Export-Dialog (modal). Fragt „Schraffuren mitexportieren?" ab und weist auf // die Meter-Einheit hin (DXF ist Modell-Space in echten Metern, 1:1). Muster wie // ExportPdfDialog: abgedunkeltes Overlay, Klick auf den Hintergrund + Esc schliessen. // // Rein gesteuert: hält nur Formular-Zustand und meldet die Entscheidung über // `onExport` nach oben (App führt den Export aus, da es den Plan erzeugt). // Bezeichner englisch, UI-Text/Kommentare deutsch (CONVENTIONS.md). import { useEffect, useState } from "react"; import { t } from "../i18n"; import { Dropdown } from "./Dropdown"; /** Entscheidung, die der Dialog beim Bestätigen liefert. */ export interface ExportDxfDecision { includeHatches: boolean; } export interface ExportDxfDialogProps { /** Titel/Geschossname (nur Anzeige im Dialogkopf). */ planTitle: string; onExport: (decision: ExportDxfDecision) => void; onClose: () => void; } export function ExportDxfDialog({ planTitle, onExport, onClose }: ExportDxfDialogProps) { useEffect(() => { const onKey = (e: KeyboardEvent) => { if (e.key === "Escape") onClose(); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [onClose]); const [includeHatches, setIncludeHatches] = useState(true); const onConfirm = () => onExport({ includeHatches }); return (