Implement code splitting for codemirror
This commit is contained in:
1 parent
f79b9dc0f7
commit
de759b8d93
7 files changed
+48
-6
No files matched your search
@@ -2,7 +2,9 @@
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"parser": "babel-eslint",
|
||||
"parserOptions": {
|
||||
"allowImportExportEverywhere": true,
|
||||
"sourceType": "module",
|
||||
"ecmaVersion": 8
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
import m from "mithril";
|
||||
import { fromTextArea as codeMirrorFromTextArea } from "codemirror";
|
||||
import "codemirror/mode/javascript/javascript";
|
||||
import { codeMirror } from "../dynamic-loader";
|
||||
|
||||
const singular = {
|
||||
presets: "preset",
|
||||
@@ -41,7 +40,7 @@ function createField(current, attr, focus) {
|
||||
name: attr.id,
|
||||
value: current.object[attr.id],
|
||||
oncreate: _vnode => {
|
||||
let editor = codeMirrorFromTextArea(_vnode.dom, {
|
||||
let editor = codeMirror.fromTextArea(_vnode.dom, {
|
||||
mode: "javascript",
|
||||
lineNumbers: true
|
||||
});
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
let codeMirror;
|
||||
|
||||
function loadCodeMirror() {
|
||||
if (codeMirror) return Promise.resolve();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const promises = [
|
||||
import(/* webpackChunkName: "codemirror" */ "codemirror"),
|
||||
import(/* webpackChunkName: "codemirror" */ "codemirror/mode/javascript/javascript")
|
||||
];
|
||||
Promise.all(promises)
|
||||
.then(modules => {
|
||||
codeMirror = modules[0];
|
||||
resolve();
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
}
|
||||
|
||||
export { loadCodeMirror, codeMirror };
|
||||
@@ -12,6 +12,7 @@ import putForm from "./components/put-form";
|
||||
import * as overlay from "./overlay";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import * as expressionParser from "../common/expression-parser";
|
||||
import { loadCodeMirror } from "./dynamic-loader";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
|
||||
@@ -106,7 +107,14 @@ function init(args) {
|
||||
|
||||
const sort = args.sort;
|
||||
const filter = args.filter;
|
||||
return Promise.resolve({ filter, sort });
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
loadCodeMirror()
|
||||
.then(() => {
|
||||
resolve({ filter, sort });
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
}
|
||||
|
||||
function renderTable(
|
||||
|
||||
@@ -12,6 +12,7 @@ import putForm from "./components/put-form";
|
||||
import * as overlay from "./overlay";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import * as expressionParser from "../common/expression-parser";
|
||||
import { loadCodeMirror } from "./dynamic-loader";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
|
||||
@@ -106,7 +107,14 @@ function init(args) {
|
||||
|
||||
const sort = args.sort;
|
||||
const filter = args.filter;
|
||||
return Promise.resolve({ filter, sort });
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
loadCodeMirror()
|
||||
.then(() => {
|
||||
resolve({ filter, sort });
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
}
|
||||
|
||||
function renderTable(
|
||||
|
||||
Reference in new issue
Block a user