Page MenuHomePhabricator

D11535.id38864.diff
No OneTemporary

D11535.id38864.diff

diff --git a/lib/reducers/master-reducer.js b/lib/reducers/master-reducer.js
--- a/lib/reducers/master-reducer.js
+++ b/lib/reducers/master-reducer.js
@@ -71,7 +71,7 @@
};
const [userStore, newUserInconsistencies, userStoreOperations] =
- reduceUserInfos(state.userStore, action, onStateDifferenceForStaff);
+ reduceUserInfos(state.userStore, action);
const newInconsistencies = [
...newEntryInconsistencies,
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
@@ -47,8 +47,6 @@
UserStore,
} from '../types/user-types.js';
import { authoritativeKeyserverID } from '../utils/authoritative-keyserver.js';
-import { getMessageForException } from '../utils/errors.js';
-import { assertObjectsAreEqual } from '../utils/objects.js';
import { relyingOnAuthoritativeKeyserver } from '../utils/services-utils.js';
function reduceCurrentUserInfo(
@@ -178,31 +176,6 @@
return state;
}
-function assertUserStoresAreEqual(
- processedUserStore: UserInfos,
- expectedUserStore: UserInfos,
- location: string,
- onStateDifference: (message: string) => mixed,
-) {
- try {
- assertObjectsAreEqual(
- processedUserStore,
- expectedUserStore,
- `UserInfos - ${location}`,
- );
- } catch (e) {
- console.log(
- 'Error processing UserStore ops',
- processedUserStore,
- expectedUserStore,
- );
- const message = `Error processing UserStore ops ${
- getMessageForException(e) ?? '{no exception message}'
- }`;
- onStateDifference(message);
- }
-}
-
const { processStoreOperations: processUserStoreOps } = userStoreOpsHandlers;
function generateOpsForUserUpdates(payload: {
@@ -220,7 +193,6 @@
function reduceUserInfos(
state: UserStore,
action: BaseAction,
- onStateDifference: (message: string) => mixed,
): [
UserStore,
$ReadOnlyArray<ClientUserInconsistencyReportCreationRequest>,
@@ -240,19 +212,12 @@
state.userInfos,
userStoreOps,
);
- const updated: UserInfos = { ...state.userInfos, ...newUserInfos };
- assertUserStoresAreEqual(
- processedUserInfos,
- updated,
- action.type,
- onStateDifference,
- );
- if (!_isEqual(state.userInfos)(updated)) {
+ if (!_isEqual(state.userInfos)(processedUserInfos)) {
return [
{
...state,
- userInfos: updated,
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -271,19 +236,13 @@
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- {},
- action.type,
- onStateDifference,
- );
if (Object.keys(state.userInfos).length === 0) {
return [state, [], []];
}
return [
{
- userInfos: {},
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -306,16 +265,11 @@
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- newUserInfos,
- action.type,
- onStateDifference,
- );
- if (!_isEqual(state.userInfos)(newUserInfos)) {
+
+ if (!_isEqual(state.userInfos)(processedUserInfos)) {
return [
{
- userInfos: newUserInfos,
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -337,16 +291,10 @@
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- newUserInfos,
- action.type,
- onStateDifference,
- );
return [
{
- userInfos: newUserInfos,
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -355,7 +303,6 @@
const newUserInfos = _keyBy(userInfo => userInfo.id)(
action.payload.userInfos,
);
- const mergedUserInfos: UserInfos = { ...state.userInfos, ...newUserInfos };
const userStoreOps: $ReadOnlyArray<UserStoreOperation> =
convertUserInfosToReplaceUserOps(newUserInfos);
@@ -363,18 +310,12 @@
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- mergedUserInfos,
- action.type,
- onStateDifference,
- );
- if (!_isEqual(state.userInfos)(mergedUserInfos)) {
+ if (!_isEqual(state.userInfos)(processedUserInfos)) {
return [
{
...state,
- userInfos: mergedUserInfos,
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -395,32 +336,17 @@
...convertUserInfosToReplaceUserOps(newUserInfos),
...generateOpsForUserUpdates(action.payload),
];
- const updated = action.payload.updatesResult.newUpdates.reduce(
- (reducedState, update) => {
- const { reduceUserInfos: reduceUserInfosUpdate } =
- updateSpecs[update.type];
- return reduceUserInfosUpdate
- ? reduceUserInfosUpdate(reducedState, update)
- : reducedState;
- },
- { ...state.userInfos, ...newUserInfos },
- );
const processedUserInfos: UserInfos = processUserStoreOps(
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- updated,
- action.type,
- onStateDifference,
- );
- if (!_isEqual(state.userInfos)(updated)) {
+
+ if (!_isEqual(state.userInfos)(processedUserInfos)) {
return [
{
...state,
- userInfos: updated,
+ userInfos: processedUserInfos,
},
[],
userStoreOps,
@@ -445,17 +371,12 @@
}
const userStoreOps: UserStoreOperation[] = [];
- const newUserInfos = { ...state.userInfos };
if (userInfos) {
for (const userInfo of userInfos) {
- newUserInfos[userInfo.id] = userInfo;
userStoreOps.push({ type: 'replace_user', payload: { ...userInfo } });
}
}
if (deleteUserInfoIDs) {
- for (const deleteUserInfoID of deleteUserInfoIDs) {
- delete newUserInfos[deleteUserInfoID];
- }
userStoreOps.push({
type: 'remove_users',
payload: { ids: deleteUserInfoIDs },
@@ -466,21 +387,15 @@
state.userInfos,
userStoreOps,
);
- assertUserStoresAreEqual(
- processedUserInfos,
- newUserInfos,
- action.type,
- onStateDifference,
- );
const newInconsistencies = stateSyncSpecs.users.findStoreInconsistencies(
action,
state.userInfos,
- newUserInfos,
+ processedUserInfos,
);
return [
{
- userInfos: newUserInfos,
+ userInfos: processedUserInfos,
},
newInconsistencies,
userStoreOps,
@@ -495,17 +410,11 @@
state.userInfos,
userStoreOps,
);
- const updated: UserInfos = { ...state.userInfos, ...newUserInfos };
- assertUserStoresAreEqual(
- processedUserInfos,
- updated,
- action.type,
- onStateDifference,
- );
- const newState = !_isEqual(state.userInfos)(updated)
+
+ const newState = !_isEqual(state.userInfos)(processedUserInfos)
? {
...state,
- userInfos: updated,
+ userInfos: processedUserInfos,
}
: state;
return [newState, [], userStoreOps];
@@ -513,15 +422,8 @@
if (!action.payload.users) {
return [state, [], []];
}
- // Once the functionality is confirmed to work correctly,
- // we will proceed with returning the users from the payload.
- assertUserStoresAreEqual(
- action.payload.users ?? {},
- state.userInfos,
- action.type,
- onStateDifference,
- );
- return [state, [], []];
+
+ return [{ userInfos: action.payload.users }, [], []];
}
return [state, [], []];
diff --git a/native/redux/persist.js b/native/redux/persist.js
--- a/native/redux/persist.js
+++ b/native/redux/persist.js
@@ -138,6 +138,7 @@
'storeLoaded',
'dbOpsStore',
'syncedMetadataStore',
+ 'userStore',
];
function handleReduxMigrationFailure(oldState: AppState): AppState {
@@ -1203,6 +1204,10 @@
const { nextLocalID, ...rest } = state;
return rest;
},
+ [68]: async (state: AppState) => {
+ const { userStore, ...rest } = state;
+ return rest;
+ },
};
// After migration 31, we'll no longer want to persist `messageStore.messages`
@@ -1270,7 +1275,7 @@
storage: AsyncStorage,
blacklist: persistBlacklist,
debug: __DEV__,
- version: 67,
+ version: 68,
transforms: [
messageStoreMessagesBlocklistTransform,
reportStoreTransform,

File Metadata

Mime Type
text/plain
Expires
Thu, Dec 19, 3:48 PM (20 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2677472
Default Alt Text
D11535.id38864.diff (8 KB)

Event Timeline