Page MenuHomePhabricator

D9453.id31942.diff
No OneTemporary

D9453.id31942.diff

diff --git a/lib/reducers/thread-activity-reducer.js b/lib/reducers/thread-activity-reducer.js
--- a/lib/reducers/thread-activity-reducer.js
+++ b/lib/reducers/thread-activity-reducer.js
@@ -1,19 +1,30 @@
// @flow
+import invariant from 'invariant';
+
import { messageStorePruneActionType } from '../actions/message-actions.js';
import {
+ changeThreadMemberRolesActionTypes,
+ changeThreadSettingsActionTypes,
+ deleteCommunityRoleActionTypes,
deleteThreadActionTypes,
+ joinThreadActionTypes,
leaveThreadActionTypes,
+ modifyCommunityRoleActionTypes,
+ newThreadActionTypes,
+ removeUsersFromThreadActionTypes,
} from '../actions/thread-actions.js';
import {
logOutActionTypes,
deleteAccountActionTypes,
} from '../actions/user-actions.js';
import type { BaseAction } from '../types/redux-types.js';
+import { incrementalStateSyncActionType } from '../types/socket-types.js';
import type { ThreadActivityStore } from '../types/thread-activity-types.js';
import { updateThreadLastNavigatedActionType } from '../types/thread-activity-types.js';
import { updateTypes } from '../types/update-types-enum.js';
import type { ClientUpdateInfo } from '../types/update-types.js';
+import { processUpdatesActionType } from '../types/update-types.js';
import { setNewSessionActionType } from '../utils/action-utils.js';
function reduceThreadActivity(
@@ -44,21 +55,35 @@
}
return updatedThreadActivityStore;
} else if (
+ action.type === joinThreadActionTypes.success ||
action.type === leaveThreadActionTypes.success ||
- action.type === deleteThreadActionTypes.success
+ action.type === deleteThreadActionTypes.success ||
+ action.type === changeThreadSettingsActionTypes.success ||
+ action.type === removeUsersFromThreadActionTypes.success ||
+ action.type === changeThreadMemberRolesActionTypes.success ||
+ action.type === incrementalStateSyncActionType ||
+ action.type === processUpdatesActionType ||
+ action.type === newThreadActionTypes.success ||
+ action.type === modifyCommunityRoleActionTypes.success ||
+ action.type === deleteCommunityRoleActionTypes.success
) {
const { newUpdates } = action.payload.updatesResult;
if (newUpdates.length === 0) {
return state;
}
+ const deleteThreadUpdates = newUpdates.filter(
+ (update: ClientUpdateInfo) => update.type === updateTypes.DELETE_THREAD,
+ );
+ if (deleteThreadUpdates.length === 0) {
+ return state;
+ }
+
let updatedState = { ...state };
- for (const update: ClientUpdateInfo of newUpdates) {
- if (update.type === updateTypes.DELETE_THREAD) {
- const { [update.threadID]: _, ...stateSansRemovedThread } =
- updatedState;
- updatedState = stateSansRemovedThread;
- }
+ for (const update: ClientUpdateInfo of deleteThreadUpdates) {
+ invariant(update.type === updateTypes.DELETE_THREAD);
+ const { [update.threadID]: _, ...stateSansRemovedThread } = updatedState;
+ updatedState = stateSansRemovedThread;
}
return updatedState;
} else if (

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 2, 5:19 AM (1 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2606758
Default Alt Text
D9453.id31942.diff (3 KB)

Event Timeline