X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/750a9abc14ba1e17784a386399237ebf35fb279b..01b9aef245d1e419bd77999c12b65742e1363bc9:/src/store/project/project-reducer.ts?ds=sidebyside diff --git a/src/store/project/project-reducer.ts b/src/store/project/project-reducer.ts index 8aa69ff20a..4f7545fc97 100644 --- a/src/store/project/project-reducer.ts +++ b/src/store/project/project-reducer.ts @@ -9,7 +9,7 @@ import * as _ from "lodash"; export type ProjectState = Array>; -function findTreeItem(tree: Array>, itemId: string): TreeItem | undefined { +export function findTreeItem(tree: Array>, itemId: string): TreeItem | undefined { let item; for (const t of tree) { item = t.id === itemId @@ -22,6 +22,20 @@ function findTreeItem(tree: Array>, itemId: string): TreeItem return item; } +export function getTreePath(tree: Array>, itemId: string): Array> { + for(const item of tree){ + if(item.id === itemId){ + return [item]; + } else { + const branch = getTreePath(item.items || [], itemId); + if(branch.length > 0){ + return [item, ...branch]; + } + } + } + return []; +} + function resetTreeActivity(tree: Array>) { for (const t of tree) { t.active = false;