diff --git a/src/lib/components/View.svelte b/src/lib/components/View.svelte index 0e1c860b..f3fcf380 100644 --- a/src/lib/components/View.svelte +++ b/src/lib/components/View.svelte @@ -21,7 +21,6 @@ let manualUpdate = true; let panZoomEnabled = $stateStore.panZoom; let pzoom: typeof panzoom | undefined; - const handlePanZoomChange = () => { if (!pzoom) { return; @@ -157,8 +156,10 @@ }; onMount(() => { + // Queue state changes to avoid race condition + let pendingStateChange = Promise.resolve(); stateStore.subscribe((state) => { - void handleStateChange(state); + pendingStateChange = pendingStateChange.then(() => handleStateChange(state).catch(() => {})); }); window.addEventListener('resize', () => { if ($stateStore.panZoom && pzoom) { @@ -170,7 +171,7 @@ {#if outOfSync}