render user picture and mobile nav
This commit is contained in:
@ -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>
|
||||||
|
@ -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,16 +46,34 @@ 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 (
|
||||||
|
<NavItem
|
||||||
|
href={ '/' + username }>
|
||||||
|
[ { points } ]
|
||||||
|
</NavItem>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
renderSignin(username, picture) {
|
||||||
|
if (username) {
|
||||||
return (
|
return (
|
||||||
<NavItem
|
<div
|
||||||
|
className='hidden-xs hidden-sm'
|
||||||
eventKey={ 2 }>
|
eventKey={ 2 }>
|
||||||
Show Picture
|
<a href={ '/' + username }>
|
||||||
</NavItem>
|
<img src={ picture } />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
@ -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 }>
|
||||||
<Nav
|
<CollapsibleNav eventKey={ 0 }>
|
||||||
eventKey={ 0 }
|
<Nav
|
||||||
right={ true }>
|
className='hamburger-dropdown'
|
||||||
{ navElements }
|
navbar={ true }
|
||||||
{ this.renderSignin() }
|
right={ true }>
|
||||||
</Nav>
|
{ navElements }
|
||||||
|
{ this.renderPoints(username, points)}
|
||||||
|
{ this.renderSignin(username, picture) }
|
||||||
|
</Nav>
|
||||||
|
</CollapsibleNav>
|
||||||
</Navbar>
|
</Navbar>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user