PHP Classes

File: frontend/src/components/Sidebar/index.tsx

Recommend this page to a friend!
  Classes of carlos carvalho   yrprey PHP application   frontend/src/components/Sidebar/index.tsx   Download  
File: frontend/src/components/Sidebar/index.tsx
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: yrprey PHP application
Web app to learn about OWASP API vulnerabilities
Author: By
Last change:
Date: 3 months ago
Size: 3,387 bytes
 

Contents

Class file image Download
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;