Skip to content
Snippets Groups Projects
SideBar.tsx 1.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { useContext } from 'react'
    
    import { NavLink } from 'react-router-dom'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    import logo from '../../assets/icons/ecolyo-logo.svg'
    
    import { useAuth } from '../../hooks/useAuth'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    import { UserContext } from '../../hooks/userContext'
    import { routes } from '../Routes/Router'
    import './sidebar.scss'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    const SideBar: React.FC = () => {
    
      const { user } = useContext(UserContext)
      const { logoutUser } = useAuth()
    
        <nav className={'menu'}>
    
          <div className="logo-container">
            <img src={logo} alt="Ecolyo logo" className="logo" />
          </div>
          <div className="menu-list">
    
            {user &&
              routes.map(
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
                route =>
    
                  (!route.adminOnly || user.isAdmin) && (
                    <NavLink
                      key={route.label}
                      to={route.path}
                      activeClassName="active"
                    >
                      {route.label}
                    </NavLink>
                  )
              )}
    
            {process.env.NODE_ENV === 'development' && (
              <a href="/doc/" target="_blank">
                Swagger doc
              </a>
            )}
    
          </div>
          <div className="administration">
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
              <button className="btnValid" onClick={logoutUser}>
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
                Logout
              </button>
    
            ) : (
              <NavLink to="/login" activeClassName="active">
                Login
              </NavLink>
            )}
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    export default SideBar