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..96b712574 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,20 @@ export default function(state = initialState, action) { projectsListView: action.payload }) + case UPDATE_PROJECT_SUCCESS: { + const { projects } = state + const projectIndex = _.findIndex(projects, {id: action.payload.id}) + 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]] } + }) + } case DELETE_PROJECT_SUCCESS: { return Object.assign({}, state, { refresh: true