import { Link, useLocation, useNavigate } from "react-router-dom";
import { useState, useEffect } from "react";
import LogoDM from "../../../assets/icons/LogoDM.svg";
import LogoLM from "../../../assets/icons/Logo-LM.svg";
import { BiBarChartAlt2 } from "react-icons/bi";
import { AiOutlinePieChart } from "react-icons/ai";
import { PiCoffee } from "react-icons/pi";
import { HiOutlineLogout } from "react-icons/hi";
import { FiMenu, FiX } from "react-icons/fi";
const SIDEBAR = {
navigation: [
{
id: 'dashboard',
path: '/dashboard',
icon: BiBarChartAlt2,
label: 'داشبورد',
},
{
id: 'cafe-management',
path: '/cafe-management',
icon: PiCoffee,
label: 'مدیریت کافه ها',
},
{
id: 'stats',
path: '/stats',
icon: AiOutlinePieChart,
label: 'آمار و تحلیل',
},
],
logout: {
icon: HiOutlineLogout,
label: 'خروج',
},
styles: {
activeColor: 'primary',
inactiveColor: '#402E32',
borderColor: '#D9CAB3',
padding: 'p-2.5',
gap: 'gap-2.5',
rounded: 'rounded-lg',
},
};
export default function Sidebar({ className, isOpen, setIsOpen }) {
const location = useLocation();
const navigate = useNavigate();
const [currentLogo, setCurrentLogo] = useState(localStorage.getItem('theme') === 'light' ? LogoDM : LogoLM);
useEffect(() => {
const observer = new MutationObserver(() => {
setCurrentLogo(localStorage.getItem('theme') === 'light' ? LogoDM : LogoLM);
});
observer.observe(document.documentElement, {
attributes: true,
attributeFilter: ['class']
});
return () => observer.disconnect();
}, []);
const isActive = (path) => location.pathname === path;
const handleLogout = () => {
try {
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
localStorage.removeItem('token');
localStorage.removeItem('adminInfo');
navigate('/login');
} catch (error) {
console.error('Logout error:', error);
navigate('/login');
}
};
const closeSidebar = () => setIsOpen(false);
const renderNavItem = (item) => {
const Icon = item.icon;
const active = isActive(item.path);
return (