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() {
|
||||
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, {
|
||||
order: 2,
|
||||
element: () => [<SettingsTitle text={Strings.CustomCSS.editorTitle} />, React.createElement(CSSEditor, {
|
||||
|
|
|
@ -17,6 +17,7 @@ import Strings from "./strings";
|
|||
import IPC from "./ipc";
|
||||
import LoadingIcon from "../loadingicon";
|
||||
import Styles from "../styles/index.css";
|
||||
import Editor from "./editor";
|
||||
|
||||
export default new class Core {
|
||||
async startup() {
|
||||
|
@ -59,10 +60,12 @@ export default new class Core {
|
|||
Logger.log("Startup", "Initializing ComponentPatcher");
|
||||
ComponentPatcher.initialize();
|
||||
|
||||
Logger.log("Startup", "Initializing Editor");
|
||||
await Editor.initialize();
|
||||
|
||||
Logger.log("Startup", "Initializing Builtins");
|
||||
for (const module in Builtins) {
|
||||
if (module === "CustomCSS") await Builtins[module].initialize();
|
||||
else Builtins[module].initialize();
|
||||
Builtins[module].initialize();
|
||||
}
|
||||
|
||||
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