mirror of
https://github.com/stolksdorf/homebrewery.git
synced 2025-12-22 04:41:29 +00:00
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
var React = require('react');
|
|
var _ = require('lodash');
|
|
var cx = require('classnames');
|
|
|
|
var NaturalCritIcon = require('naturalcrit/svg/naturalcrit.svg.jsx');
|
|
|
|
var Nav = {
|
|
base : React.createClass({
|
|
render : function(){
|
|
return <nav>
|
|
<div className='navContent'>
|
|
{this.props.children}
|
|
</div>
|
|
</nav>
|
|
}
|
|
}),
|
|
logo : function(){
|
|
return <a className='navLogo' href="http://naturalcrit.com">
|
|
<NaturalCritIcon />
|
|
<span className='name'>
|
|
Natural<span className='crit'>Crit</span>
|
|
</span>
|
|
</a>;
|
|
},
|
|
|
|
section : React.createClass({
|
|
render : function(){
|
|
return <div className='navSection'>
|
|
{this.props.children}
|
|
</div>
|
|
}
|
|
}),
|
|
|
|
item : React.createClass({
|
|
getDefaultProps: function() {
|
|
return {
|
|
icon : null,
|
|
href : null,
|
|
newTab : false,
|
|
onClick : function(){},
|
|
color : null
|
|
};
|
|
},
|
|
handleClick : function(){
|
|
this.props.onClick();
|
|
},
|
|
render : function(){
|
|
var classes = cx('navItem', this.props.color, this.props.className);
|
|
|
|
var icon;
|
|
if(this.props.icon) icon = <i className={'fa ' + this.props.icon} />;
|
|
|
|
if(this.props.href){
|
|
return <a {...this.props} className={classes} target={this.props.newTab ? '_blank' : '_self'} >
|
|
{this.props.children}
|
|
{icon}
|
|
</a>
|
|
}else{
|
|
return <div {...this.props} className={classes} onClick={this.handleClick} >
|
|
{this.props.children}
|
|
{icon}
|
|
</div>
|
|
}
|
|
}
|
|
}),
|
|
|
|
};
|
|
|
|
|
|
module.exports = Nav; |