Fix incorrect projets item toggling
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Sat, 30 Jun 2018 13:54:24 +0000 (15:54 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Sat, 30 Jun 2018 13:54:24 +0000 (15:54 +0200)
Feature #13678

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/store/navigation/navigation-action.ts
src/views/workbench/workbench.tsx

index a4b9a8f6ede99f23d6ef58ae35710a04ac08912e..daeb26fd2a9ee0d9e0b4ab7f8dd5441e93b77412 100644 (file)
@@ -14,6 +14,7 @@ import dataExplorerActions from "../data-explorer/data-explorer-action";
 import { PROJECT_PANEL_ID } from "../../views/project-panel/project-panel";
 import { projectPanelItems } from "../../views/project-panel/project-panel-selectors";
 import { RootState } from "../store";
+import { sidePanelData } from "../side-panel/side-panel-reducer";
 
 export const getResourceUrl = (resource: Resource): string => {
     switch (resource.kind) {
@@ -31,12 +32,16 @@ export enum ItemMode {
 
 export const setProjectItem = (itemId: string, itemMode: ItemMode) =>
     (dispatch: Dispatch, getState: () => RootState) => {
-        const { projects, router } = getState();
+        const { projects, router, sidePanel } = getState();
         const treeItem = findTreeItem(projects.items, itemId);
 
         if (treeItem) {
 
             dispatch(sidePanelActions.RESET_SIDE_PANEL_ACTIVITY());
+            const projectsItem = sidePanelData[0];
+            if(sidePanel.some(item => item.id === projectsItem.id && !item.open)){
+                dispatch(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(projectsItem.id));
+            }
 
             if (itemMode === ItemMode.OPEN || itemMode === ItemMode.BOTH) {
                 dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN(treeItem.data.uuid));
index 85ed90c99910d36647dd98fd594beb0afbc35904..b8baeadc630988f70a8c6234eefb9df2a5ca4cb0 100644 (file)
@@ -202,16 +202,10 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
     }
 
     renderProjectPanel = (props: RouteComponentProps<{ id: string }>) => <ProjectPanel
-        onItemRouteChange={this.handleItemRouteChange}
+        onItemRouteChange={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE))}
         onItemClick={item => this.props.dispatch<any>(setProjectItem(item.uuid, ItemMode.ACTIVE))}
         {...props} />
 
-    handleItemRouteChange = (itemId: string) => {
-        this.props.dispatch<any>(sidePanelActions.RESET_SIDE_PANEL_ACTIVITY());
-        this.props.dispatch<any>(sidePanelActions.TOGGLE_SIDE_PANEL_ITEM_OPEN(sidePanelData[0].id));
-        this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE));
-    }
-
 }
 
 export default connect<WorkbenchDataProps>(