import React, { useContext } from 'react'
import { NavLink } from 'react-router-dom'
import logo from '../../assets/icons/ecolyo-logo.svg'
import { useAuth } from '../../hooks/useAuth'
import { UserContext } from '../../hooks/userContext'
import { routes } from '../Routes/Router'
import './sidebar.scss'

const SideBar: React.FC = () => {
  const { user } = useContext(UserContext)
  const { logoutUser } = useAuth()

  return (
    <nav className={'menu'}>
      <div className="logo-container">
        <img src={logo} alt="Ecolyo logo" className="logo" />
      </div>
      <div className="menu-list">
        {user &&
          routes.map(
            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">
        {user ? (
          <button className="btnValid" onClick={logoutUser}>
            Logout
          </button>
        ) : (
          <NavLink to="/login" activeClassName="active">
            Login
          </NavLink>
        )}
      </div>
    </nav>
  )
}

export default SideBar