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 @@ -423,11 +423,11 @@ } else { lateResponsesSet.delete(messageID); } - return { - ...state, - keyserverInfos: { - ...state.keyserverInfos, - [keyserverID]: { + const operation: ReplaceKeyserverOperation = { + type: 'replace_keyserver', + payload: { + id: keyserverID, + keyserverInfo: { ...state.keyserverInfos[keyserverID], connection: { ...state.keyserverInfos[keyserverID].connection, @@ -436,13 +436,18 @@ }, }, }; - } else if (action.type === updateDisconnectedBarActionType) { - const { keyserverID } = action.payload; + return { ...state, - keyserverInfos: { - ...state.keyserverInfos, - [keyserverID]: { + keyserverInfos: processStoreOps(state.keyserverInfos, [operation]), + }; + } else if (action.type === updateDisconnectedBarActionType) { + const { keyserverID } = action.payload; + const operation: ReplaceKeyserverOperation = { + type: 'replace_keyserver', + payload: { + id: keyserverID, + keyserverInfo: { ...state.keyserverInfos[keyserverID], connection: { ...state.keyserverInfos[keyserverID].connection, @@ -451,6 +456,10 @@ }, }, }; + return { + ...state, + keyserverInfos: processStoreOps(state.keyserverInfos, [operation]), + }; } else if (action.type === setDeviceTokenActionTypes.success) { const { deviceTokens } = action.payload; const keyserverInfos: { ...KeyserverInfos } = { ...state.keyserverInfos }; @@ -466,11 +475,11 @@ }; } else if (action.type === setConnectionIssueActionType) { const { connectionIssue, keyserverID } = action.payload; - return { - ...state, - keyserverInfos: { - ...state.keyserverInfos, - [keyserverID]: { + const operation: ReplaceKeyserverOperation = { + type: 'replace_keyserver', + payload: { + id: keyserverID, + keyserverInfo: { ...state.keyserverInfos[keyserverID], connection: { ...state.keyserverInfos[keyserverID].connection, @@ -479,6 +488,10 @@ }, }, }; + return { + ...state, + keyserverInfos: processStoreOps(state.keyserverInfos, [operation]), + }; } return state;