diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index f5a374b3..cb21b9d1 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -57,7 +57,7 @@ const nodeType = type || 'default'; let nodeRef: HTMLDivElement; - let prevNodeRef: HTMLDivElement; + let prevNodeRef: HTMLDivElement | null = null; const nodeTypeValid = !!$nodeTypes[nodeType]; @@ -119,20 +119,17 @@ setContext('svelteflow__node_connectable', connectableStore); $: { - if (nodeRef) { - if (!prevNodeRef) { - resizeObserver?.observe(nodeRef); - prevNodeRef = nodeRef; - } else if (prevNodeRef !== nodeRef || (!computedWidth && !computedHeight)) { - resizeObserver?.unobserve(prevNodeRef); - resizeObserver?.observe(nodeRef); - prevNodeRef = nodeRef; - } + if (resizeObserver && nodeRef !== prevNodeRef) { + prevNodeRef && resizeObserver.unobserve(prevNodeRef); + nodeRef && resizeObserver.observe(nodeRef); + prevNodeRef = nodeRef; } } onDestroy(() => { - resizeObserver?.unobserve(nodeRef); + if (prevNodeRef) { + resizeObserver?.unobserve(prevNodeRef); + } }); function onSelectNodeHandler(event: MouseEvent | TouchEvent) {