Merge branch 'master' into 13883-arrow-animation-is-not-working-after-loading
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Thu, 26 Jul 2018 07:22:44 +0000 (09:22 +0200)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Thu, 26 Jul 2018 07:22:44 +0000 (09:22 +0200)
refs #13883

Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>

src/components/tree/tree.tsx
src/store/navigation/navigation-action.ts
src/store/project/project-reducer.test.ts
src/store/project/project-reducer.ts

index 604ba4923b47b085432da100b580349f8f9079c5..e24c1443a039332313371d6916c27c206bce740a 100644 (file)
@@ -55,7 +55,6 @@ export interface TreeItem<T> {
     open: boolean;
     active: boolean;
     status: TreeItemStatus;
-    toggled?: boolean;
     items?: Array<TreeItem<T>>;
 }
 
@@ -85,7 +84,7 @@ export const Tree = withStyles(styles)(
                             <i onClick={() => this.props.toggleItemOpen(it.id, it.status)}
                                 className={toggableIconContainer}>
                                 <ListItemIcon className={this.getToggableIconClassNames(it.open, it.active)}>
-                                    {it.toggled && it.items && it.items.length === 0 ? <span /> : <SidePanelRightArrowIcon />}
+                                    {it.status !== TreeItemStatus.Initial && it.items && it.items.length === 0 ? <span /> : <SidePanelRightArrowIcon />}
                                 </ListItemIcon>
                             </i>
                             {render(it, level)}
index f3f9cafe7f268aa3fed71cff37494218917fd71c..52086231742d8d9f37925c11cd41e95ef4395603 100644 (file)
@@ -33,10 +33,6 @@ export const setProjectItem = (itemId: string, itemMode: ItemMode) =>
 
         if (treeItem) {
 
-            if (itemMode === ItemMode.OPEN || itemMode === ItemMode.BOTH) {
-                dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN(treeItem.data.uuid));
-            }
-
             const resourceUrl = getResourceUrl(treeItem.data);
 
             if (itemMode === ItemMode.ACTIVE || itemMode === ItemMode.BOTH) {
@@ -52,6 +48,9 @@ export const setProjectItem = (itemId: string, itemMode: ItemMode) =>
 
             promise
                 .then(() => dispatch<any>(() => {
+                    if (itemMode === ItemMode.OPEN || itemMode === ItemMode.BOTH) {
+                        dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN(treeItem.data.uuid));
+                    }
                     dispatch(dataExplorerActions.RESET_PAGINATION({id: PROJECT_PANEL_ID}));
                     dispatch(dataExplorerActions.REQUEST_ITEMS({id: PROJECT_PANEL_ID}));
                 }));
index ca139e66117fd070c03c6e5846b0a6a50dfc6da9..76c8edc13e9a92698d6c4e69b4b2635b1a55dd5d 100644 (file)
@@ -28,7 +28,7 @@ describe('project-reducer', () => {
                 id: "2",
                 items: [],
                 data: mockProjectResource({ uuid: "2" }),
-                status: 0
+                status: TreeItemStatus.Initial
             }
             ],
             currentItemId: "",
@@ -47,7 +47,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: true,
                 active: true,
-                status: 1
+                status: TreeItemStatus.Pending
             }],
             currentItemId: "1",
             creator: { opened: false, pending: false, ownerUuid: "" },
@@ -58,7 +58,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: true,
                 active: false,
-                status: 1
+                status: TreeItemStatus.Pending
             }],
             currentItemId: "",
             creator: { opened: false, pending: false, ownerUuid: "" },
@@ -75,7 +75,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: true,
                 active: false,
-                status: 1
+                status: TreeItemStatus.Pending
             }],
             currentItemId: "1",
             creator: { opened: false, pending: false, ownerUuid: "" }
@@ -86,8 +86,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: true,
                 active: true,
-                status: 1,
-                toggled: true
+                status: TreeItemStatus.Pending,
             }],
             currentItemId: "1",
             creator: { opened: false, pending: false, ownerUuid: "" },
@@ -105,8 +104,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: true,
                 active: false,
-                status: 1,
-                toggled: false,
+                status: TreeItemStatus.Pending,
             }],
             currentItemId: "1",
             creator: { opened: false, pending: false, ownerUuid: "" }
@@ -117,8 +115,7 @@ describe('project-reducer', () => {
                 id: "1",
                 open: false,
                 active: false,
-                status: 1,
-                toggled: true
+                status: TreeItemStatus.Pending,
             }],
             currentItemId: "1",
             creator: { opened: false, pending: false, ownerUuid: "" },
index fa92f5f2349d8185992a8dcdefff9f1c063258f5..45e0e19527253ea03e39603a673e8e477232c484 100644 (file)
@@ -139,7 +139,6 @@ export const projectsReducer = (state: ProjectState = initialState, action: Proj
             const items = _.cloneDeep(state.items);
             const item = findTreeItem(items, itemId);
             if (item) {
-                item.toggled = true;
                 item.open = !item.open;
             }
             return {
@@ -153,7 +152,6 @@ export const projectsReducer = (state: ProjectState = initialState, action: Proj
             resetTreeActivity(items);
             const item = findTreeItem(items, itemId);
             if (item) {
-                item.toggled = true;
                 item.active = true;
             }
             return {