removeOldNodes()

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
      );
    }
  }