-
Β© {new Date().getFullYear()} Drive-Thru. All rights reserved.
+
Β© {new Date().getFullYear()} Skycrate. All rights reserved.
diff --git a/Frontend/src/components/Sidebar.jsx b/Frontend/src/components/Sidebar.jsx
index beea1a0..540fe82 100644
--- a/Frontend/src/components/Sidebar.jsx
+++ b/Frontend/src/components/Sidebar.jsx
@@ -1,136 +1,120 @@
-import { Link } from "react-router-dom";
+import { useState, useEffect, useRef } from "react";
+import { Link, useNavigate } from "react-router-dom";
+import { toast } from "react-hot-toast";
const Sidebar = () => {
+ const navigate = useNavigate(); // Hook for programmatic navigation
+ const [userMenuOpen, setUserMenuOpen] = useState(false);
+ const menuRef = useRef();
+
+ // Show loading toast and perform logout
+ const handleLogout = () => {
+ const loadingToast = toast.loading("Logging out...");
+
+ // Simulate a delay (for example, network request)
+ setTimeout(() => {
+ // Remove the token from localStorage
+ localStorage.removeItem("token");
+ localStorage.removeItem("username");
+ localStorage.removeItem("expiresIn");
+
+ // Redirect user to the homepage
+ navigate("/");
+
+ // Show success toast after logout
+ toast.update(loadingToast, {
+ render: "Logged out successfully!",
+ type: "success",
+ isLoading: false,
+ autoClose: 2000,
+ });
+ }, 1500);
+ };
+
+ // Close dropdown on outside click
+ useEffect(() => {
+ const handleClickOutside = (e) => {
+ if (menuRef.current && !menuRef.current.contains(e.target)) {
+ setUserMenuOpen(false);
+ }
+ };
+ document.addEventListener("mousedown", handleClickOutside);
+ return () => document.removeEventListener("mousedown", handleClickOutside);
+ }, []);
+
return (
<>
-