aboutsummaryrefslogtreecommitdiff
path: root/ui/src/frontend/pages.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/frontend/pages.ts')
-rw-r--r--ui/src/frontend/pages.ts34
1 files changed, 29 insertions, 5 deletions
diff --git a/ui/src/frontend/pages.ts b/ui/src/frontend/pages.ts
index 3f3e29fbf..06bff8cda 100644
--- a/ui/src/frontend/pages.ts
+++ b/ui/src/frontend/pages.ts
@@ -39,22 +39,46 @@ class Alerts implements m.ClassComponent {
}
}
+const TogglePerfDebugButton = {
+ view() {
+ return m(
+ '.perf-monitor-button',
+ m('button',
+ {
+ onclick: () => globals.frontendLocalState.togglePerfDebug(),
+ },
+ m('i.material-icons',
+ {
+ title: 'Toggle Perf Debug Mode',
+ },
+ 'assessment')));
+ }
+};
+
+const PerfStats: m.Component = {
+ view() {
+ const perfDebug = globals.frontendLocalState.perfDebug;
+ const children = [m(TogglePerfDebugButton)];
+ if (perfDebug) {
+ children.unshift(m('.perf-stats-content'));
+ }
+ return m(`.perf-stats[expanded=${perfDebug}]`, children);
+ }
+};
+
/**
* Wrap component with common UI elements (nav bar etc).
*/
export function createPage(component: m.Component): m.Component {
const pageComponent = {
view() {
- const children = [
+ return [
m(Sidebar),
m(Topbar),
m(Alerts),
m(component),
+ m(PerfStats),
];
- if (globals.frontendLocalState.perfDebug) {
- children.push(m('.perf-stats'));
- }
- return children;
},
};