From d1de33bd6d5e311cf1ac2cad8ccbc484b6051865 Mon Sep 17 00:00:00 2001 From: Karim Date: Wed, 22 Jul 2026 20:07:31 +0200 Subject: [PATCH] =?UTF-8?q?Ressourcen-Manager:=20"+"=20im=20nativen=20Fens?= =?UTF-8?q?ter=20f=C3=BCgte=20keine=20neuen=20Eintr=C3=A4ge=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "+"-Buttons für Bauteile/Schraffuren/Linienstile/Wand-/Decken-/Dachstile waren direkt als onClick={onAddX} verdrahtet — React reicht dabei das Klick-Event als Argument durch. Im In-App-Overlay harmlos (Store- Funktionen ignorieren Extra-Argumente), aber im nativen Ressourcen- Fenster läuft jeder Aufruf über die Tauri-Event-Brücke (emitTo), die den Aufruf als JSON serialisiert — ein React-Event mit zirkulären DOM- Referenzen lässt sich nicht serialisieren, der Aufruf scheiterte lautlos. Fix: alle betroffenen Buttons rufen den Handler jetzt explizit ohne Argument auf. Zusätzlich die bisher stillschweigend verschluckten Fehler in der Fenster-Sync-Brücke sichtbar gemacht (console.error statt leerem catch), fürs nächste Mal. --- src/native/ResourceWindowApp.tsx | 2 +- src/native/resourceWindow.ts | 6 +++++- src/ui/ResourceManager.tsx | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/native/ResourceWindowApp.tsx b/src/native/ResourceWindowApp.tsx index 74afb7a..3346db9 100644 --- a/src/native/ResourceWindowApp.tsx +++ b/src/native/ResourceWindowApp.tsx @@ -66,7 +66,7 @@ export function ResourceWindowApp() { return (...args: unknown[]) => { void import("@tauri-apps/api/event").then(({ emitTo }) => emitTo("main", "resource-command", { name: prop as HandlerName, args }).catch( - () => {}, + (err) => console.error("[resource-window] emit resource-command failed", prop, err), ), ); }; diff --git a/src/native/resourceWindow.ts b/src/native/resourceWindow.ts index a3474c1..1c79bd6 100644 --- a/src/native/resourceWindow.ts +++ b/src/native/resourceWindow.ts @@ -85,7 +85,11 @@ export function useResourceWindowHost( unlisten.push( await listen<{ name: string; args: unknown[] }>("resource-command", (e) => { const fn = (handlersRef.current as unknown as Record)[e.payload.name]; - if (typeof fn === "function") (fn as (...a: unknown[]) => void)(...e.payload.args); + if (typeof fn === "function") { + (fn as (...a: unknown[]) => void)(...e.payload.args); + } else { + console.error("[resource-window-host] unknown resource-command", e.payload.name); + } }), ); unlisten.push( diff --git a/src/ui/ResourceManager.tsx b/src/ui/ResourceManager.tsx index 03e597e..f4eb808 100644 --- a/src/ui/ResourceManager.tsx +++ b/src/ui/ResourceManager.tsx @@ -977,7 +977,7 @@ function ComponentsTab({
{t("resources.components.empty")}
)}
-
@@ -1246,7 +1246,7 @@ function HatchesTab({
{t("resources.hatches.empty")}
)}
- {t("resources.lines.empty")}
)}
- {t(emptyKey)}
)}
-