Add learn button to navbar

This commit is contained in:
Berkeley Martinez
2015-11-19 22:45:31 -08:00
parent 6f62868f44
commit dfa5acde60
5 changed files with 61 additions and 15 deletions

View File

@ -12,6 +12,7 @@ import {
import navLinks from './links.json';
import FCCNavItem from './NavItem.jsx';
const win = typeof window !== 'undefined' ? window : {};
const fCClogo = 'https://s3.amazonaws.com/freecodecamp/freecodecamp_logo.svg';
const logoElement = (
@ -31,6 +32,16 @@ const toggleButton = (
</button>
);
function getDashedName() {
let challengeDashedName;
if (typeof win.localStorage !== 'undefined') {
challengeDashedName = win.localStorage.getItem('currentDashedName');
}
return challengeDashedName && challengeDashedName !== 'undefined' ?
challengeDashedName :
'';
}
export default React.createClass({
displayName: 'Nav',
@ -68,6 +79,22 @@ export default React.createClass({
});
},
renderLearnBtn() {
return (
<NavItem
href='#'
onClick={ () => {
const challengeDashedName = getDashedName();
const goTo = challengeDashedName ?
'/challenges/' + challengeDashedName :
'/map';
win.location = goTo;
}}>
Learn
</NavItem>
);
},
renderPoints(username, points) {
if (!username) {
return null;
@ -107,6 +134,7 @@ export default React.createClass({
render() {
const { username, points, picture } = this.props;
return (
<Navbar
className='nav-height'
@ -119,6 +147,7 @@ export default React.createClass({
className='hamburger-dropdown'
navbar={ true }
right={ true }>
{ this.renderLearnBtn() }
{ this.renderLinks() }
{ this.renderPoints(username, points) }
{ this.renderSignin(username, picture) }

View File

@ -17,4 +17,8 @@
"content": "Jobs",
"link": "/jobs",
"react": true
},{
"content": "Links",
"link": "/links"
},{
}]

View File

@ -1,14 +0,0 @@
import React from 'react';
export default class extends React.Component {
constructor(props) {
super(props);
}
static displayName = 'NotFound'
static propTypes = {}
componentDidMount() {
}
render() {
return null;
}
}

View File

@ -0,0 +1,22 @@
import React, { PropTypes } from 'react';
const win = typeof window !== 'undefined' ? window : {};
function goToServer(path) {
win.location = '/' + path;
}
export default React.createClass({
displayName: 'NotFound',
propTypes: {
params: PropTypes.object
},
componentWillMount() {
goToServer(this.props.params.splat);
},
componentDidMount() {
},
render() {
return <span></span>;
}
});

View File

@ -1,10 +1,15 @@
import Jobs from './Jobs';
import Hikes from './Hikes';
import NotFound from '../components/NotFound/index.jsx';
export default {
path: '/',
childRoutes: [
Jobs,
Hikes
Hikes,
{
path: '*',
component: NotFound
}
]
};