diff --git a/client/modules/IDE/actions/project.js b/client/modules/IDE/actions/project.js index c031881548..ceabc924cb 100644 --- a/client/modules/IDE/actions/project.js +++ b/client/modules/IDE/actions/project.js @@ -420,12 +420,12 @@ export function changeVisibility(projectId, projectName, visibility, t) { .patch('/project/visibility', { projectId, visibility }) .then((response) => { if (response.status === 200) { - const { visibility: newVisibility, updatedAt } = response.data; + const { visibility: newVisibility, updatedAt, id } = response.data; dispatch({ type: ActionTypes.CHANGE_VISIBILITY, payload: { - id: response.data.id, + id, visibility: newVisibility } }); diff --git a/client/modules/IDE/reducers/projects.js b/client/modules/IDE/reducers/projects.js index ba572672a1..b66cc388fa 100644 --- a/client/modules/IDE/reducers/projects.js +++ b/client/modules/IDE/reducers/projects.js @@ -7,13 +7,18 @@ const sketches = (state = [], action) => { case ActionTypes.DELETE_PROJECT: return state.projects.filter((sketch) => sketch.id !== action.id); case ActionTypes.CHANGE_VISIBILITY: { - return state.map((sketch) => { - if (sketch.id === action.payload.id) { - return { ...sketch, visibility: action.payload.visibility }; - } - return sketch; - }); + const updatedProjects = state.projects.map((sketch) => + sketch.id === action.payload.id + ? { ...sketch, visibility: action.payload.visibility } + : sketch + ); + + return { + ...state, + projects: updatedProjects + }; } + case ActionTypes.RENAME_PROJECT: { return state.map((sketch) => { if (sketch.id === action.payload.id) {