| import Link from "next/link";
import { Context } from "@/context/context";
import { StyledSidebar, Overlay, ContainerSidebar } from "./style";
import { useContext } from "react";
import axios from "axios";
import StatusApi from "../StatusApi";
const Sidebar = () => {
  const { router, tokenLocal, setUser, showSideBar } = useContext(Context);
  const onProfile = async (data: any) => {
    try {
      const response = await axios.post(
        `${process.env.NEXT_PUBLIC_API}/profile`,
        data,
      );
      if (response.data.results[0].status === 200) {
        setUser(JSON.stringify(response.data.results[0]));
      }
    } catch (error) {
      error;
    }
  };
  const onLogout = async (data: any) => {
    try {
      const response = await axios.post(
        `${process.env.NEXT_PUBLIC_API}/logout`,
        data,
      );
      if (response.data.results[0].status === 200) {
        const responseData = response?.data?.results[0];
        window.location.href = responseData.msg;
      }
    } catch (error) {
      error;
    }
  };
  return (
    <>
      <StyledSidebar>
        <Overlay onClick={showSideBar} />
        <ContainerSidebar>
          <nav>
            <Link href="/" className="link" onClick={showSideBar}>
              Homepage
            </Link>
            <Link href="/about" className="link" onClick={showSideBar}>
              About us
            </Link>
            <Link href="/shop" className="link" onClick={showSideBar}>
              Shop
            </Link>
            <Link href="/blog" className="link" onClick={showSideBar}>
              Blog
            </Link>
            {tokenLocal && (
              <>
                <Link
                  href="/transactions"
                  className="link"
                  onClick={showSideBar}
                >
                  My transactions
                </Link>
              </>
            )}
          </nav>
          {tokenLocal ? (
            <div className="login-register">
              <StatusApi />
              <button
                className="login"
                onClick={() => {
                  onLogout({ token: tokenLocal, url: "/" });
                  localStorage.clear();
                  showSideBar();
                }}
              >
                Logout
              </button>
              <button
                className="btn-register"
                onClick={() => {
                  onProfile({ token: tokenLocal });
                  router.push("/profile");
                  showSideBar();
                }}
              >
                My account
              </button>
            </div>
          ) : (
            <div className="login-register">
              <StatusApi />
              <button
                className="login"
                onClick={() => {
                  showSideBar();
                  router.push("/login");
                }}
              >
                Login
              </button>
              <button
                className="btn-register"
                onClick={() => {
                  showSideBar();
                  router.push("/register");
                }}
              >
                Get started
              </button>
            </div>
          )}
        </ContainerSidebar>
      </StyledSidebar>
    </>
  );
};
export default Sidebar;
 |