mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-10 06:39:01 +02:00
Merge pull request #22964 from overleaf/ae-project-search-flush
Ensure that open docs are flushed before running full project search GitOrigin-RevId: 6707cf982018908a37957503add73a085c749f61
This commit is contained in:
@@ -95,4 +95,35 @@ export class OpenDocuments {
|
||||
}
|
||||
return ids
|
||||
}
|
||||
|
||||
async awaitBufferedOps(signal: AbortSignal) {
|
||||
if (this.hasUnsavedChanges()) {
|
||||
const { promise, resolve } = Promise.withResolvers<void>()
|
||||
|
||||
let resolved = false
|
||||
|
||||
const listener = () => {
|
||||
if (!this.hasUnsavedChanges()) {
|
||||
debugConsole.log('saved')
|
||||
window.removeEventListener('doc:saved', listener)
|
||||
resolved = true
|
||||
resolve()
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('doc:saved', listener)
|
||||
|
||||
signal.addEventListener('abort', () => {
|
||||
if (!resolved) {
|
||||
debugConsole.log('aborted')
|
||||
window.removeEventListener('doc:saved', listener)
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
|
||||
this.flushAll()
|
||||
|
||||
await promise
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user