create method

  1. @override
Component? create(
  1. Node node,
  2. NodesBuilder builder
)
override

Creates a component for the given node, or returns null.

Implementation

@override
Component? create(Node node, NodesBuilder builder) {
  if (node is ElementNode && node.tag == 'FileTree') {
    if (node.children case [ElementNode(tag: 'ul', :final children)]) {
      final List<FileTreeItem> items = [];

      for (final child in children ?? <Node>[]) {
        items.add(buildFileTreeItem(child, builder));
      }

      return _FileTree(items: items);
    }

    throw Exception('Invalid FileTree structure, must contain a single list.');
  }
  return null;
}