Restore full item as param of tree callbacks
[arvados-workbench2.git] / src / store / project-panel / project-panel-action.ts
index e0d58247e713f226e33577b35be69be62de1b93c..6e639017dbd7de0bdd0289443efe1169694f8abe 100644 (file)
@@ -3,6 +3,20 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { bindDataExplorerActions } from "../data-explorer/data-explorer-action";
-import { ProjectPanelMiddlewareService } from "./project-panel-middleware-service";
+import { propertiesActions } from "~/store/properties/properties-actions";
+import { Dispatch } from 'redux';
+import { ServiceRepository } from "~/services/services";
+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 projectPanelActions = bindDataExplorerActions(PROJECT_PANEL_ID);
+
+export const openProjectPanel = (projectUuid: string) =>
+    (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        dispatch(propertiesActions.SET_PROPERTY({ key: PROJECT_PANEL_CURRENT_UUID, value: projectUuid }));
+        dispatch(projectPanelActions.REQUEST_ITEMS());
+    };
+
+export const getProjectPanelCurrentUuid = (state: RootState) => getProperty<string>(PROJECT_PANEL_CURRENT_UUID)(state.properties);
 
-export const projectPanelActions = bindDataExplorerActions(ProjectPanelMiddlewareService.getInstance());