const m = require('mithril'); const Sidebar = () => { let active = 0; return { view: (v) => m( '.sidebar', v.attrs.tabs.map((panelName, index) => m( m.route.Link, { class: index === active ? 'selected-sidebar-link' : '', onclick: () => (active = index), href: v.attrs.baseRoute + panelName, }, panelName ) ) ), }; }; const SidebarQuickView = () => { // for the Mail tab, to be moved later. let quickactive = -1; return { view: (v) => m( '.sidebarquickview', m('h4', 'Quick View'), v.attrs.tabs.map((panelName, index) => m( m.route.Link, { class: index === quickactive ? 'selected-sidebarquickview-link' : '', onclick: () => (quickactive = index), href: v.attrs.baseRoute + panelName, }, panelName ) ) ), }; }; // There are ways of doing this inside m.route but it is probably // cleaner and faster when kept outside of the main auto // rendering system function popupMessage(message) { const container = document.getElementById('modal-container'); container.style.display = 'block'; m.render( container, m('.modal-content', [ m( 'button.red.close-btn', { onclick: () => (container.style.display = 'none'), }, m('i.fas.fa-times') ), message, ]) ); } module.exports = { Sidebar, SidebarQuickView, popupMessage, };