From 7d788f7e195aa9c1172840501b116e55522cf56f Mon Sep 17 00:00:00 2001 From: Max Richter Date: Thu, 7 May 2026 21:10:31 +0200 Subject: [PATCH] feat: surface error when dropping wasm node --- app/src/lib/graph-interface/graph/drop.events.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/lib/graph-interface/graph/drop.events.ts b/app/src/lib/graph-interface/graph/drop.events.ts index 02ca60a..a6c9896 100644 --- a/app/src/lib/graph-interface/graph/drop.events.ts +++ b/app/src/lib/graph-interface/graph/drop.events.ts @@ -1,3 +1,4 @@ +import { toast } from '@nodarium/ui'; import { GraphSchema, type NodeId } from '@nodarium/types'; import type { GraphManager } from '../graph-manager.svelte'; import type { GraphState } from '../graph-state.svelte'; @@ -41,6 +42,9 @@ export class FileDropEventManager { props, position: pos }); + }).catch((e) => { + toast(`Failed to load node: ${nodeId}`, 'error'); + console.error(e); }); } else if (event.dataTransfer.files.length) { const file = event.dataTransfer.files[0]; @@ -65,8 +69,13 @@ export class FileDropEventManager { reader.onload = (e) => { const buffer = e.target?.result as ArrayBuffer; if (buffer) { - const state = GraphSchema.parse(JSON.parse(buffer.toString())); - this.graph.load(state); + try { + const state = GraphSchema.parse(JSON.parse(buffer.toString())); + this.graph.load(state); + } catch (e) { + toast('Failed to load graph: invalid file', 'error'); + console.error(e); + } } }; reader.readAsText(file);