refs #master Merge branch 'origin/master' into 13828-trash-view
[arvados-workbench2.git] / src / store / tree-picker / tree-picker.ts
index ee45beccd5451b11621dd136ad41ec183a23b6fa..259a4b8d53de78e1b7d9992ae85b4d69d5fe40ca 100644 (file)
@@ -2,22 +2,24 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Tree } from "../../models/tree";
-import { TreeItemStatus } from "../../components/tree/tree";
+import { Tree } from "~/models/tree";
+import { TreeItemStatus } from "~/components/tree/tree";
 
-export type TreePicker = Tree<TreePickerNode>;
+export type TreePicker = { [key: string]: Tree<TreePickerNode> };
 
-export interface TreePickerNode {
-    id: string;
-    value: any;
+export interface TreePickerNode<Value = any> {
+    nodeId: string;
+    value: Value;
     selected: boolean;
     collapsed: boolean;
     status: TreeItemStatus;
 }
 
-export const createTreePickerNode = (data: {id: string, value: any}) => ({
+export const createTreePickerNode = (data: { nodeId: string, value: any }) => ({
     ...data,
     selected: false,
     collapsed: true,
     status: TreeItemStatus.INITIAL
-});
\ No newline at end of file
+});
+
+export const getTreePicker = <Value = {}>(id: string) => (state: TreePicker): Tree<TreePickerNode<Value>> | undefined => state[id];
\ No newline at end of file