use nodesInitialized from adoptUserNodes
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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[]) => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -88,7 +88,7 @@ export function adoptUserNodes<NodeType extends NodeBase>(
|
||||
): boolean {
|
||||
const _options = mergeObjects(adoptUserNodesDefaultOptions, options);
|
||||
|
||||
let nodesInitialized = true;
|
||||
let nodesInitialized = nodes.length > 0;
|
||||
const tmpLookup = new Map(nodeLookup);
|
||||
const selectedNodeZ: number = _options?.elevateNodesOnSelect ? 1000 : 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user