X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/6d13a683ff5ce887bfd4c20b0bdbd18298dd86b2..73122efb6429184611d17b3278ecbe9c2e26a6c2:/src/store/project-panel/project-panel-action.ts diff --git a/src/store/project-panel/project-panel-action.ts b/src/store/project-panel/project-panel-action.ts index 33cedd71..3079e0ec 100644 --- a/src/store/project-panel/project-panel-action.ts +++ b/src/store/project-panel/project-panel-action.ts @@ -2,7 +2,24 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { bindDataExplorerActions } from "../data-explorer/data-explorer-action"; +import { Dispatch } from 'redux'; +import { bindDataExplorerActions } from "store/data-explorer/data-explorer-action"; +import { propertiesActions } from "store/properties/properties-actions"; +import { RootState } from 'store/store'; +import { getProperty } from "store/properties/properties"; export const PROJECT_PANEL_ID = "projectPanel"; +export const PROJECT_PANEL_CURRENT_UUID = "projectPanelCurrentUuid"; +export const IS_PROJECT_PANEL_TRASHED = 'isProjectPanelTrashed'; export const projectPanelActions = bindDataExplorerActions(PROJECT_PANEL_ID); + +export const openProjectPanel = (projectUuid: string) => + (dispatch: Dispatch) => { + dispatch(propertiesActions.SET_PROPERTY({ key: PROJECT_PANEL_CURRENT_UUID, value: projectUuid })); + dispatch(projectPanelActions.REQUEST_ITEMS()); + }; + +export const getProjectPanelCurrentUuid = (state: RootState) => getProperty(PROJECT_PANEL_CURRENT_UUID)(state.properties); + +export const setIsProjectPanelTrashed = (isTrashed: boolean) => + propertiesActions.SET_PROPERTY({ key: IS_PROJECT_PANEL_TRASHED, value: isTrashed });