[ARVADOS-WORKBENCH2] updated: 1.1.4-69-gae7d952

Git user git at public.curoverse.com
Fri Jun 22 10:09:13 EDT 2018


Summary of changes:
 src/components/project-tree/project-tree.tsx | 12 ++++----
 src/components/side-panel/side-panel.tsx     | 10 +++---
 src/index.tsx                                |  2 +-
 src/store/side-panel/side-panel-reducer.ts   | 46 ++++++++++++++--------------
 src/views/workbench/workbench.tsx            |  8 ++---
 5 files changed, 39 insertions(+), 39 deletions(-)

       via  ae7d952a97542c2cfc12f6f41ab0de93af278919 (commit)
      from  152a17b28656fe498d3b3bbf21d5994e9ccd34ab (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit ae7d952a97542c2cfc12f6f41ab0de93af278919
Author: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
Date:   Fri Jun 22 16:09:05 2018 +0200

    left-side-panel-small-refactor
    
    Feature ##13598
    
    Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>

diff --git a/src/components/project-tree/project-tree.tsx b/src/components/project-tree/project-tree.tsx
index 65e94e4..7406f7f 100644
--- a/src/components/project-tree/project-tree.tsx
+++ b/src/components/project-tree/project-tree.tsx
@@ -14,20 +14,20 @@ import { Project } from '../../models/project';
 
 export interface ProjectTreeProps {
     projects: Array<TreeItem<Project>>;
-    toggleProjectTreeItemOpen: (id: string, status: TreeItemStatus) => void;
-    toggleProjectTreeItemActive: (id: string) => void;
+    toggleOpen: (id: string, status: TreeItemStatus) => void;
+    toggleActive: (id: string) => void;
 }
 
 class ProjectTree<T> extends React.Component<ProjectTreeProps & WithStyles<CssRules>> {
     render(): ReactElement<any> {
-        const { classes, projects, toggleProjectTreeItemOpen, toggleProjectTreeItemActive } = this.props;
+        const { classes, projects, toggleOpen, toggleActive } = this.props;
         const { active, listItemText, row, treeContainer } = classes;
         return (
             <div className={treeContainer}>
                 <Tree items={projects}
-                    toggleItemOpen={toggleProjectTreeItemOpen}
-                    toggleItemActive={toggleProjectTreeItemActive}
-                    render={(project: TreeItem<Project>, level: number) =>
+                    toggleItemOpen={toggleOpen}
+                    toggleItemActive={toggleActive}
+                    render={(project: TreeItem<Project>) =>
                         <span className={row}>
                             <ListItemIcon className={project.active ? active : ''}>
                                 <i className="fas fa-folder" />
diff --git a/src/components/side-panel/side-panel.tsx b/src/components/side-panel/side-panel.tsx
index ecfb5f0..36e4c74 100644
--- a/src/components/side-panel/side-panel.tsx
+++ b/src/components/side-panel/side-panel.tsx
@@ -22,23 +22,23 @@ export interface SidePanelItem {
 }
 
 interface SidePanelProps {
-    toggleSidePanelOpen: (id: string) => void;
-    toggleSidePanelActive: (id: string) => void;
+    toggleOpen: (id: string) => void;
+    toggleActive: (id: string) => void;
     sidePanelItems: SidePanelItem[];
 }
 
 class SidePanel extends React.Component<SidePanelProps & WithStyles<CssRules>> {
     render(): ReactElement<any> {
-        const { classes, toggleSidePanelOpen, toggleSidePanelActive, sidePanelItems } = this.props;
+        const { classes, toggleOpen, toggleActive, sidePanelItems } = this.props;
         const { listItemText, leftSidePanelContainer, row, list, icon, projectIcon, active, activeArrow, inactiveArrow, arrowTransition, arrowRotate } = classes;
         return (
             <div className={leftSidePanelContainer}>
                 <List>
                     {sidePanelItems.map(it => (
                         <span key={it.name}>
-                            <ListItem button className={list} onClick={() => toggleSidePanelActive(it.id)}>
+                            <ListItem button className={list} onClick={() => toggleActive(it.id)}>
                                 <span className={row}>
-                                    {it.name === "Projects" ? <i onClick={() => toggleSidePanelOpen(it.id)} className={`${it.active ? activeArrow : inactiveArrow} 
+                                    {it.name === "Projects" ? <i onClick={() => toggleOpen(it.id)} className={`${it.active ? activeArrow : inactiveArrow} 
                                         ${it.open ? `fas fa-caret-down ${arrowTransition}` : `fas fa-caret-down ${arrowRotate}`}`} /> : null}
                                     <ListItemIcon className={it.active ? active : ''}>
                                         <i className={`${it.icon} ${icon} ${it.name === "Projects" ? projectIcon : ''}`} />
diff --git a/src/index.tsx b/src/index.tsx
index cebe935..1807bd8 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -27,7 +27,7 @@ const store = configureStore({
     auth: {
         user: undefined
     },
-    sidePanel: sidePanelData
+    sidePanel: []
 }, history);
 
 store.dispatch(authActions.INIT());
diff --git a/src/store/side-panel/side-panel-reducer.ts b/src/store/side-panel/side-panel-reducer.ts
index 9f01fa2..8051017 100644
--- a/src/store/side-panel/side-panel-reducer.ts
+++ b/src/store/side-panel/side-panel-reducer.ts
@@ -10,29 +10,29 @@ import { SidePanelItem } from '../../components/side-panel/side-panel';
 export type SidePanelState = SidePanelItem[];
 
 const sidePanelReducer = (state: SidePanelState = sidePanelData, action: SidePanelAction) => {
-    return actions.match(action, {
-        TOGGLE_SIDE_PANEL_ITEM_OPEN: () => {
-            const sidePanel = _.cloneDeep(state);
-            sidePanel[0].open = !sidePanel[0].open;
-            return sidePanel;
-        },
-        TOGGLE_SIDE_PANEL_ITEM_ACTIVE: itemId => {
-            const sidePanel = _.cloneDeep(state);
-            resetSidePanelActivity(sidePanel);
-            sidePanel.map(it => {
-                if (it.id === itemId) {
-                    it.active = true;
-                }
-            });
-            return sidePanel;
-        },
-        RESET_SIDE_PANEL_ACTIVITY: () => {
-            const sidePanel = _.cloneDeep(state);
-            resetSidePanelActivity(sidePanel);
-            return sidePanel;
-        },
-        default: () => state
-    });
+    if (state.length === 0) {
+        return sidePanelData;
+    } else {
+        return actions.match(action, {
+            TOGGLE_SIDE_PANEL_ITEM_OPEN: itemId => state.map(it => itemId === it.id && it.open === false ? {...it, open: true} : {...it, open: false}),
+            TOGGLE_SIDE_PANEL_ITEM_ACTIVE: itemId => {
+                const sidePanel = _.cloneDeep(state);
+                resetSidePanelActivity(sidePanel);
+                sidePanel.map(it => {
+                    if (it.id === itemId) {
+                        it.active = true;
+                    }
+                });
+                return sidePanel;
+            },
+            RESET_SIDE_PANEL_ACTIVITY: () => {
+                const sidePanel = _.cloneDeep(state);
+                resetSidePanelActivity(sidePanel);
+                return sidePanel;
+            },
+            default: () => state
+        });
+    }
 };
 
 export const sidePanelData = [
diff --git a/src/views/workbench/workbench.tsx b/src/views/workbench/workbench.tsx
index ff9a863..9e27432 100644
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@ -185,13 +185,13 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
                         }}>
                         <div className={classes.toolbar} />
                             <SidePanel
-                                toggleSidePanelOpen={this.toggleSidePanelOpen}
-                                toggleSidePanelActive={this.toggleSidePanelActive}
+                                toggleOpen={this.toggleSidePanelOpen}
+                                toggleActive={this.toggleSidePanelActive}
                                 sidePanelItems={sidePanelItems}>
                                 <ProjectTree
                                     projects={projects}
-                                    toggleProjectTreeItemOpen={this.toggleProjectTreeItemOpen}
-                                    toggleProjectTreeItemActive={this.toggleProjectTreeItemActive} />
+                                    toggleOpen={this.toggleProjectTreeItemOpen}
+                                    toggleActive={this.toggleProjectTreeItemActive} />
                             </SidePanel>
                     </Drawer>}
                 <main className={classes.content}>

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list