From 29f3d2d5e1b74f1f059b9d2cabc029a323964c6b Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Thu, 5 Oct 2023 22:39:41 +0200 Subject: [PATCH] feat(core): add `areNodesInitialized` getter --- packages/core/src/container/NodeRenderer/NodeRenderer.vue | 3 ++- packages/core/src/store/getters.ts | 5 +++++ packages/core/src/types/store.ts | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/core/src/container/NodeRenderer/NodeRenderer.vue b/packages/core/src/container/NodeRenderer/NodeRenderer.vue index 14595dd6..f69c5edd 100644 --- a/packages/core/src/container/NodeRenderer/NodeRenderer.vue +++ b/packages/core/src/container/NodeRenderer/NodeRenderer.vue @@ -16,6 +16,7 @@ const { nodesConnectable, getNodes, getNodesInitialized, + areNodesInitialized, getNodeTypes, updateNodeDimensions, emits, @@ -25,7 +26,7 @@ const resizeObserver = ref() const instance = getCurrentInstance() -until(() => getNodes.value.length > 0 && getNodesInitialized.value.length === getNodes.value.length) +until(() => areNodesInitialized.value) .toBe(true) .then(() => { nextTick(() => { diff --git a/packages/core/src/store/getters.ts b/packages/core/src/store/getters.ts index 4f865f11..d6d8689e 100644 --- a/packages/core/src/store/getters.ts +++ b/packages/core/src/store/getters.ts @@ -125,6 +125,10 @@ export function useGetters(state: State, nodeIds: ComputedRef, edgeIds getNodes.value.filter((n) => n.initialized && n.handleBounds !== undefined), ) + const areNodesInitialized: ComputedGetters['areNodesInitialized'] = computed( + () => getNodes.value.length > 0 && getNodesInitialized.value.length === getNodes.value.length, + ) + return { getNode, getEdge, @@ -137,5 +141,6 @@ export function useGetters(state: State, nodeIds: ComputedRef, edgeIds getSelectedNodes, getSelectedEdges, getNodesInitialized, + areNodesInitialized, } } diff --git a/packages/core/src/types/store.ts b/packages/core/src/types/store.ts index 84cfc91e..bec11c05 100644 --- a/packages/core/src/types/store.ts +++ b/packages/core/src/types/store.ts @@ -314,6 +314,8 @@ export interface Getters { getSelectedEdges: GraphEdge[] /** returns all nodes that are initialized, i.e. they have actual dimensions */ getNodesInitialized: GraphNode[] + /** returns a boolean flag whether all current nodes are initialized */ + areNodesInitialized: boolean } export type ComputedGetters = {