Ignore:
Timestamp:
09/08/22 12:38:24 (22 months ago)
Author:
Nace Gjorgjievski <nace.gorgievski123@…>
Branches:
master
Children:
ee05663
Parents:
717ceae
Message:

Added Order Functionality

File:
1 edited

Legend:

Unmodified
Added
Removed
  • frontend/src/components/Header.js

    r717ceae r16237c4  
    1616import ShoppingBasketIcon from "@mui/icons-material/ShoppingCart";
    1717import MenuIcon from "@mui/icons-material/Menu";
    18 import { Link } from "react-router-dom";
     18import { Link, NavLink, useNavigate } from "react-router-dom";
    1919import logo2 from "../Images/logo2.png";
    2020import Badge from "react-bootstrap/Badge";
     
    2222import { Store } from "../Store";
    2323import { useContext } from "react";
     24import NavDropdown from "react-bootstrap/NavDropdown";
    2425
    2526const toggleMenu = (event) => {
     27  event.stopPropagation();
    2628  let menu = document.querySelector(".mobile-menu-container");
    2729  menu.classList.remove("hidden");
     
    3032
    3133const toggleSubMenu = (event) => {
     34  event.stopPropagation();
    3235  let menu = document.querySelector(".subDropdown");
    3336  menu.classList.remove("hidden");
     
    6871
    6972function Header() {
    70   const { state } = useContext(Store);
    71   const { cart } = state;
     73  const { state, dispatch: ctxDispatch } = useContext(Store);
     74  const { cart, userInfo } = state;
     75  const navigate = useNavigate();
     76
     77  const signoutHandler = () => {
     78    ctxDispatch({ type: "USER_SIGNOUT" });
     79    localStorage.removeItem("userInfo");
     80    localStorage.removeItem("shippingAddress");
     81    localStorage.removeItem("paymentMethod");
     82  };
     83
    7284  return (
    7385    <div className="header">
     
    7890          onClick={toggleMenu}
    7991        />
    80         <img className="header__icon" src={logo2} alt="logo"></img>
     92        <img
     93          className="header__icon"
     94          src={logo2}
     95          alt="logo"
     96          onClick={() => {
     97            navigate("/");
     98          }}
     99        ></img>
    81100      </div>
    82101      <div className="mobile-menu-container hidden">
     
    85104        </div>
    86105        <ul className="mobile-menu">
    87           <li>Почетна</li>
     106          <Link
     107            to="/"
     108            style={{ textDecoration: "none", color: "black" }}
     109            onClick={closeMenu}
     110          >
     111            <li>Почетна</li>
     112          </Link>
    88113          <li onClick={toggleSubMenu} className="subMenu">
    89114            Производи <ArrowDropDownIcon />
     
    492517      <div className="header__right">
    493518        <div className="header__buttons">
    494           <span>
    495             <AccountCircleIcon className="header__login" fontSize="large" />
    496             <p>Најави се</p>
    497           </span>
     519          {userInfo ? (
     520            <NavDropdown
     521              title={
     522                <span>
     523                  <AccountCircleIcon
     524                    className="header__login"
     525                    fontSize="large"
     526                  />
     527                  <p>{userInfo.name}</p>
     528                </span>
     529              }
     530              id="basic-nav-dropdown"
     531            >
     532              <NavDropdown.Item
     533                onClick={() => {
     534                  navigate("/profile");
     535                }}
     536              >
     537                Профил
     538              </NavDropdown.Item>
     539
     540              <NavDropdown.Item
     541                onClick={() => {
     542                  navigate("/orderhistory");
     543                }}
     544              >
     545                Нарачки
     546              </NavDropdown.Item>
     547
     548              <NavDropdown.Divider />
     549              <Link
     550                className="drowdown-item"
     551                to="#signout"
     552                onClick={signoutHandler}
     553              >
     554                Одјави се
     555              </Link>
     556            </NavDropdown>
     557          ) : (
     558            <Link
     559              to={"/signin"}
     560              className="link"
     561              onClick={() => {
     562                navigate("/orderhistory");
     563              }}
     564            >
     565              <span>
     566                <AccountCircleIcon className="header__login" fontSize="large" />
     567                <p>Најави се</p>
     568              </span>
     569            </Link>
     570          )}
     571
    498572          <Link to="/cart" className="badgee">
    499573            <span>
Note: See TracChangeset for help on using the changeset viewer.