X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e2396eed71c581a862a151a8acd00abaae76a5e9..8d493281629ff304711a1175f59f6d477ae510e2:/src/store/project-tree-picker/project-tree-picker-actions.ts diff --git a/src/store/project-tree-picker/project-tree-picker-actions.ts b/src/store/project-tree-picker/project-tree-picker-actions.ts new file mode 100644 index 00000000..86d9a18d --- /dev/null +++ b/src/store/project-tree-picker/project-tree-picker-actions.ts @@ -0,0 +1,46 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + +import { Dispatch } from "redux"; +import { RootState } from "~/store/store"; +import { ServiceRepository } from "~/services/services"; +import { TreePickerId, receiveTreePickerData } from "~/views-components/project-tree-picker/project-tree-picker"; +import { mockProjectResource } from "~/models/test-utils"; +import { treePickerActions } from "~/store/tree-picker/tree-picker-actions"; + +export const resetPickerProjectTree = () => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { + dispatch(treePickerActions.RESET_TREE_PICKER({pickerId: TreePickerId.PROJECTS})); + dispatch(treePickerActions.RESET_TREE_PICKER({pickerId: TreePickerId.SHARED_WITH_ME})); + dispatch(treePickerActions.RESET_TREE_PICKER({pickerId: TreePickerId.FAVORITES})); + + dispatch(initPickerProjectTree()); +}; + +export const initPickerProjectTree = () => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { + const uuid = services.authService.getUuid(); + + dispatch(getPickerTreeProjects(uuid)); + dispatch(getSharedWithMeProjectsPickerTree(uuid)); + dispatch(getFavoritesProjectsPickerTree(uuid)); +}; + +const getPickerTreeProjects = (uuid: string = '') => { + return getProjectsPickerTree(uuid, TreePickerId.PROJECTS); +}; + +const getSharedWithMeProjectsPickerTree = (uuid: string = '') => { + return getProjectsPickerTree(uuid, TreePickerId.SHARED_WITH_ME); +}; + +const getFavoritesProjectsPickerTree = (uuid: string = '') => { + return getProjectsPickerTree(uuid, TreePickerId.FAVORITES); +}; + +const getProjectsPickerTree = (uuid: string, kind: string) => { + return receiveTreePickerData( + '', + [mockProjectResource({ uuid, name: kind })], + kind + ); +}; \ No newline at end of file