diff --git a/app/components/Navigation/Navigation.jsx b/app/components/Navigation/Navigation.jsx index a44495637b757552a08804116d5fbf4ae6c87d34..3286d6c2a6a6755f3229e737f4ecafefa56f3ee8 100644 --- a/app/components/Navigation/Navigation.jsx +++ b/app/components/Navigation/Navigation.jsx @@ -1,4 +1,5 @@ import React from 'react' +import { browserHistory } from 'react-router' import { LinkContainer } from 'react-router-bootstrap' import { Navbar, Nav, NavItem, NavbarBrand } from 'react-bootstrap' @@ -6,39 +7,61 @@ import Authorize from 'pubsweet-frontend/src/helpers/Authorize' import NavbarUser from 'pubsweet-component-navigation/NavbarUser' export default class Navigation extends React.Component { + constructor (props) { + super(props) + this.logout = this.logout.bind(this) + } + + logout () { + const { logoutUser } = this.props.actions + logoutUser() + browserHistory.push('/') + } render () { - const { actions, currentUser } = this.props + const { currentUser } = this.props let logoutButtonIfAuthenticated + if (currentUser.isAuthenticated) { - logoutButtonIfAuthenticated = <NavbarUser - user={currentUser.user} - onLogoutClick={actions.logoutUser} - /> + logoutButtonIfAuthenticated = ( + <NavbarUser + user={currentUser.user} + onLogoutClick={this.logout} + /> + ) } + + // TODO -- fix object properties underneath return ( <Navbar fluid> + <Navbar.Header> <NavbarBrand> <a href='#'><img src='/pubsweet.jpg' alt='pubsweet' /></a> </NavbarBrand> </Navbar.Header> + <Nav> <LinkContainer to='/books'> <NavItem>Books</NavItem> </LinkContainer> + <Authorize operation='read' object={currentUser.user}> <LinkContainer to='/users'> <NavItem>Users</NavItem> </LinkContainer> </Authorize> + <Authorize operation='read'> <LinkContainer to='/teams'> <NavItem>Teams</NavItem> </LinkContainer> </Authorize> + </Nav> + { logoutButtonIfAuthenticated } + </Navbar> ) }