Ressourcen-Manager: "+" im nativen Fenster fügte keine neuen Einträge hinzu
"+"-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.
This commit is contained in:
@@ -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<string, unknown>)[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(
|
||||
|
||||
Reference in New Issue
Block a user