refs #master Merge branch 'origin/master' into 13986-projects-list-and-default-routing
[arvados-workbench2.git] / src / store / side-panel / side-panel-reducer.ts
index cae42ac38456f2d4d7b8835865dcf04367941dd6..bda6965e2d7e65597a3cea46690df4e0275ddc8b 100644 (file)
@@ -4,11 +4,16 @@
 
 import * as _ from "lodash";
 import { sidePanelActions, SidePanelAction } from './side-panel-action';
-import { SidePanelItem } from '../../components/side-panel/side-panel';
-import { ProjectsIcon, ShareMeIcon, WorkflowIcon, RecentIcon, FavoriteIcon, TrashIcon } from "../../components/icon/icon";
+import { SidePanelItem } from '~/components/side-panel/side-panel';
+import { ProjectsIcon, ShareMeIcon, WorkflowIcon, RecentIcon, FavoriteIcon, TrashIcon } from "~/components/icon/icon";
 import { Dispatch } from "redux";
 import { push } from "react-router-redux";
 import { favoritePanelActions } from "../favorite-panel/favorite-panel-action";
+import { projectPanelActions } from "../project-panel/project-panel-action";
+import { projectActions } from "../project/project-action";
+import { getProjectUrl } from "../../models/project";
+import { columns as projectPanelColumns } from "../../views/project-panel/project-panel";
+import { columns as favoritePanelColumns } from "../../views/favorite-panel/favorite-panel";
 
 export type SidePanelState = SidePanelItem[];
 
@@ -56,7 +61,14 @@ export const sidePanelData = [
         open: false,
         active: false,
         margin: true,
-        openAble: true
+        openAble: true,
+        activeAction: (dispatch: Dispatch, uuid: string) => {
+            dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(uuid));
+            dispatch(push(getProjectUrl(uuid)));
+            dispatch(projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns }));
+            dispatch(projectPanelActions.RESET_PAGINATION());
+            dispatch(projectPanelActions.REQUEST_ITEMS());
+        }
     },
     {
         id: SidePanelIdentifiers.SHARED_WITH_ME,
@@ -83,6 +95,7 @@ export const sidePanelData = [
         active: false,
         activeAction: (dispatch: Dispatch) => {
             dispatch(push("/favorites"));
+            dispatch(favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns }));
             dispatch(favoritePanelActions.RESET_PAGINATION());
             dispatch(favoritePanelActions.REQUEST_ITEMS());
         }