X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ec9331a8435c9844efe3ba018f6c0d0c3f96d573..7a2f0082071947bfec27ed4f2a16250e1d611d21:/src/models/tree.ts diff --git a/src/models/tree.ts b/src/models/tree.ts index f0b53b46f4..8e18f9fab7 100644 --- a/src/models/tree.ts +++ b/src/models/tree.ts @@ -24,6 +24,12 @@ export enum TreeNodeStatus { LOADED = 'LOADED', } +export enum TreePickerId { + PROJECTS = 'Projects', + SHARED_WITH_ME = 'Shared with me', + FAVORITES = 'Favorites' +} + export const createTree = (): Tree => ({}); export const getNode = (id: string) => (tree: Tree): TreeNode | undefined => tree[id]; @@ -86,7 +92,7 @@ export const getNodeDescendantsIds = (id: string, limit = Infinity) => (tree: const node = getNode(id)(tree); const children = node ? node.children : id === TREE_ROOT_ID - ? getRootNodeChildren(tree) + ? getRootNodeChildrenIds(tree) : []; return children @@ -207,11 +213,12 @@ const toggleParentNodeSelection = (id: string) => (tree: Tree) => { const mapNodeValue = (mapFn: (value: T) => R) => (node: TreeNode): TreeNode => ({ ...node, value: mapFn(node.value) }); -const getRootNodeChildren = (tree: Tree) => +const getRootNodeChildrenIds = (tree: Tree) => Object .keys(tree) .filter(id => getNode(id)(tree)!.parent === TREE_ROOT_ID); + const addChild = (parentId: string, childId: string) => (tree: Tree): Tree => { const node = getNode(parentId)(tree); if (node) {