Fix Addon Editor not loading when CustomCSS disabled (#915)
* Editor: Fix Addon Editor not loading when CustomCSS disabled * Editor: await loading to prevent issues caused by the AMD loader replacement
This commit is contained in:
parent
e99686346c
commit
6792ac9155
|
@ -26,33 +26,6 @@ export default new class CustomCSS extends Builtin {
|
||||||
}
|
}
|
||||||
|
|
||||||
async enabled() {
|
async enabled() {
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
Settings.registerPanel(this.id, Strings.Panels.customcss, {
|
Settings.registerPanel(this.id, Strings.Panels.customcss, {
|
||||||
order: 2,
|
order: 2,
|
||||||
element: () => [<SettingsTitle text={Strings.CustomCSS.editorTitle} />, React.createElement(CSSEditor, {
|
element: () => [<SettingsTitle text={Strings.CustomCSS.editorTitle} />, React.createElement(CSSEditor, {
|
||||||
|
|
|
@ -17,6 +17,7 @@ import Strings from "./strings";
|
||||||
import IPC from "./ipc";
|
import IPC from "./ipc";
|
||||||
import LoadingIcon from "../loadingicon";
|
import LoadingIcon from "../loadingicon";
|
||||||
import Styles from "../styles/index.css";
|
import Styles from "../styles/index.css";
|
||||||
|
import Editor from "./editor";
|
||||||
|
|
||||||
export default new class Core {
|
export default new class Core {
|
||||||
async startup() {
|
async startup() {
|
||||||
|
@ -59,10 +60,12 @@ export default new class Core {
|
||||||
Logger.log("Startup", "Initializing ComponentPatcher");
|
Logger.log("Startup", "Initializing ComponentPatcher");
|
||||||
ComponentPatcher.initialize();
|
ComponentPatcher.initialize();
|
||||||
|
|
||||||
|
Logger.log("Startup", "Initializing Editor");
|
||||||
|
await Editor.initialize();
|
||||||
|
|
||||||
Logger.log("Startup", "Initializing Builtins");
|
Logger.log("Startup", "Initializing Builtins");
|
||||||
for (const module in Builtins) {
|
for (const module in Builtins) {
|
||||||
if (module === "CustomCSS") await Builtins[module].initialize();
|
Builtins[module].initialize();
|
||||||
else Builtins[module].initialize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.log("Startup", "Loading Plugins");
|
Logger.log("Startup", "Loading Plugins");
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
import DOMManager from "./dommanager";
|
||||||
|
|
||||||
|
export default new class Editor {
|
||||||
|
|
||||||
|
async initialize() {
|
||||||
|
const baseUrl = "https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.20.0/min"
|
||||||
|
|
||||||
|
Object.defineProperty(window, "MonacoEnvironment", {
|
||||||
|
value: {
|
||||||
|
getWorkerUrl: function() {
|
||||||
|
return `data:text/javascript;charset=utf-8,${encodeURIComponent(`
|
||||||
|
self.MonacoEnvironment = {
|
||||||
|
baseUrl: '${baseUrl}'
|
||||||
|
};
|
||||||
|
importScripts('${baseUrl}/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
|
||||||
|
|
||||||
|
DOMManager.linkStyle("monaco-style", `${baseUrl}/vs/editor/editor.main.min.css`, {documentHead: true});
|
||||||
|
await DOMManager.injectScript("monaco-script", `${baseUrl}/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: `${baseUrl}/vs`}});
|
||||||
|
amdLoader(["vs/editor/editor.main"], () => {}); // exposes the monaco global
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue