fix(core): element watcher not emitting changes with addNodes / addEdges

Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
braks
2022-12-14 15:53:38 +01:00
committed by Braks
parent eef24a368a
commit dab20a6e5c
+34 -28
View File
@@ -16,7 +16,7 @@ export const useWatch = (
let pauseModel: WatchPausableReturn let pauseModel: WatchPausableReturn
let pauseStore: WatchPausableReturn let pauseStore: WatchPausableReturn
const immediate = !!(models.modelValue && models.modelValue.value && models.modelValue.value.length) const immediate = !!(models.modelValue && models.modelValue.value)
// eslint-disable-next-line prefer-const // eslint-disable-next-line prefer-const
pauseModel = watchPausable( pauseModel = watchPausable(
@@ -25,8 +25,17 @@ export const useWatch = (
if (elements && Array.isArray(elements)) { if (elements && Array.isArray(elements)) {
pauseStore?.pause() pauseStore?.pause()
store.setElements(elements) if (models.modelValue?.value?.length) store.setElements(elements)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate },
)
nextTick(() => {
pauseStore = watchPausable( pauseStore = watchPausable(
[store.nodes, store.edges, () => store.edges.value.length, () => store.nodes.value.length], [store.nodes, store.edges, () => store.edges.value.length, () => store.nodes.value.length],
([nodes, edges]) => { ([nodes, edges]) => {
@@ -40,16 +49,9 @@ export const useWatch = (
}) })
} }
}, },
{ immediate: true },
)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate }, { immediate },
) )
})
onScopeDispose(() => { onScopeDispose(() => {
pauseModel?.stop() pauseModel?.stop()
@@ -63,7 +65,7 @@ export const useWatch = (
let pauseModel: WatchPausableReturn let pauseModel: WatchPausableReturn
let pauseStore: WatchPausableReturn let pauseStore: WatchPausableReturn
const immediate = !!(models.nodes && models.nodes.value && models.nodes.value.length) const immediate = !!(models.nodes && models.nodes.value)
// eslint-disable-next-line prefer-const // eslint-disable-next-line prefer-const
pauseModel = watchPausable( pauseModel = watchPausable(
@@ -74,6 +76,15 @@ export const useWatch = (
store.setNodes(nodes) store.setNodes(nodes)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate },
)
nextTick(() => {
pauseStore = watchPausable( pauseStore = watchPausable(
[store.nodes, () => store.nodes.value.length], [store.nodes, () => store.nodes.value.length],
([nodes]) => { ([nodes]) => {
@@ -87,16 +98,9 @@ export const useWatch = (
}) })
} }
}, },
{ immediate: true },
)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate }, { immediate },
) )
})
onScopeDispose(() => { onScopeDispose(() => {
pauseModel?.stop() pauseModel?.stop()
@@ -110,7 +114,7 @@ export const useWatch = (
let pauseModel: WatchPausableReturn let pauseModel: WatchPausableReturn
let pauseStore: WatchPausableReturn let pauseStore: WatchPausableReturn
const immediate = !!(models.edges && models.edges.value && models.edges.value.length) const immediate = !!(models.edges && models.edges.value)
// eslint-disable-next-line prefer-const // eslint-disable-next-line prefer-const
pauseModel = watchPausable( pauseModel = watchPausable(
@@ -121,6 +125,15 @@ export const useWatch = (
store.setEdges(edges) store.setEdges(edges)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate },
)
nextTick(() => {
pauseStore = watchPausable( pauseStore = watchPausable(
[store.edges, () => store.edges.value.length], [store.edges, () => store.edges.value.length],
([edges]) => { ([edges]) => {
@@ -134,16 +147,9 @@ export const useWatch = (
}) })
} }
}, },
{ immediate: true },
)
nextTick(() => {
pauseStore?.resume()
})
}
},
{ immediate }, { immediate },
) )
})
onScopeDispose(() => { onScopeDispose(() => {
pauseModel?.stop() pauseModel?.stop()