Implement code splitting for codemirror

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent f79b9dc0f7
commit de759b8d93
7 files changed
+48 -6

No files matched your search

+2
View File
@@ -2,7 +2,9 @@
"env": {
"browser": true
},
"parser": "babel-eslint",
"parserOptions": {
"allowImportExportEverywhere": true,
"sourceType": "module",
"ecmaVersion": 8
}
+2 -3
View File
@@ -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
});
+22
View File
@@ -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 };
+9 -1
View File
@@ -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(
+9 -1
View File
@@ -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(