removeNodeFromTree static method

ElectricalNode? removeNodeFromTree(
  1. ElectricalNode root,
  2. String nodeIdToRemove
)

Remove a node from tree and return new tree root Returns null if root itself is removed

Implementation

static ElectricalNode? removeNodeFromTree(
    ElectricalNode root, String nodeIdToRemove) {
  if (root.id == nodeIdToRemove) return null;

  return root.map(
    source: (node) => node.copyWith(
        children: _removeNodeFromChildren(node.children, nodeIdToRemove)),
    protection: (node) => node.copyWith(
        children: _removeNodeFromChildren(node.children, nodeIdToRemove)),
    panel: (node) => node.copyWith(
        children: _removeNodeFromChildren(node.children, nodeIdToRemove)),
    load: (node) => node, // Loads have no children
  );
}