diff --git a/lib/reducers/keyserver-reducer.js b/lib/reducers/keyserver-reducer.js --- a/lib/reducers/keyserver-reducer.js +++ b/lib/reducers/keyserver-reducer.js @@ -177,16 +177,21 @@ }; } else if (action.type === fullStateSyncActionType) { const { keyserverID } = action.payload; - return { - ...state, - keyserverInfos: { - ...state.keyserverInfos, - [keyserverID]: { + const operation: ReplaceKeyserverOperation = { + type: 'replace_keyserver', + payload: { + id: keyserverID, + keyserverInfo: { ...state.keyserverInfos[keyserverID], updatesCurrentAsOf: action.payload.updatesCurrentAsOf, }, }, }; + + return { + ...state, + keyserverInfos: processStoreOps(state.keyserverInfos, [operation]), + }; } else if (action.type === incrementalStateSyncActionType) { const { keyserverID } = action.payload; let { deviceToken } = state.keyserverInfos[keyserverID]; @@ -199,17 +204,22 @@ break; } } - return { - ...state, - keyserverInfos: { - ...state.keyserverInfos, - [keyserverID]: { + const operation: ReplaceKeyserverOperation = { + type: 'replace_keyserver', + payload: { + id: keyserverID, + keyserverInfo: { ...state.keyserverInfos[keyserverID], updatesCurrentAsOf: action.payload.updatesResult.currentAsOf, deviceToken, }, }, }; + + return { + ...state, + keyserverInfos: processStoreOps(state.keyserverInfos, [operation]), + }; } else if (action.type === processUpdatesActionType) { const { keyserverID } = action.payload; const updatesCurrentAsOf = Math.max(