feat: implement filter function for explorer

This commit is contained in:
Ben Schlegel 2023-09-16 17:28:58 +02:00
parent c7d3474ba8
commit 58aea1cb07
No known key found for this signature in database
GPG key ID: 8BDB8891C1575E22

View file

@ -66,6 +66,21 @@ export class FileNode {
this.children.forEach((e) => e.print(depth + 1)) this.children.forEach((e) => e.print(depth + 1))
} }
filter(filterFn: (node: FileNode) => boolean) {
const filteredNodes: FileNode[] = []
const traverse = (node: FileNode) => {
if (filterFn(node)) {
filteredNodes.push(node)
}
node.children.forEach(traverse)
}
traverse(this)
this.children = filteredNodes
}
/** /**
* Get folder representation with state of tree. * Get folder representation with state of tree.
* Intended to only be called on root node before changes to the tree are made * Intended to only be called on root node before changes to the tree are made