in src/components/graph-view-v2.js [102:139]
static getDerivedStateFromProps(
nextProps: IGraphViewProps,
prevState: IGraphViewState
) {
const { edges, nodeKey } = nextProps;
let nodes = nextProps.nodes;
const nodesMap = GraphUtils.getNodesMap(nodes, nodeKey);
const edgesMap = GraphUtils.getEdgesMap(edges);
GraphUtils.linkNodesAndEdges(nodesMap, edges);
// Handle layoutEngine on initial render
if (
prevState.nodes.length === 0 &&
nextProps.layoutEngineType &&
LayoutEngines[nextProps.layoutEngineType]
) {
const layoutEngine = new LayoutEngines[nextProps.layoutEngineType](
nextProps
);
const newNodes = layoutEngine.adjustNodes(nodes, nodesMap);
nodes = newNodes;
}
const nextState = {
componentUpToDate: true,
edges,
edgesMap,
nodes,
nodesMap,
readOnly: nextProps.readOnly,
selectionChanged: false,
};
return nextState;
}