Clean up project-panel-actions code
[arvados-workbench2.git] / src / store / project-panel / project-panel-action.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { Dispatch } from 'redux';
6 import { bindDataExplorerActions } from "~/store/data-explorer/data-explorer-action";
7 import { propertiesActions } from "~/store/properties/properties-actions";
8 import { RootState } from '~/store/store';
9 import { getProperty } from "~/store/properties/properties";
10
11 export const PROJECT_PANEL_ID = "projectPanel";
12 export const PROJECT_PANEL_CURRENT_UUID = "projectPanelCurrentUuid";
13 export const IS_PROJECT_PANEL_TRASHED = 'isProjectPanelTrashed';
14 export const projectPanelActions = bindDataExplorerActions(PROJECT_PANEL_ID);
15
16 export const openProjectPanel = (projectUuid: string) =>
17     (dispatch: Dispatch) => {
18         dispatch(propertiesActions.SET_PROPERTY({ key: PROJECT_PANEL_CURRENT_UUID, value: projectUuid }));
19         dispatch(projectPanelActions.REQUEST_ITEMS());
20     };
21
22 export const getProjectPanelCurrentUuid = (state: RootState) => getProperty<string>(PROJECT_PANEL_CURRENT_UUID)(state.properties);
23
24 export const setIsProjectPanelTrashed = (isTrashed: boolean) => 
25     propertiesActions.SET_PROPERTY({ key: IS_PROJECT_PANEL_TRASHED, value: isTrashed });