From a1fd1aee9cfefb656a0f6615ba28cfab6ca22e1c Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 3 Apr 2024 09:59:27 +0200 Subject: [PATCH] hidden nodes dont crash application on unmount anymore, hidden elements get correctly unobserved --- .../src/lib/components/NodeWrapper/NodeWrapper.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index eff6c733..ad1cbc6e 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -58,7 +58,7 @@ const nodeType = type || 'default'; let nodeRef: HTMLDivElement; - let prevNodeRef: HTMLDivElement; + let prevNodeRef: HTMLDivElement | null = null; const nodeTypeValid = !!$nodeTypes[nodeType]; @@ -129,11 +129,16 @@ resizeObserver?.observe(nodeRef); prevNodeRef = nodeRef; } + } else if (prevNodeRef) { + resizeObserver?.unobserve(prevNodeRef); + prevNodeRef = null; } } onDestroy(() => { - resizeObserver?.unobserve(nodeRef); + if (prevNodeRef) { + resizeObserver?.unobserve(prevNodeRef); + } }); function onSelectNodeHandler(event: MouseEvent | TouchEvent) {