RSNewWebUI/webui-src/app/widgets.js

71 lines
1.6 KiB
JavaScript

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,
};