From a33279ea71c1e866a2d923d5d64aa59a35d1dfd8 Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Fri, 2 Apr 2021 23:49:32 -0400 Subject: [PATCH] Fix issues removing settings panels Closes #627 --- renderer/src/builtins/customcss.js | 49 +++++++++++-------------- renderer/src/modules/settingsmanager.js | 2 +- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/renderer/src/builtins/customcss.js b/renderer/src/builtins/customcss.js index 18249011..33d51672 100644 --- a/renderer/src/builtins/customcss.js +++ b/renderer/src/builtins/customcss.js @@ -26,37 +26,32 @@ export default new class CustomCSS extends Builtin { } async enabled() { - // if (!window.ace) { - // DOMManager.injectScript("ace-script", "https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js").then(() => { - // if (window.require.original) window.require = window.require.original; - // }); - // } - - - Object.defineProperty(window, "MonacoEnvironment", { - value: { - getWorkerUrl: function() { - return `data:text/javascript;charset=utf-8,${encodeURIComponent(` - self.MonacoEnvironment = { - baseUrl: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min' - }; - importScripts('https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/base/worker/workerMain.min.js');` - )}`; + if (!window.monaco && !window.MonacoEnvironment) { + Object.defineProperty(window, "MonacoEnvironment", { + value: { + getWorkerUrl: function() { + return `data:text/javascript;charset=utf-8,${encodeURIComponent(` + self.MonacoEnvironment = { + baseUrl: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min' + }; + importScripts('https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/base/worker/workerMain.min.js');` + )}`; + } } - } - }); + }); - const commonjsLoader = window.require; - delete window.module; // Make monaco think this isn't a local node script or else it freaks out + const commonjsLoader = window.require; + delete window.module; // Make monaco think this isn't a local node script or else it freaks out - DOMManager.linkStyle("monaco-style", "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/editor/editor.main.min.css", {documentHead: true}); - await DOMManager.injectScript("monaco-script", "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/loader.min.js"); + DOMManager.linkStyle("monaco-style", "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/editor/editor.main.min.css", {documentHead: true}); + await DOMManager.injectScript("monaco-script", "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs/loader.min.js"); - const amdLoader = window.require; // Grab Monaco's amd loader - window.require = commonjsLoader; // Revert to commonjs - this.log(amdLoader, window.require); - amdLoader.config({paths: {vs: "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs"}}); - amdLoader(["vs/editor/editor.main"], () => {}); // exposes the monaco global + const amdLoader = window.require; // Grab Monaco's amd loader + window.require = commonjsLoader; // Revert to commonjs + // this.log(amdLoader, window.require); + amdLoader.config({paths: {vs: "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min/vs"}}); + amdLoader(["vs/editor/editor.main"], () => {}); // exposes the monaco global + } Settings.registerPanel(this.id, Strings.Panels.customcss, { order: 2, diff --git a/renderer/src/modules/settingsmanager.js b/renderer/src/modules/settingsmanager.js index b0ae0586..1cae3bc6 100644 --- a/renderer/src/modules/settingsmanager.js +++ b/renderer/src/modules/settingsmanager.js @@ -52,7 +52,7 @@ export default new class SettingsManager { removePanel(id) { const location = this.panels.findIndex(c => c.id == id); - if (!location < 0) return Logger.error("Settings", "No collection with id " + id); + if (location < 0) return Logger.error("Settings", "No collection with id " + id); this.panels.splice(location, 1); }