import { useEffect, useState } from 'react'; import { NavLink } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; import api from '../services/api'; import { LayoutDashboard, FolderKanban, CheckSquare, Kanban, Inbox, Timer, Users, Calendar, Paperclip, TrendingUp, Building2, Shield, Settings, PanelRightClose, PanelRightOpen, X } from 'lucide-react'; const iconSize = 18; const menuItems = [ { path: '/', label: 'داشبورد', icon: LayoutDashboard }, { path: '/projects', label: 'پروژه‌ها', icon: FolderKanban }, { path: '/tasks', label: 'تسک‌ها', icon: CheckSquare }, { path: '/kanban', label: 'برد کاری', icon: Kanban }, { path: '/backlog', label: 'بک‌لاگ', icon: Inbox }, { path: '/sprints', label: 'اسپرینت‌ها', icon: Timer }, { path: '/team', label: 'اعضای تیم', icon: Users }, { path: '/meetings', label: 'جلسات', icon: Calendar }, { path: '/files', label: 'فایل‌ها', icon: Paperclip }, { path: '/reports', label: 'گزارش‌ها', icon: TrendingUp }, { path: '/organization', label: 'ساختار سازمانی', icon: Building2 }, { path: '/roles', label: 'نقش‌ها و دسترسی‌ها', icon: Shield }, { path: '/settings', label: 'تنظیمات', icon: Settings }, ]; export default function Sidebar({ collapsed, onToggle, mobileOpen = false, onMobileClose }) { const { user } = useAuth(); const fallbackLogo = '/brand/project-mark.png'; const [branding, setBranding] = useState({ company_name: 'مدیریت پروژه', logo_url: null }); useEffect(() => { api.get('/branding').then(({ data }) => setBranding(data.data || {})).catch(() => {}); const handleBrandingUpdate = (event) => setBranding(event.detail || {}); window.addEventListener('branding:updated', handleBrandingUpdate); return () => window.removeEventListener('branding:updated', handleBrandingUpdate); }, []); return ( ); }