watch method

Widget watch({
  1. required Widget builder(
    1. BuildContext context,
    2. TreeItemView<TKey, TItem> node
    ),
  2. Key? key,
})

Rebuilds builder when this node's expand/collapse state changes.

Implementation

Widget watch({
  required Widget Function(
    BuildContext context,
    TreeItemView<TKey, TItem> node,
  )
  builder,
  Key? key,
}) {
  return TreeNodeBuilder<TKey, TItem>(
    key: key,
    controller: controller,
    nodeId: this.key,
    builder: (context, hasChildren, isExpanded) {
      final current = controller.getNodeData(this.key);
      if (current == null) {
        return const SizedBox.shrink();
      }
      return builder(
        context,
        TreeItemView<TKey, TItem>(
          key: this.key,
          item: current.data,
          depth: controller.getDepth(this.key),
          parentKey: controller.getParent(this.key),
          controller: controller,
        ),
      );
    },
  );
}