Add typescript paths to top level folders
[arvados-workbench2.git] / src / store / collection-panel / collection-panel-files / collection-panel-files-state.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { CollectionFile, CollectionDirectory, CollectionFileType } from '~/models/collection-file';
6 import { Tree, TreeNode } from '~/models/tree';
7
8 export type CollectionPanelFilesState = Tree<CollectionPanelDirectory | CollectionPanelFile>;
9
10 export interface CollectionPanelDirectory extends CollectionDirectory {
11     collapsed: boolean;
12     selected: boolean;
13 }
14
15 export interface CollectionPanelFile extends CollectionFile {
16     selected: boolean;
17 }
18
19 export const mapCollectionFileToCollectionPanelFile = (node: TreeNode<CollectionDirectory | CollectionFile>): TreeNode<CollectionPanelDirectory | CollectionPanelFile> => {
20     return {
21         ...node,
22         value: node.value.type === CollectionFileType.DIRECTORY
23             ? { ...node.value, selected: false, collapsed: true }
24             : { ...node.value, selected: false }
25     };
26 };