Files
freeCodeCamp/common/app/components/Nav/Nav.jsx

89 lines
1.7 KiB
React
Raw Normal View History

2015-06-17 21:04:28 -07:00
import React from 'react';
2015-07-23 22:58:44 -07:00
import {
Col,
Nav,
Navbar,
NavItem
} from 'react-bootstrap';
import navLinks from './links.json';
import FCCNavItem from './NavItem.jsx';
2015-06-04 10:53:01 -07:00
const fCClogo = 'https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg';
const navElements = navLinks.map((navItem, index) => {
return (
<NavItem
eventKey={ index + 1 }
2015-07-23 15:41:01 -07:00
href={ navItem.link }
key={ index }>
{ navItem.content }
</NavItem>
);
});
const logoElement = (
<a href='/'>
<img
alt='learn to code javascript at Free Code Camp logo'
className='img-responsive nav-logo'
src={ fCClogo } />
</a>
);
2015-07-23 22:58:44 -07:00
const toggleButton = (
<button className='hamburger'>
<Col xs={ 12 }>
<span className='hamburger-text'>Menu</span>
</Col>
</button>
);
2015-06-17 21:04:28 -07:00
export default class extends React.Component {
constructor(props) {
super(props);
}
2015-06-04 10:53:01 -07:00
2015-06-17 21:04:28 -07:00
static displayName = 'Nav'
static propTypes = {
signedIn: React.PropTypes.bool
}
2015-06-04 10:53:01 -07:00
2015-06-17 21:04:28 -07:00
renderSignin() {
2015-06-04 10:53:01 -07:00
if (this.props.signedIn) {
return (
<NavItem
eventKey={ 2 }>
Show Picture
</NavItem>
);
} else {
return (
<FCCNavItem
2015-06-29 09:50:25 -07:00
className='btn signup-btn signup-btn-nav'
2015-06-04 10:53:01 -07:00
eventKey={ 2 }
2015-06-17 21:04:28 -07:00
href='/login'>
Sign In
</FCCNavItem>
2015-06-04 10:53:01 -07:00
);
}
2015-06-17 21:04:28 -07:00
}
2015-06-04 10:53:01 -07:00
2015-06-17 21:04:28 -07:00
render() {
2015-06-04 10:53:01 -07:00
return (
<Navbar
brand={ logoElement }
2015-06-17 21:04:28 -07:00
className='nav-height'
2015-06-04 10:53:01 -07:00
fixedTop={ true }
2015-07-23 22:58:44 -07:00
toggleButton={ toggleButton }
2015-06-17 21:04:28 -07:00
toggleNavKey={ 0 }>
2015-06-04 10:53:01 -07:00
<Nav
eventKey={ 0 }
2015-06-17 21:04:28 -07:00
right={ true }>
{ navElements }
2015-07-03 17:46:58 -07:00
{ this.renderSignin() }
2015-06-04 10:53:01 -07:00
</Nav>
</Navbar>
);
}
2015-06-17 21:04:28 -07:00
}