use nodesInitialized from adoptUserNodes

This commit is contained in:
peterkogo
2025-04-09 14:20:11 +02:00
parent 93d083f56d
commit be4e266d69
5 changed files with 13 additions and 9 deletions
@@ -9,15 +9,17 @@ export type UseNodesInitializedOptions = {
};
const selector = (options: UseNodesInitializedOptions) => (s: ReactFlowState) => {
if (!options.includeHiddenNodes) {
return s.nodesInitialized;
}
if (s.nodeLookup.size === 0) {
return false;
}
for (const [, { hidden, internals }] of s.nodeLookup) {
if (options.includeHiddenNodes || !hidden) {
if (internals.handleBounds === undefined || !nodeHasDimensions(internals.userNode)) {
return false;
}
for (const [, { internals }] of s.nodeLookup) {
if (internals.handleBounds === undefined || !nodeHasDimensions(internals.userNode)) {
return false;
}
}
+2 -2
View File
@@ -91,9 +91,9 @@ const createStore = ({
if (fitViewQueued && nodesInitialized) {
resolveFitView();
set({ nodes, fitViewQueued: false, fitViewOptions: undefined });
set({ nodes, nodesInitialized, fitViewQueued: false, fitViewOptions: undefined });
} else {
set({ nodes });
set({ nodes, nodesInitialized });
}
},
setEdges: (edges: Edge[]) => {
+2 -1
View File
@@ -46,7 +46,7 @@ const getInitialState = ({
const storeNodeExtent = nodeExtent ?? infiniteExtent;
updateConnectionLookup(connectionLookup, edgeLookup, storeEdges);
adoptUserNodes(storeNodes, nodeLookup, parentLookup, {
const nodesInitialized = adoptUserNodes(storeNodes, nodeLookup, parentLookup, {
nodeOrigin: storeNodeOrigin,
nodeExtent: storeNodeExtent,
elevateNodesOnSelect: false,
@@ -69,6 +69,7 @@ const getInitialState = ({
height: 0,
transform,
nodes: storeNodes,
nodesInitialized,
nodeLookup,
parentLookup,
edges: storeEdges,
+1
View File
@@ -53,6 +53,7 @@ export type ReactFlowStore<NodeType extends Node = Node, EdgeType extends Edge =
height: number;
transform: Transform;
nodes: NodeType[];
nodesInitialized: boolean;
nodeLookup: NodeLookup<InternalNode<NodeType>>;
parentLookup: ParentLookup<InternalNode<NodeType>>;
edges: EdgeType[];