Skip to content
Snippets Groups Projects
Head.js 2.42 KiB
Newer Older
  • Learn to ignore specific revisions
  • meskio's avatar
    meskio committed
    import React, { useContext } from "react";
    import { Navbar, Nav, NavDropdown, Button, Form } from "react-bootstrap";
    import { useLocation } from "react-router-dom";
    
    import { LinkContainer } from "react-router-bootstrap";
    
    meskio's avatar
    meskio committed
    import mano from "./mano.svg";
    import AuthContext from "./AuthContext";
    
    meskio's avatar
    meskio committed
    
    function Head(props) {
    
    meskio's avatar
    meskio committed
      const auth = useContext(AuthContext);
      let location = useLocation();
    
    meskio's avatar
    meskio committed
    
    
    meskio's avatar
    meskio committed
      let adminNav;
      if (auth.role === "admin") {
        adminNav = (
          <NavDropdown title="Admin" id="admin">
    
            <LinkContainer to="/members/purchase">
    
              <NavDropdown.Item>Compra</NavDropdown.Item>
    
            </LinkContainer>
            <LinkContainer to="/members">
    
              <NavDropdown.Item>Socias</NavDropdown.Item>
    
            </LinkContainer>
            <LinkContainer to="/topup">
    
              <NavDropdown.Item>Recarga</NavDropdown.Item>
    
            </LinkContainer>
            <LinkContainer to="/members/add">
    
              <NavDropdown.Item>Nueva socia</NavDropdown.Item>
    
    meskio's avatar
    meskio committed
          </NavDropdown>
        );
      }
      return (
    
        <Navbar bg="light" expand="sm">
    
          <LinkContainer to="/">
            <Navbar.Brand>
              <img
                src={mano}
                width="30"
                height="30"
                className="d-inline-block align-top"
                alt="Garbanzo Negro"
              />
            </Navbar.Brand>
          </LinkContainer>
    
    meskio's avatar
    meskio committed
          <Navbar.Toggle aria-controls="basic-navbar-nav" />
          <Navbar.Collapse id="basic-navbar-nav">
            <Nav className="mr-auto" activeKey={location.pathname}>
    
              <LinkContainer to="/products">
                <Nav.Link>Productos</Nav.Link>
              </LinkContainer>
              <LinkContainer to="/purchase">
                <Nav.Link>Comprar</Nav.Link>
              </LinkContainer>
    
              {(auth.role === "order" || auth.role === "admin") && (
                <LinkContainer to="/order/create">
                  <Nav.Link>Abrir pedido</Nav.Link>
                </LinkContainer>
              )}
    
    meskio's avatar
    meskio committed
            </Nav>
    
            <Nav className="ml-auto" activeKey={location.pathname}>
              <NavDropdown title="Ajustes" id="ajustes">
                <LinkContainer to="/password">
                  <NavDropdown.Item>Cambiar contraseña</NavDropdown.Item>
                </LinkContainer>
              </NavDropdown>
    
              {adminNav}
            </Nav>
    
    meskio's avatar
    meskio committed
            <Form inline>
              <Button variant="outline-success" onClick={props.onLogout}>
                Salir
              </Button>
            </Form>
          </Navbar.Collapse>
        </Navbar>
      );
    
    meskio's avatar
    meskio committed
    }
    
    export default Head;