Page MenuHomePhorge

D10628.1767378933.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D10628.1767378933.diff

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
@@ -10,6 +10,7 @@
newThreadActionTypes,
} from '../actions/thread-actions.js';
import {
+ keyserverAuthActionTypes,
logOutActionTypes,
deleteKeyserverAccountActionTypes,
logInActionTypes,
@@ -46,6 +47,7 @@
} from '../types/user-types.js';
import { getMessageForException } from '../utils/errors.js';
import { assertObjectsAreEqual } from '../utils/objects.js';
+import { usingCommServicesAccessToken } from '../utils/services-utils.js';
function reduceCurrentUserInfo(
state: ?CurrentUserInfo,
@@ -209,12 +211,39 @@
userStoreOps,
];
}
+ } else if (action.type === logOutActionTypes.success) {
+ const userStoreOps: $ReadOnlyArray<UserStoreOperation> = [
+ { type: 'remove_all_users' },
+ ];
+ const processedUserInfos: UserInfos = processUserStoreOps(
+ state.userInfos,
+ userStoreOps,
+ );
+ assertUserStoresAreEqual(
+ processedUserInfos,
+ {},
+ action.type,
+ onStateDifference,
+ );
+
+ if (Object.keys(state.userInfos).length === 0) {
+ return [state, [], []];
+ }
+ return [
+ {
+ userInfos: {},
+ },
+ [],
+ userStoreOps,
+ ];
} else if (
- action.type === logOutActionTypes.success ||
action.type === deleteKeyserverAccountActionTypes.success ||
(action.type === setNewSessionActionType &&
action.payload.sessionChange.cookieInvalidated)
) {
+ if (usingCommServicesAccessToken) {
+ return [state, [], []];
+ }
const userStoreOps: $ReadOnlyArray<UserStoreOperation> = [
{ type: 'remove_all_users' },
];
@@ -276,6 +305,35 @@
userStoreOps,
];
}
+ } else if (action.type === keyserverAuthActionTypes.success) {
+ const newUserInfos = _keyBy(userInfo => userInfo.id)(
+ action.payload.userInfos,
+ );
+ const mergedUserInfos: UserInfos = { ...state.userInfos, ...newUserInfos };
+
+ const userStoreOps: $ReadOnlyArray<UserStoreOperation> =
+ convertUserInfosToReplaceUserOps(newUserInfos);
+ const processedUserInfos: UserInfos = processUserStoreOps(
+ state.userInfos,
+ userStoreOps,
+ );
+ assertUserStoresAreEqual(
+ processedUserInfos,
+ mergedUserInfos,
+ action.type,
+ onStateDifference,
+ );
+
+ if (!_isEqual(state.userInfos)(mergedUserInfos)) {
+ return [
+ {
+ ...state,
+ userInfos: mergedUserInfos,
+ },
+ [],
+ userStoreOps,
+ ];
+ }
} else if (
action.type === incrementalStateSyncActionType ||
action.type === processUpdatesActionType

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 2, 6:35 PM (15 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5881567
Default Alt Text
D10628.1767378933.diff (2 KB)

Event Timeline