From 076ab0c46509c6085dbb2a8ea4137e7549e04d3c Mon Sep 17 00:00:00 2001 From: sadnub Date: Sun, 29 Oct 2023 10:24:16 -0400 Subject: [PATCH] fix script body not loading in editor. Fix slow unload times for monaco editor --- src/components/scripts/ScriptFormModal.vue | 17 +++++++++-------- .../scripts/ScriptSnippetFormModal.vue | 7 ++++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/components/scripts/ScriptFormModal.vue b/src/components/scripts/ScriptFormModal.vue index c9c1fdcd..82b20287 100644 --- a/src/components/scripts/ScriptFormModal.vue +++ b/src/components/scripts/ScriptFormModal.vue @@ -4,9 +4,9 @@ persistent @keydown.esc.stop="onDialogHide" :maximized="maximized" - @keydown.esc="unloadEditor" - @hide="unloadEditor" + @hide="onDialogHide" @show="loadEditor" + @before-hide="unloadEditor" > { else return ""; }); -// get code if editing or cloning script -if (props.script) - downloadScript(script.id, { with_snippets: props.readonly }).then((r) => { - script.script_body = r.code; - }); - async function submit() { loading.value = true; let result = ""; @@ -391,6 +385,13 @@ function loadEditor() { editor.onDidChangeModelContent(() => { script.script_body = editor.getValue(); }); + + // get code if editing or cloning script + if (props.script) + downloadScript(script.id, { with_snippets: props.readonly }).then((r) => { + script.script_body = r.code; + editor.setValue(r.code); + }); } function unloadEditor() { diff --git a/src/components/scripts/ScriptSnippetFormModal.vue b/src/components/scripts/ScriptSnippetFormModal.vue index f086e21d..d2cdf10a 100644 --- a/src/components/scripts/ScriptSnippetFormModal.vue +++ b/src/components/scripts/ScriptSnippetFormModal.vue @@ -2,10 +2,11 @@ (null); let editor: monaco.editor.IStandaloneCodeEditor; function loadEditor() { - var modelUri = monaco.Uri.parse("model://new"); // a made up unique URI for our model + var modelUri = monaco.Uri.parse("model://snippet"); // a made up unique URI for our model var model = monaco.editor.createModel(snippet.code, lang.value, modelUri); const theme = $q.dark.isActive ? "vs-dark" : "vs-light";