From 9031b46b57a73514e03f8b3ad70ca5bc4cd2852e Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Mon, 1 Aug 2022 21:03:06 +0200 Subject: [PATCH] fix(store): cleanup default change handlers on watch scope dispose --- packages/vue-flow/src/container/VueFlow/watch.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/vue-flow/src/container/VueFlow/watch.ts b/packages/vue-flow/src/container/VueFlow/watch.ts index 9cbd10b8..7216bafa 100644 --- a/packages/vue-flow/src/container/VueFlow/watch.ts +++ b/packages/vue-flow/src/container/VueFlow/watch.ts @@ -158,7 +158,7 @@ export default (models: ToRefs watch( store.applyDefault, - () => { + (_, __, onCleanup) => { if (store.applyDefault.value) { store.onNodesChange(store.applyNodeChanges) store.onEdgesChange(store.applyEdgeChanges) @@ -166,6 +166,11 @@ export default (models: ToRefs store.hooks.value.nodesChange.off(store.applyNodeChanges) store.hooks.value.edgesChange.off(store.applyEdgeChanges) } + + onCleanup(() => { + store.hooks.value.nodesChange.off(store.applyNodeChanges) + store.hooks.value.edgesChange.off(store.applyEdgeChanges) + }) }, { immediate: true }, ) @@ -198,12 +203,16 @@ export default (models: ToRefs watch( store.autoConnect, - (autoConnectEnabled) => { + (autoConnectEnabled, _, onCleanup) => { if (autoConnectEnabled) { store.onConnect(autoConnector) } else { store.hooks.value.connect.off(autoConnector) } + + onCleanup(() => { + store.hooks.value.connect.off(autoConnector) + }) }, { immediate: true }, )