This commit is contained in:
2020-08-31 19:28:20 +00:00
parent 4708289c45
commit 956e002bbc

View File

@@ -112,6 +112,7 @@ import * as monaco from "monaco-editor";
const FORM_KEY = "ay-report-edit"; const FORM_KEY = "ay-report-edit";
let JUST_DELETED = false; let JUST_DELETED = false;
let editor = null;
export default { export default {
async created() { async created() {
let vm = this; let vm = this;
@@ -173,20 +174,21 @@ export default {
"javascript" "javascript"
); );
//Create the editor itself //Create the editor itself
vm.editor = monaco.editor.create(document.getElementById("editContainer"), { editor = monaco.editor.create(document.getElementById("editContainer"), {
model: vm.editData.template.model model: vm.editData.template.model
}); });
//save the initial state because we're going to move away from it immediately //save the initial state because we're going to move away from it immediately
vm.editData.template.state = vm.editor.saveViewState(); vm.editData.template.state = editor.saveViewState();
vm.showEditor = false; vm.showEditor = false;
}, },
beforeDestroy() { beforeDestroy() {
this.editor && this.editor.dispose(); //dispose all models and editor
editor && editor.dispose();
}, },
data() { data() {
return { return {
editor: null, //editor: null,
editAreaHeight: 300, editAreaHeight: 300,
activeTab: "properties", activeTab: "properties",
lastTab: "properties", lastTab: "properties",
@@ -257,8 +259,8 @@ Handlebars.registerHelper('loud', function (aString) {
onViewChange() { onViewChange() {
let vm = this; let vm = this;
let currentState = vm.editor.saveViewState(); let currentState = editor.saveViewState();
let currentModel = vm.editor.getModel(); let currentModel = editor.getModel();
// debugger; // debugger;
//save edit state before switching //save edit state before switching
switch (vm.lastTab) { switch (vm.lastTab) {
@@ -285,28 +287,28 @@ Handlebars.registerHelper('loud', function (aString) {
vm.showEditor = false; vm.showEditor = false;
break; break;
case "template": case "template":
vm.editor.setModel(vm.editData.template.model); editor.setModel(vm.editData.template.model);
vm.editor.restoreViewState(vm.editData.template.state); editor.restoreViewState(vm.editData.template.state);
vm.showEditor = true; vm.showEditor = true;
vm.editor.focus(); editor.focus();
break; break;
case "style": case "style":
vm.editor.setModel(vm.editData.style.model); editor.setModel(vm.editData.style.model);
vm.editor.restoreViewState(vm.editData.style.state); editor.restoreViewState(vm.editData.style.state);
vm.showEditor = true; vm.showEditor = true;
vm.editor.focus(); editor.focus();
break; break;
case "jsPrerender": case "jsPrerender":
vm.editor.setModel(vm.editData.jsPrerender.model); editor.setModel(vm.editData.jsPrerender.model);
vm.editor.restoreViewState(vm.editData.jsPrerender.state); editor.restoreViewState(vm.editData.jsPrerender.state);
vm.showEditor = true; vm.showEditor = true;
vm.editor.focus(); editor.focus();
break; break;
case "jsHelpers": case "jsHelpers":
vm.editor.setModel(vm.editData.jsHelpers.model); editor.setModel(vm.editData.jsHelpers.model);
vm.editor.restoreViewState(vm.editData.jsHelpers.state); editor.restoreViewState(vm.editData.jsHelpers.state);
vm.showEditor = true; vm.showEditor = true;
vm.editor.focus(); editor.focus();
break; break;
} }
vm.lastTab = vm.activeTab; vm.lastTab = vm.activeTab;
@@ -316,8 +318,8 @@ Handlebars.registerHelper('loud', function (aString) {
//https://github.com/Microsoft/monaco-editor/issues/28 //https://github.com/Microsoft/monaco-editor/issues/28
let el = document.getElementById("editContainer"); let el = document.getElementById("editContainer");
el.style = `width:100%;height:${window.innerHeight * 0.77}px`; el.style = `width:100%;height:${window.innerHeight * 0.77}px`;
if (this.editor != null) { if (editor != null) {
this.editor.layout(); editor.layout();
} }
}, },
canSave: function() { canSave: function() {