Page MenuHomePhabricator

D13106.diff
No OneTemporary

D13106.diff

diff --git a/lib/reducers/message-reducer.js b/lib/reducers/message-reducer.js
--- a/lib/reducers/message-reducer.js
+++ b/lib/reducers/message-reducer.js
@@ -1306,7 +1306,8 @@
},
};
} else if (action.type === messageStorePruneActionType) {
- const messageIDsToPrune = [];
+ const reduxMessageIDsToPrune: Array<string> = [];
+ const dbMessageIDsToPrune: Array<string> = [];
const updatedThreads: { [string]: ThreadMessageInfo } = {};
for (const threadID of action.payload.threadIDs) {
@@ -1324,37 +1325,45 @@
startReached: false,
};
}
- for (const id of removed) {
- messageIDsToPrune.push(id);
+ reduxMessageIDsToPrune.push(...removed);
+ if (!newThreadInfos[threadID]?.thick) {
+ dbMessageIDsToPrune.push(...removed);
}
updatedThreads[threadID] = thread;
}
- const localMessageIDsToRemove = _pick(messageIDsToPrune)(
- messageStore.local,
- );
+ const createMessageStoreOperations = (
+ messageIDsToPrune: $ReadOnlyArray<string>,
+ ) => {
+ const localMessageIDsToRemove = _pick(messageIDsToPrune)(
+ messageStore.local,
+ );
- const messageStoreOperations = [
- {
- type: 'remove',
- payload: { ids: messageIDsToPrune },
- },
- {
- type: 'replace_threads',
- payload: {
- threads: updatedThreads,
+ return [
+ {
+ type: 'remove',
+ payload: { ids: messageIDsToPrune },
},
- },
- {
- type: 'remove_local_message_infos',
- payload: { ids: Object.keys(localMessageIDsToRemove) },
- },
- ];
+ {
+ type: 'replace_threads',
+ payload: {
+ threads: updatedThreads,
+ },
+ },
+ {
+ type: 'remove_local_message_infos',
+ payload: { ids: Object.keys(localMessageIDsToRemove) },
+ },
+ ];
+ };
+ const reduxOperations = createMessageStoreOperations(
+ reduxMessageIDsToPrune,
+ );
const processedMessageStore = processMessageStoreOperations(
messageStore,
- messageStoreOperations,
+ reduxOperations,
);
const newMessageStore = {
@@ -1364,8 +1373,9 @@
currentAsOf: messageStore.currentAsOf,
};
+ const dbOperations = createMessageStoreOperations(dbMessageIDsToPrune);
return {
- messageStoreOperations,
+ messageStoreOperations: dbOperations,
messageStore: newMessageStore,
};
} else if (action.type === updateMultimediaMessageMediaActionType) {

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 30, 11:16 AM (21 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2204878
Default Alt Text
D13106.diff (2 KB)

Event Timeline