import '@material/web/iconbutton/icon-button.js'; import '@osm/WebComponents/TopAppBar'; import { mdiMenu, mdiMenuOpen } from '@mdi/js'; import logo from '@osm/../images/logo.png'; import Drawer from '@osm/Components/layout/Drawer'; import NotificationsAction from '@osm/Components/layout/topappbar_actions/NotificationsAction'; import PeriodSwitcherAction from '@osm/Components/layout/topappbar_actions/PeriodSwitcherAction'; import PrintAction from '@osm/Components/layout/topappbar_actions/PrintAction'; import UserInfoAction from '@osm/Components/layout/topappbar_actions/UserInfoAction'; import MdIcon from '@osm/Components/MdIcon'; import {VnodeCollectionItem} from '@osm/typings/jsx'; import { isMobile, mobileMediaQuery } from '@osm/utils/misc'; import {collect} from 'collect.js'; import { Vnode, VnodeDOM } from 'mithril'; import Stream from 'mithril/stream'; import { Attributes, Component } from 'mithril-utilities'; export default class TopAppBar extends Component { drawerOpenState = Stream(!isMobile()); view(vnode: Vnode) { return ( <> {this.navigationIcon(vnode)}
{vnode.children}
{this.branding(vnode)} {this.actions().toArray()}
); } navigationIcon(vnode: Vnode) { return ( ); } branding(vnode: Vnode) { return (
{this.logo(vnode)} {this.title(vnode)}
); } logo(vnode: Vnode) { return {__('OpenSTAManager')}; } title(vnode: Vnode) { return {__('OpenSTAManager')}; } oncreate(vnode: VnodeDOM) { super.oncreate(vnode); mobileMediaQuery().addEventListener('change', (event) => { this.drawerOpenState(event.matches || this.drawerOpenState()); m.redraw(); }); } actions() { return collect({ notifications: , print: , periodSwitcher: , userInfo: }); } onNavigationIconClick() { this.drawerOpenState(!this.drawerOpenState()); } }