material-ui
Version:
Material Design UI components built with React
49 lines (40 loc) • 1.24 kB
JSX
var React = require('react'),
Router = require('react-router'),
RouteHandler = Router.RouteHandler,
mui = require('mui'),
Menu = mui.Menu;
var PageWithNav = React.createClass({
mixins: [Router.Navigation, Router.State],
propTypes: {
menuItems: React.PropTypes.array
},
render: function() {
return (
<div className="mui-app-content-canvas page-with-nav">
<div className="page-with-nav-content">
<RouteHandler />
</div>
<div className="page-with-nav-secondary-nav">
<Menu
ref="menuItems"
zDepth={0}
menuItems={this.props.menuItems}
selectedIndex={this._getSelectedIndex()}
onItemClick={this._onMenuItemClick} />
</div>
</div>
);
},
_getSelectedIndex: function() {
var menuItems = this.props.menuItems,
currentItem;
for (var i = menuItems.length - 1; i >= 0; i--) {
currentItem = menuItems[i];
if (currentItem.route && this.isActive(currentItem.route)) return i;
};
},
_onMenuItemClick: function(e, index, item) {
this.transitionTo(item.route);
}
});
module.exports = PageWithNav;