mirror of
https://github.com/alrayyes/wiki.git
synced 2025-05-21 15:22:12 +00:00
feat(explorer): implement map
fn argument
Add a function for mapping over all FileNodes as an option for `Explorer`
This commit is contained in:
parent
31d16fbd2c
commit
3d8c470c0d
2 changed files with 16 additions and 0 deletions
quartz/components
|
@ -9,6 +9,7 @@ export interface Options {
|
|||
useSavedState: boolean
|
||||
sortFn: (a: FileNode, b: FileNode) => number
|
||||
filterFn?: (node: FileNode) => boolean
|
||||
mapFn?: (node: FileNode) => void
|
||||
}
|
||||
|
||||
type DataWrapper = {
|
||||
|
@ -86,6 +87,16 @@ export class FileNode {
|
|||
this.children = filteredNodes
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter FileNode tree. Behaves similar to `Array.prototype.map()`, but modifies tree in place
|
||||
* @param mapFn function to filter tree with
|
||||
*/
|
||||
map(mapFn: (node: FileNode) => void) {
|
||||
mapFn(this)
|
||||
|
||||
this.children.forEach((child) => child.map(mapFn))
|
||||
}
|
||||
|
||||
/**
|
||||
* Get folder representation with state of tree.
|
||||
* Intended to only be called on root node before changes to the tree are made
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue