From d468fb7f1d3618b8b0d104f31d8c0a6002c860ae Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Mon, 1 Aug 2022 14:43:59 +0200 Subject: [PATCH] refactor(nodes): recreate scope on mount --- packages/vue-flow/src/components/Nodes/NodeWrapper.vue | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue index c44cfbb0..af22087f 100644 --- a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue +++ b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue @@ -38,7 +38,7 @@ const nodeElement = ref() const { emit, on } = useNodeHooks(node, emits) -const scope = effectScope() +let scope: ReturnType | undefined = effectScope() const dragging = useDrag({ id, @@ -91,11 +91,13 @@ onUpdateNodeInternals((updateIds) => { }) onMounted(() => { + if (!scope) scope = effectScope() + scope.run(() => { watch( [() => node.width, () => node.height, () => node.type, () => node.sourcePosition, () => node.targetPosition], () => { - updateNodeDimensions([{ id, nodeElement: nodeElement.value }]) + updateNodeDimensions([{ id, nodeElement: nodeElement.value, forceUpdate: true }]) }, { flush: 'post', immediate: true }, ) @@ -132,7 +134,8 @@ onMounted(() => { onBeforeUnmount(() => { observer.stop() - scope.stop() + scope?.stop() + scope = undefined }) const onMouseEnter = (event: MouseEvent) => {