You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
921 B
JavaScript

import _Navigation from './_Navigation.js';
import _User from './_User.js';
var MenuItem = function(){
return { view: function(vnode){
var menuitem = vnode.attrs.menuitem;
var attrs = {}
if(menuitem.component !== null || menuitem.run !== null){ // note to self for continuation: make a proper onclick handler to both navigateTo and run the 'run', or either one if only one is provided
attrs.onclick = function(){
if(menuitem.component !== null){ _Navigation.navigateTo(menuitem.component,menuitem.attrs); }
if(menuitem.run !== null){ menuitem.run(); }
}
}
return m("a.btn.btn-link", attrs, [
menuitem.label,
m('.list',
menuitem.children.map(function(mi){
if(!menuitem.restricted || _User.isLoggedIn()){
return m(MenuItem, {menuitem: mi});
}
}))
]);
}
};
};
export default MenuItem;