Skip to content
Snippets Groups Projects
NavBar.js 1.62 KiB
Newer Older
Zheng Meyer's avatar
Zheng Meyer committed
import React, { useContext } from "react";
import { useHistory } from "react-router-dom";
Zheng Meyer's avatar
Zheng Meyer committed
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";
Zheng Meyer's avatar
Zheng Meyer committed

export default function NavBar() {
Zheng Meyer's avatar
Zheng Meyer committed

    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 (
Zheng Meyer's avatar
Zheng Meyer committed
    <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/>{' '}
Zheng Meyer's avatar
Zheng Meyer committed
      <Nav>
          <ShowTokenButton/>
Zheng Meyer's avatar
Zheng Meyer committed
      </Nav>
    </Navbar>