mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-01 10:33:14 +08:00
[client-app] Properly re-index threads when their data has changed
Summary: When we detect that threads in the database have changed, if they've already been indexed, mark them as unindexed so that the indexer picks them up and re-indexes them with the updated data Test Plan: manual Reviewers: evan, spang, mark Reviewed By: mark Differential Revision: https://phab.nylas.com/D4023
This commit is contained in:
parent
93836f7973
commit
5e35d39eb2
1 changed files with 10 additions and 1 deletions
|
@ -122,12 +122,21 @@ class ThreadSearchIndexStore {
|
|||
if (change.objectClass !== Thread.name) {
|
||||
return;
|
||||
}
|
||||
_.defer(() => {
|
||||
_.defer(async () => {
|
||||
const {objects, type} = change
|
||||
const threads = objects;
|
||||
|
||||
let promises = []
|
||||
if (type === 'persist') {
|
||||
const alreadyIndexedThreads = threads.filter(t => t.isSearchIndexed)
|
||||
if (alreadyIndexedThreads.length > 0) {
|
||||
alreadyIndexedThreads.forEach(thread => {
|
||||
// Mark already indexed threads as unindexed so that we re-index them
|
||||
// with updates
|
||||
thread.isSearchIndexed = false
|
||||
})
|
||||
await DatabaseStore.inTransaction(t => t.persistModels(alreadyIndexedThreads))
|
||||
}
|
||||
this.indexer.notifyHasIndexingToDo();
|
||||
} else if (type === 'unpersist') {
|
||||
promises = threads.map(thread => this.unindexThread(thread,
|
||||
|
|
Loading…
Reference in a new issue