Create new state on PROJECT_REQUEST action
[arvados-workbench2.git] / src / store / project / project-reducer.ts
index 2c1ab81eb50bb4cc3f138eb4cc98badbee5275da..5693fb64262326cbecf61f48d1b57f4ab4acd6dd 100644 (file)
@@ -115,7 +115,7 @@ const projectsReducer = (state: ProjectState = initialState, action: ProjectActi
     return actions.match(action, {
         OPEN_PROJECT_CREATOR: ({ ownerUuid }) => updateCreator(state, { ownerUuid, opened: true, pending: false }),
         CLOSE_PROJECT_CREATOR: () => updateCreator(state, { opened: false }),
-        CREATE_PROJECT: () => updateCreator(state, { pending: true }),
+        CREATE_PROJECT: () => updateCreator(state, { opened: false, pending: true }),
         CREATE_PROJECT_SUCCESS: () => updateCreator(state, { ownerUuid: "", pending: false }),
         CREATE_PROJECT_ERROR: () => updateCreator(state, { ownerUuid: "", pending: false }),
         REMOVE_PROJECT: () => state,
@@ -126,12 +126,13 @@ const projectsReducer = (state: ProjectState = initialState, action: ProjectActi
                 item.status = TreeItemStatus.Pending;
                 state.items = items;
             }
-            return state;
+            return { ...state, items };
         },
         PROJECTS_SUCCESS: ({ projects, parentItemId }) => {
+            const items = _.cloneDeep(state.items);
             return {
                 ...state,
-                items: updateProjectTree(state.items, projects, parentItemId)
+                items: updateProjectTree(items, projects, parentItemId)
             };
         },
         TOGGLE_PROJECT_TREE_ITEM_OPEN: itemId => {