From 51e34162e3c84bb59d92c6748a0c8853d9ddca54 Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Fri, 14 Oct 2022 17:38:32 +0300 Subject: [PATCH] Fix disposed model --- app/components/monaco-editor.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/components/monaco-editor.js b/app/components/monaco-editor.js index 415c6fd..79febdd 100644 --- a/app/components/monaco-editor.js +++ b/app/components/monaco-editor.js @@ -19,14 +19,21 @@ export default class MonacoEditorComponent extends Component { this.args.invoker?.subscribe(this); } + get modelUri() { + return Uri.parse(this.args.uri); + } + @action initEditor(el) { - const modelUri = Uri.parse(this.args.uri); - const model = editor.createModel( - this.args.value, - this.args.language, - modelUri - ); + let model = editor.getModel(this.modelUri); + + if (model === null) { + model = editor.createModel( + this.args.value, + this.args.language, + this.modelUri + ); + } this.editor = editor.create(el, { model, @@ -74,9 +81,6 @@ export default class MonacoEditorComponent extends Component { } willDestroy() { - const modelUri = Uri.parse(this.args.uri); - - this.editor?.getModel(modelUri)?.dispose(); this.editor?.dispose(); super.willDestroy(...arguments);