import React from 'react' import { connect } from 'react-redux' import { Link } from 'react-router-dom' import { apiUrl } from '../../utils' function NavBar(props) { return ( <header> <nav className="navbar navbar-expand-lg navbar-light bg-light"> <div className="container"> <span className="navbar-brand">FitTrackee</span> <button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" > <span className="navbar-toggler-icon" /> </button> <div className="collapse navbar-collapse" id="navbarSupportedContent"> <ul className="navbar-nav mr-auto"> <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/', }} > Dashboard </Link> </li> {props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/activities/history', }} > Workouts </Link> </li> )} {props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/activities/add', }} > <strong>Add workout</strong> </Link> </li> )} {props.user.admin && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/admin', }} > Admin </Link> </li> )} </ul> <ul className="navbar-nav flex-row ml-md-auto d-none d-md-flex"> {!props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/register', }} > Register </Link> </li> )} {!props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/login', }} > Login </Link> </li> )} {props.user.picture === true && ( <img alt="Avatar" src={`${apiUrl}users/${props.user.id}/picture` + `?${Date.now()}`} className="img-fluid App-nav-profile-img" /> )} {props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/profile', }} > {props.user.username} </Link> </li> )} {props.user.isAuthenticated && ( <li className="nav-item"> <Link className="nav-link" to={{ pathname: '/logout', }} > Logout </Link> </li> )} </ul> </div> </div> </nav> </header> ) } export default connect( state => ({ user: state.user, }) )(NavBar)