From eafe4bcfd51ae307c0281403afe1effba4097d3a Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Thu, 3 Nov 2022 13:02:56 +0000 Subject: [PATCH] Merge pull request #10273 from overleaf/ae-docname-apply Add a `$scope.$applyAsync` wrapper around the "open a new document" code GitOrigin-RevId: 7c63338379053d20bd86f10d9db6855cb5c23fc3 --- .../frontend/js/ide/editor/EditorManager.js | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/services/web/frontend/js/ide/editor/EditorManager.js b/services/web/frontend/js/ide/editor/EditorManager.js index 3c0d8f2082..28dee0257c 100644 --- a/services/web/frontend/js/ide/editor/EditorManager.js +++ b/services/web/frontend/js/ide/editor/EditorManager.js @@ -260,37 +260,39 @@ export default EditorManager = (function () { return } - // We're now either opening a new document or reloading a broken one. - this.$scope.editor.open_doc_id = doc.id - this.$scope.editor.open_doc_name = doc.name + this.$scope.$applyAsync(() => { + // We're now either opening a new document or reloading a broken one. + 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.fileTreeManager.selectEntity(doc) + this.ide.localStorage(`doc.open_id.${this.$scope.project_id}`, doc.id) + this.ide.fileTreeManager.selectEntity(doc) - this.$scope.editor.opening = true - return this._openNewDocument(doc, (error, sharejs_doc) => { - if (error && error.message === 'another document was loaded') { - sl_console.log( - `[openDoc] another document was loaded while ${doc.id} was loading` - ) - return - } - if (error != null) { - this.ide.showGenericMessageModal( - 'Error opening document', - 'Sorry, something went wrong opening this document. Please try again.' - ) - return - } + this.$scope.editor.opening = true + return this._openNewDocument(doc, (error, sharejs_doc) => { + if (error && error.message === 'another document was loaded') { + sl_console.log( + `[openDoc] another document was loaded while ${doc.id} was loading` + ) + return + } + if (error != null) { + this.ide.showGenericMessageModal( + 'Error opening document', + 'Sorry, something went wrong opening this document. Please try again.' + ) + return + } - this._syncTrackChangesState(sharejs_doc) + this._syncTrackChangesState(sharejs_doc) - this.$scope.$broadcast('doc:opened') + this.$scope.$broadcast('doc:opened') - return this.$scope.$apply(() => { - this.$scope.editor.opening = false - this.$scope.editor.sharejs_doc = sharejs_doc - return done(true) + return this.$scope.$applyAsync(() => { + this.$scope.editor.opening = false + this.$scope.editor.sharejs_doc = sharejs_doc + return done(true) + }) }) }) }