render user picture and mobile nav

This commit is contained in:
Berkeley Martinez
2015-07-24 21:54:19 -07:00
parent 81b1c81b51
commit 9a236d1ec7
2 changed files with 45 additions and 15 deletions

View File

@ -19,13 +19,19 @@ export default contain(
displayName: 'FreeCodeCamp', displayName: 'FreeCodeCamp',
propTypes: { propTypes: {
children: PropTypes.node children: PropTypes.node,
username: PropTypes.string,
points: PropTypes.number,
picture: PropTypes.string
}, },
render() { render() {
const { username, points, picture } = this.props;
const navProps = { username, points, picture };
return ( return (
<div> <div>
<Nav /> <Nav
{ ...navProps }/>
<Row> <Row>
{ this.props.children } { this.props.children }
</Row> </Row>

View File

@ -1,6 +1,7 @@
import React from 'react'; import React, { PropTypes } from 'react';
import { import {
Col, Col,
CollapsibleNav,
Nav, Nav,
Navbar, Navbar,
NavItem NavItem
@ -45,17 +46,35 @@ export default class extends React.Component {
static displayName = 'Nav' static displayName = 'Nav'
static propTypes = { static propTypes = {
signedIn: React.PropTypes.bool points: PropTypes.number,
picture: PropTypes.string,
signedIn: PropTypes.bool,
username: PropTypes.string
} }
renderSignin() { renderPoints(username, points) {
if (this.props.signedIn) { if (!username) {
return null;
}
return ( return (
<NavItem <NavItem
eventKey={ 2 }> href={ '/' + username }>
Show Picture [ { points } ]
</NavItem> </NavItem>
); );
}
renderSignin(username, picture) {
if (username) {
return (
<div
className='hidden-xs hidden-sm'
eventKey={ 2 }>
<a href={ '/' + username }>
<img src={ picture } />
</a>
</div>
);
} else { } else {
return ( return (
<FCCNavItem <FCCNavItem
@ -69,6 +88,7 @@ export default class extends React.Component {
} }
render() { render() {
const { username, points, picture } = this.props;
return ( return (
<Navbar <Navbar
brand={ logoElement } brand={ logoElement }
@ -76,12 +96,16 @@ export default class extends React.Component {
fixedTop={ true } fixedTop={ true }
toggleButton={ toggleButton } toggleButton={ toggleButton }
toggleNavKey={ 0 }> toggleNavKey={ 0 }>
<CollapsibleNav eventKey={ 0 }>
<Nav <Nav
eventKey={ 0 } className='hamburger-dropdown'
navbar={ true }
right={ true }> right={ true }>
{ navElements } { navElements }
{ this.renderSignin() } { this.renderPoints(username, points)}
{ this.renderSignin(username, picture) }
</Nav> </Nav>
</CollapsibleNav>
</Navbar> </Navbar>
); );
} }