react-toolbox/components/navigation/index.jsx

50 lines
1.1 KiB
JavaScript

/* global React */
import { addons } from 'react/addons';
import style from './style';
import Button from '../button';
import Link from '../link';
export default React.createClass({
mixins: [addons.PureRenderMixin],
displayName: 'Navigation',
propTypes: {
actions: React.PropTypes.array,
className: React.PropTypes.string,
routes: React.PropTypes.array,
type: React.PropTypes.string
},
getDefaultProps () {
return {
actions: [],
className: '',
type: 'default',
routes: []
};
},
render () {
let className = `${style.root} ${this.props.className}`;
if (this.props.type) className += ` ${this.props.type}`;
const buttons = this.props.actions.map((action, index) => {
return <Button key={index} {...action} />;
});
const links = this.props.routes.map((route, index) => {
return <Link key={index} {...route} />;
});
return (
<nav data-react-toolbox='navigation' className={className}>
{ links }
{ buttons }
{ this.props.children }
</nav>
);
}
});