From 8651019eb615186b595d47fe9dd553c229f845fe Mon Sep 17 00:00:00 2001 From: jayrchamp <39443962+jayrchamp@users.noreply.github.com> Date: Tue, 24 Oct 2023 19:45:13 -0400 Subject: [PATCH] fix(core): ensure events introduced by the watcher are released when no longer needed --- packages/core/src/composables/useVueFlow.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/src/composables/useVueFlow.ts b/packages/core/src/composables/useVueFlow.ts index 68a5c477..b80739db 100644 --- a/packages/core/src/composables/useVueFlow.ts +++ b/packages/core/src/composables/useVueFlow.ts @@ -134,7 +134,7 @@ export function useVueFlow(options?: FlowProps): VueFlowStore { detachedScope.run(() => { watch( state.applyDefault, - (shouldApplyDefault) => { + (shouldApplyDefault, __, onCleanup) => { const nodesChangeHandler = (changes: NodeChange[]) => { state.applyNodeChanges(changes) } @@ -150,6 +150,11 @@ export function useVueFlow(options?: FlowProps): VueFlowStore { state.hooks.value.nodesChange.off(nodesChangeHandler) state.hooks.value.edgesChange.off(edgesChangeHandler) } + + onCleanup(() => { + state.hooks.value.nodesChange.off(nodesChangeHandler) + state.hooks.value.edgesChange.off(edgesChangeHandler) + }) }, { immediate: true }, )