diff --git a/lib/reducers/user-reducer.js b/lib/reducers/user-reducer.js --- a/lib/reducers/user-reducer.js +++ b/lib/reducers/user-reducer.js @@ -231,8 +231,7 @@ ]; } else if ( action.type === joinThreadActionTypes.success || - action.type === newThreadActionTypes.success || - action.type === findUserIdentitiesActionTypes.success + action.type === newThreadActionTypes.success ) { const newUserInfos: UserInfos = _keyBy(userInfo => userInfo.id)( action.payload.userInfos, @@ -245,6 +244,37 @@ userStoreOps, ); + if (!_isEqual(state.userInfos)(processedUserInfos)) { + return [ + { + ...state, + userInfos: processedUserInfos, + }, + [], + userStoreOps, + ]; + } + } else if (action.type === findUserIdentitiesActionTypes.success) { + const newUserInfos = _keyBy(userInfo => userInfo.id)( + action.payload.userInfos, + ); + + for (const id in newUserInfos) { + if (state.userInfos[id]) { + newUserInfos[id] = { + ...state.userInfos[id], + username: newUserInfos[id].username, + }; + } + } + + const userStoreOps: $ReadOnlyArray = + convertUserInfosToReplaceUserOps(newUserInfos); + const processedUserInfos: UserInfos = processUserStoreOps( + state.userInfos, + userStoreOps, + ); + if (!_isEqual(state.userInfos)(processedUserInfos)) { return [ {