Add sub configs edit component

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2019-03-05 18:48:53 -08:00
1 parent d70263e798
commit 152d8f5283
10 files changed
+386 -44

No files matched your search

+11 -27
View File
@@ -1,6 +1,6 @@
import { VnodeDOM, ClosureComponent, Component, Children } from "mithril";
import { m } from "./components";
import { codeMirror } from "./dynamic-loader";
import codeEditorComponent from "./code-editor-component";
const singular = {
presets: "preset",
@@ -59,34 +59,18 @@ function createField(current, attr, focus): Children {
return m("table", options);
} else if (attr.type === "code") {
return m("textarea", {
name: attr.id,
const attrs = {
id: attr.id,
value: current.object[attr.id],
oncreate: _vnode => {
const editor = codeMirror.fromTextArea(_vnode.dom, {
mode: "javascript",
lineNumbers: true,
extraKeys: {
"Ctrl-Enter": () => {
((_vnode.dom as HTMLTextAreaElement).form.querySelector(
"button[type=submit]"
) as HTMLButtonElement).click();
},
"Cmd-Enter": () => {
((_vnode.dom as HTMLTextAreaElement).form.querySelector(
"button[type=submit]"
) as HTMLButtonElement).click();
}
}
});
editor.on("change", e => {
current.object[attr.id] = e.getValue();
});
if (focus) editor.focus();
mode: "javascript",
onSubmit: dom => {
dom.form.querySelector("button[type=submit]").click();
},
onChange: value => {
current.object[attr.id] = value;
}
});
};
return m(codeEditorComponent, attrs);
} else if (attr.type === "file") {
return m("input", {
type: "file",