import '@material/web/icon/icon.js'; import '@material/web/list/list-item.js'; import {router} from '@maicol07/inertia-mithril'; import {ListItemEl} from '@material/web/list/internal/listitem/list-item'; import type * as MaterialIcons from '@mdi/js'; import MdIcon from '@osm/Components/MdIcon'; import {Vnode} from 'mithril'; import { Attributes, Component } from 'mithril-utilities'; import {ValueOf} from 'type-fest'; type Icons = ValueOf; export interface DrawerEntryAttributes extends Attributes, Partial { href: ListItemEl['href']; icon: Icons; } export class DrawerEntry extends Component { view(vnode: Vnode) { return ( ); } isRouteActive(href: string) { return route(route().current()!, route().params) === href; } navigateToRoute(event: Event) { event.preventDefault(); router.visit((event.target as ListItemEl).href); } }