Merge pull request #10273 from overleaf/ae-docname-apply

Add a `$scope.$applyAsync` wrapper around the "open a new document" code

GitOrigin-RevId: 7c63338379053d20bd86f10d9db6855cb5c23fc3
This commit is contained in:
Mathias Jakobsen 2022-11-03 13:02:56 +00:00 committed by Copybot
parent 50b346b4ed
commit bcad89fd28

View file

@ -260,37 +260,39 @@ export default EditorManager = (function () {
return return
} }
// We're now either opening a new document or reloading a broken one. this.$scope.$applyAsync(() => {
this.$scope.editor.open_doc_id = doc.id // We're now either opening a new document or reloading a broken one.
this.$scope.editor.open_doc_name = doc.name this.$scope.editor.open_doc_id = doc.id
this.$scope.editor.open_doc_name = doc.name
this.ide.localStorage(`doc.open_id.${this.$scope.project_id}`, doc.id) this.ide.localStorage(`doc.open_id.${this.$scope.project_id}`, doc.id)
this.ide.fileTreeManager.selectEntity(doc) this.ide.fileTreeManager.selectEntity(doc)
this.$scope.editor.opening = true this.$scope.editor.opening = true
return this._openNewDocument(doc, (error, sharejs_doc) => { return this._openNewDocument(doc, (error, sharejs_doc) => {
if (error && error.message === 'another document was loaded') { if (error && error.message === 'another document was loaded') {
sl_console.log( sl_console.log(
`[openDoc] another document was loaded while ${doc.id} was loading` `[openDoc] another document was loaded while ${doc.id} was loading`
) )
return return
} }
if (error != null) { if (error != null) {
this.ide.showGenericMessageModal( this.ide.showGenericMessageModal(
'Error opening document', 'Error opening document',
'Sorry, something went wrong opening this document. Please try again.' 'Sorry, something went wrong opening this document. Please try again.'
) )
return return
} }
this._syncTrackChangesState(sharejs_doc) this._syncTrackChangesState(sharejs_doc)
this.$scope.$broadcast('doc:opened') this.$scope.$broadcast('doc:opened')
return this.$scope.$apply(() => { return this.$scope.$applyAsync(() => {
this.$scope.editor.opening = false this.$scope.editor.opening = false
this.$scope.editor.sharejs_doc = sharejs_doc this.$scope.editor.sharejs_doc = sharejs_doc
return done(true) return done(true)
})
}) })
}) })
} }