import { NavLink, useNavigate } from 'react-router-dom' import { CalendarDays, BookOpen, BedDouble, Globe, Settings, FileText, LayoutDashboard, Building2, Users, X, Hotel, Puzzle, CalendarRange, Map, LayoutGrid, UserCog, UsersRound, TrendingUp, Tag, Award, Wrench, Utensils, } from 'lucide-react' import { useAuth } from '../../contexts/AuthContext' import { useModules } from '../../contexts/ModulesContext' import { MODULES_DATA } from '../../data/modulesData' import { cn } from '../../lib/utils' interface SidebarProps { open: boolean onClose: () => void } function NavItem({ to, icon: Icon, label, onClick, }: { to: string icon: React.ElementType label: string onClick?: () => void }) { return ( cn('sidebar-link', isActive && 'active')} > {label} ) } export function Sidebar({ open, onClose }: SidebarProps) { const { user } = useAuth() const { statuses } = useModules() const navigate = useNavigate() const isAdmin = user?.role === 'super_admin' const isHousekeeper = user?.role === 'housekeeper' const isModuleActive = (id: string) => statuses[id] === 'active' || statuses[id] === 'trial' // Core modules with dedicated nav positions (not shown in generic module list) const CORE_MODULE_IDS = ['channel-manager'] // Module items for the "Модули" sidebar section const activeModuleItems = MODULES_DATA.filter( m => m.sidebarItem && !m.sidebarItem.showForHousekeeper && !CORE_MODULE_IDS.includes(m.id) && isModuleActive(m.id), ) return ( <> {open && (
)} ) }