filterTree function
Implementation
Tree? filterTree(Tree tree, bool Function(Tree node) predicate) {
if (tree.data.data is StoryNode) {
if (predicate(tree)) {
return tree;
} else {
return null;
}
}
final children = [
for (final node in tree.children) //
if (filterTree(node, predicate) case Tree node) //
node
];
if (children.isEmpty) {
if (tree.data.data is ComponentNode) {
if (predicate(tree)) {
return tree;
}
}
return null;
}
return TreeType(
data: tree.data,
children: children,
parent: tree.parent,
);
}