diff --git a/.changeset/silver-plums-relate.md b/.changeset/silver-plums-relate.md new file mode 100644 index 00000000..b813d08d --- /dev/null +++ b/.changeset/silver-plums-relate.md @@ -0,0 +1,5 @@ +--- +"@vue-flow/core": minor +--- + +Use empty array when determing whether to update all node internals diff --git a/packages/core/src/components/Nodes/NodeWrapper.ts b/packages/core/src/components/Nodes/NodeWrapper.ts index b0764588..a8ff068d 100644 --- a/packages/core/src/components/Nodes/NodeWrapper.ts +++ b/packages/core/src/components/Nodes/NodeWrapper.ts @@ -153,7 +153,8 @@ const NodeWrapper = defineComponent({ const zIndex = toRef(() => Number(node.zIndex ?? getStyle.value.zIndex ?? 0)) onUpdateNodeInternals((updateIds) => { - if (updateIds.includes(props.id)) { + // when no ids are passed, update all nodes + if (updateIds.includes(props.id) || !updateIds.length) { updateInternals() } }) diff --git a/packages/core/src/composables/useViewportHelper.ts b/packages/core/src/composables/useViewportHelper.ts index d6716c91..58698417 100644 --- a/packages/core/src/composables/useViewportHelper.ts +++ b/packages/core/src/composables/useViewportHelper.ts @@ -39,7 +39,6 @@ const initialViewportHelper: ViewportHelper = { * * @internal * @param state - * @param getters */ export function useViewportHelper(state: State) { function zoom(scale: number, duration?: number) { diff --git a/packages/core/src/store/actions.ts b/packages/core/src/store/actions.ts index 106538eb..9a58c743 100644 --- a/packages/core/src/store/actions.ts +++ b/packages/core/src/store/actions.ts @@ -53,16 +53,11 @@ import { } from '../utils' import { storeOptionsToSkip, useState } from './state' -export function useActions( - id: string, - state: State, - nodeLookup: ComputedRef, - edgeLookup: ComputedRef, -): Actions { +export function useActions(state: State, nodeLookup: ComputedRef, edgeLookup: ComputedRef): Actions { const viewportHelper = useViewportHelper(state) const updateNodeInternals: Actions['updateNodeInternals'] = (ids) => { - const updateIds = ids ?? state.nodes.map((n) => n.id) ?? [] + const updateIds = ids ?? [] state.hooks.updateNodeInternals.trigger(updateIds) } diff --git a/packages/core/src/utils/storage.ts b/packages/core/src/utils/storage.ts index 51b5f54f..4034d5de 100644 --- a/packages/core/src/utils/storage.ts +++ b/packages/core/src/utils/storage.ts @@ -78,7 +78,7 @@ export class Storage { const getters = useGetters(reactiveState, nodeLookup, edgeLookup) - const actions = useActions(id, reactiveState, nodeLookup, edgeLookup) + const actions = useActions(reactiveState, nodeLookup, edgeLookup) actions.setState({ ...reactiveState, ...preloadedState })