import React, { useContext } from "react";
import { useHistory } from "react-router-dom";
import { Navbar, Nav } from "react-bootstrap";
import { NavLink } from "react-router-dom";
import AuthControl from "./auth/authControl";
import MyBasketButton from "./basket/MyBasketButton"
import SaveBasketButton from "./basket/SaveBasketButton"
import ShowTokenButton from "./ShowTokenButton"
import { QueryContext } from "../contexts/QueryContext";
import { GlobalContext } from "../contexts/GlobalContext";

export default function NavBar() {
    let history = useHistory()

    const { navbar, isAuthenticated, refreshLogin } = useContext(GlobalContext);
    const { config } = useContext(QueryContext);
    if (!navbar) return null;
    if (!config) return null;

    refreshLogin(history)
    //let loggedIn = localStorage.getItem('esap_logged_in')
    //if ((!isAuthenticated) && (loggedIn)) {
    //    history.push("/login");
    //}

    // construct the navigation bar based on the configuration
    const navlist = navbar.navbar;

    return (
    <Navbar bg="dark" variant="dark">
      <img
        alt=""
        src={config.logo}
        height="40"
        className="d-inline-block align-top"
      />

      <Nav className="mr-auto">
        {navlist.map((nav) => (
          <Nav.Link key={nav.title} as={NavLink} to={nav.route}>
            {nav.title}
          </Nav.Link>
        ))}
      </Nav>
        <Nav.Link key="my basket" as={NavLink} to="/basket">
            <MyBasketButton />
        </Nav.Link>
        <SaveBasketButton/>{' '}
      <Nav>
          <ShowTokenButton/>
          <AuthControl />
      </Nav>
    </Navbar>
    );
}