Implement layout and device list page
This commit is contained in:
1 parent
f33717acb0
commit
1c9061ab5a
19 files changed
+1151
-30
No files matched your search
+40
-2
@@ -1,5 +1,43 @@
|
||||
"use strict";
|
||||
|
||||
const m = require("mithril");
|
||||
import m from "mithril";
|
||||
|
||||
m.render(document.body, "hello world");
|
||||
import layout from "./layout";
|
||||
import * as overviewPage from "./overview-page";
|
||||
import * as devicesPage from "./devices-page";
|
||||
import * as errorPage from "./error-page";
|
||||
|
||||
let state;
|
||||
|
||||
function pagify(pageName, page) {
|
||||
const component = {
|
||||
render: () => {
|
||||
if (state && state.error) return m(errorPage.component, state);
|
||||
else return m(layout, { page: pageName }, m(page.component, state));
|
||||
}
|
||||
};
|
||||
|
||||
if (page.init)
|
||||
component.onmatch = args => {
|
||||
return new Promise(resolve => {
|
||||
page
|
||||
.init(args)
|
||||
.then(st => {
|
||||
if (!st) return m.reoute.set("/");
|
||||
state = st;
|
||||
resolve();
|
||||
})
|
||||
.catch(err => {
|
||||
state = { error: err.message };
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
return component;
|
||||
}
|
||||
|
||||
m.route(document.body, "/overview", {
|
||||
"/overview": pagify("overview", overviewPage),
|
||||
"/devices": pagify("devices", devicesPage)
|
||||
});
|
||||
Reference in new issue
Block a user