arrow-animation-is-not-working-after-loading-fixed
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Wed, 25 Jul 2018 12:49:18 +0000 (14:49 +0200)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Wed, 25 Jul 2018 12:49:18 +0000 (14:49 +0200)
Feature #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 799e821704d4288bc24d972f0c95d5490fdbe153..0ff7f2d0ea7278cf2d9abcd81f74e672158a23db 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 50f6e205e096c3743819a2bc97c75e8537fc0b45..edb03682bd69b4451d19476d9f427be2cc7d09ff 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 c8eed87c71a70bec3bdbcd7157b569d7fc660552..48a5c7b83f9b7f94a05fdc4713025d609cecd7cf 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 94a451a86574e70de24f6d143ede7217ce25cf9c..163e687e614787c2a2069681c43d2457f1fbf1fc 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 {