in src/components/graph-view.js [396:434]
removeOldNodes(prevNodes: any, prevNodesMap: any, nodesMap: any) {
const nodeKey = this.props.nodeKey;
// remove old nodes
for (let i = 0; i < prevNodes.length; i++) {
const prevNode = prevNodes[i];
const nodeId = prevNode[nodeKey];
// Check for deletions
if (this.getNodeById(nodeId, nodesMap)) {
continue;
}
const prevNodeMapNode = this.getNodeById(nodeId, prevNodesMap);
if (prevNodeMapNode) {
// remove all outgoing edges
prevNodeMapNode.outgoingEdges.forEach(edge => {
this.removeEdgeElement(edge.source, edge.target);
});
// remove all incoming edges
prevNodeMapNode.incomingEdges.forEach(edge => {
this.removeEdgeElement(edge.source, edge.target);
});
}
// remove node
const timeoutId = `nodes-${nodeId}`;
// cancel an asyncRenderNode animation
cancelAnimationFrame(this.nodeTimeouts[timeoutId]);
GraphUtils.removeElementFromDom(
`node-${nodeId}-container`,
this.viewWrapper.current
);
}
}