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 ( {item.label} ); }; return ( <>
Logo
{isOpen && (
)} ); };