From 0e78c8438d2f2622a66db7f0cf5806a22ae41584 Mon Sep 17 00:00:00 2001 From: yoution Date: Mon, 4 Jan 2021 23:16:56 +0800 Subject: [PATCH 1/3] fix: #4236 --- src/projects/list/components/Projects/Projects.jsx | 6 +----- src/projects/reducers/projectSearch.js | 8 ++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/projects/list/components/Projects/Projects.jsx b/src/projects/list/components/Projects/Projects.jsx index 198225f1f..6cd01c9b1 100755 --- a/src/projects/list/components/Projects/Projects.jsx +++ b/src/projects/list/components/Projects/Projects.jsx @@ -331,11 +331,7 @@ class Projects extends Component { } } -const mapStateToProps = ({ projectSearch, members, loadUser, projectState, templates, notifications }) => { - if (projectState.project && projectState.project.id && projectSearch.projects) { - const index = _.findIndex(projectSearch.projects, {id: projectState.project.id}) - projectSearch.projects.splice(index, 1, projectState.project) - } +const mapStateToProps = ({ projectSearch, members, loadUser, templates, notifications }) => { const defaultListView = hasPermission(PERMISSIONS.SEE_GRID_VIEW_BY_DEFAULT) ? PROJECTS_LIST_VIEW.GRID : PROJECTS_LIST_VIEW.CARD return { currentUser : { diff --git a/src/projects/reducers/projectSearch.js b/src/projects/reducers/projectSearch.js index 059d69203..e12dcd5e6 100644 --- a/src/projects/reducers/projectSearch.js +++ b/src/projects/reducers/projectSearch.js @@ -6,6 +6,7 @@ import { SET_PROJECTS_LIST_VIEW, PROJECT_LIST_DEFAULT_CRITERIA, PROJECT_SORT, + UPDATE_PROJECT_SUCCESS, DELETE_PROJECT_SUCCESS, ACCEPT_OR_REFUSE_INVITE_SUCCESS, ADMIN_ROLES, @@ -157,6 +158,13 @@ export default function(state = initialState, action) { projectsListView: action.payload }) + case UPDATE_PROJECT_SUCCESS: { + const { projects } = state + const projectIndex = _.findIndex(projects, {id: action.payload.id}) + return update(state, { + projects: { $splice: [[projectIndex, 1, action.payload]] } + }) + } case DELETE_PROJECT_SUCCESS: { return Object.assign({}, state, { refresh: true From 11c4e1192d316a7d5529fdbe9d810e0258ef5e61 Mon Sep 17 00:00:00 2001 From: yoution Date: Tue, 5 Jan 2021 21:18:58 +0800 Subject: [PATCH 2/3] fix: #4236 again --- src/projects/reducers/projectSearch.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/projects/reducers/projectSearch.js b/src/projects/reducers/projectSearch.js index e12dcd5e6..2d9f487ee 100644 --- a/src/projects/reducers/projectSearch.js +++ b/src/projects/reducers/projectSearch.js @@ -159,10 +159,13 @@ export default function(state = initialState, action) { }) case UPDATE_PROJECT_SUCCESS: { + // only update status const { projects } = state const projectIndex = _.findIndex(projects, {id: action.payload.id}) + const newProject = {...projects[projectIndex], status: action.payload.status} + return update(state, { - projects: { $splice: [[projectIndex, 1, action.payload]] } + projects: { $splice: [[projectIndex, 1, newProject]] } }) } case DELETE_PROJECT_SUCCESS: { From bb8002bb0634bc771dc74d3f56110fa2a67cb8d4 Mon Sep 17 00:00:00 2001 From: yoution Date: Tue, 5 Jan 2021 23:04:11 +0800 Subject: [PATCH 3/3] fix: #4236 again --- src/projects/reducers/projectSearch.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/projects/reducers/projectSearch.js b/src/projects/reducers/projectSearch.js index 2d9f487ee..96b712574 100644 --- a/src/projects/reducers/projectSearch.js +++ b/src/projects/reducers/projectSearch.js @@ -159,11 +159,15 @@ export default function(state = initialState, action) { }) case UPDATE_PROJECT_SUCCESS: { - // only update status const { projects } = state const projectIndex = _.findIndex(projects, {id: action.payload.id}) - const newProject = {...projects[projectIndex], status: action.payload.status} - + const oldProject = projects[projectIndex] + const newProject = { + ...action.payload, + attachments: _.get(oldProject, 'attachments', []), + members: _.get(oldProject, 'members', []), + invites: _.get(oldProject, 'invites', []), + } return update(state, { projects: { $splice: [[projectIndex, 1, newProject]] } })