remove method
Remove a active StateNodeDefinition
.
When remove a node, we should also remove any other nodes which this node is part of the path, ie.
- given a state of
RootNode > A > B
andRootNode > A > C
- when trying to remove:
RootNode > A
We need to remove bothRootNode > A > B
andRootNode > A > C
Implementation
void remove(StateNodeDefinition node) {
final toRemove = [node];
for (final _activeNode in _activeNodes) {
if (_activeNode.path.contains(node)) {
toRemove.add(_activeNode);
}
}
toRemove.forEach(_activeNodes.remove);
}