addNode method
Implementation
MindMap addNode({required String parentId, required NodeMeta nodeMeta}) {
assertValidId(parentId);
final newNode = Node(id: nodeMeta.id ?? uuid.v4(), parentId: parentId);
final newNodeMeta = nodeMeta.copyWith(id: newNode.id);
Map<String, Node> newNodes = Map.of(nodes);
newNodes[newNode.id] = newNode;
if (parentId != rootNodeId) {
final parentNode = nodes[parentId]!.copyWith(
children: [...nodes[parentId]!.children, newNode],
);
newNodes = _updateWithAncestors(newNodes, parentNode);
}
return _copyWith(
nodes: newNodes,
nodeMetas: Map.of(nodeMetas)..[newNode.id] = newNodeMeta,
);
}