addChild method

TreeNodeId addChild(
  1. TreeNodeId parentId, {
  2. String label = 'New item',
  3. bool folder = false,
  4. T? value,
})

Append a new child under parentId, expand it, select & begin renaming the new node. Returns the new node's id.

Implementation

TreeNodeId addChild(TreeNodeId parentId, {String label = 'New item', bool folder = false, T? value}) {
  final id = _newId();
  final child = TreeNode<T>(id: id, label: label, folder: folder ? true : null, value: value);
  _apply(TreeOps.mapNode<T>(_roots, parentId, (p) => p.copyWith(
        folder: true,
        children: [...p.children, child],
      )));
  _expanded.add(parentId);
  _selected = id;
  _focused = id;
  _editing = id;
  return id;
}