From c2c387648f15fdc5ff97721ef6cdb1facc698b67 Mon Sep 17 00:00:00 2001 From: AINDUSTRIES Date: Mon, 17 Mar 2025 22:29:37 +0100 Subject: [PATCH] Created navbar --- app/components/navbar.tsx | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/components/navbar.tsx diff --git a/app/components/navbar.tsx b/app/components/navbar.tsx new file mode 100644 index 0000000..7c57088 --- /dev/null +++ b/app/components/navbar.tsx @@ -0,0 +1,76 @@ +import { useState } from "react"; +import { useLocation, useNavigate } from "react-router"; +import client from "~/api/client"; +import { useUserStore } from "~/hooks/user"; + +export default function NavBar() { + const location = useLocation().pathname; + const user = useUserStore((state) => state.user); + const setUser = useUserStore((state) => state.setUser); + const [popupOpen, setPopupOpen] = useState(false); + const navigate = useNavigate(); + + function handleProfileClick() { + if (user) { + setPopupOpen(!popupOpen); + } else { + navigate("/login"); + } + } + + async function handleLogout() { + const [_, status] = await client.POST("/logout", { + token: user ? user.token : "", + }); + setUser(null); + } + + return ( +
+
+ navigate("/")} + className={ + "border-2 white rounded-md px-2 py-1" + + (location === "/" ? " bg-gray-500" : "") + } + > + Home + +
+ +
+ ); +}