Öffnung: ⚙-Knopf springt in den Tür-/Fenstertyp-Editor

Discoverability für die vertieften Bauteil-Typen: neben dem Typ-Dropdown
einer gewählten Öffnung öffnet ein ⚙-Knopf das Ressourcen-Fenster direkt
beim passenden Typeditor-Tab (Tür→doorStyles, Fenster→windowStyles).
- ResourceManager: initialTab-Prop (springt auch bei bereits offenem
  Fenster auf den angeforderten Tab).
- host.onEditOpeningType(kind) + App-Wiring (resourcesTab-State).
tsc + vitest 620 grün.
This commit is contained in:
2026-07-09 01:44:13 +02:00
parent 4ac2ecb504
commit 586c1c99bf
7 changed files with 56 additions and 5 deletions
+10 -2
View File
@@ -2951,7 +2951,7 @@ function EmptyState({ text }: { text: string }) {
// ── Manager-Schublade ──────────────────────────────────────────────────────
type TabId =
export type TabId =
| "components"
| "hatches"
| "lines"
@@ -3064,12 +3064,20 @@ export function ResourceManager({
project,
onClose,
handlers,
initialTab,
}: {
project: Project;
onClose: () => void;
handlers: ResourceManagerHandlers;
/** Beim Öffnen (bzw. bei erneutem Sprung) direkt aktiver Tab, z. B. „doorStyles". */
initialTab?: TabId;
}) {
const [tab, setTab] = useState<TabId>("components");
const [tab, setTab] = useState<TabId>(initialTab ?? "components");
// Erneuter Sprung aus einem Element heraus (z. B. „Typ bearbeiten" an einer
// Öffnung): auf den angeforderten Tab wechseln, auch wenn das Fenster schon offen ist.
useEffect(() => {
if (initialTab) setTab(initialTab);
}, [initialTab]);
const [rect, setRect] = useState<WindowRect>(initialRect);
// Verschieben über die Kopfzeile: Cursor linke/obere Kante festhalten und die