import m, { ClosureComponent, Component } from "mithril"; const component: ClosureComponent = (): Component => { return { view: (vnode) => { const active = { [vnode.attrs["page"]]: "active" }; const tabs = []; if (window.authorizer.hasAccess("devices", 1)) { tabs.push( m( "li", { class: active["overview"] }, m("a", { href: "#!/overview" }, "Overview"), ), ); } if (window.authorizer.hasAccess("devices", 2)) { tabs.push( m( "li", { class: active["devices"] }, m("a", { href: "#!/devices" }, "Devices"), ), ); } if (window.authorizer.hasAccess("faults", 2)) { tabs.push( m( "li", { class: active["faults"] }, m("a", { href: "#!/faults" }, "Faults"), ), ); } const adminPages = [ "presets", "provisions", "virtualParameters", "files", ]; for (const page of adminPages) { if (window.authorizer.hasAccess(page, 2)) { tabs.push( m( "li", { class: active["admin"] }, m("a", { href: "#!/admin" }, "Admin"), ), ); break; } } return m("nav", m("ul", tabs)); }, }; }; export default component;