import React from 'react'; import { useTranslation } from 'react-i18next'; import { Link, useLocation } from 'react-router-dom'; import { LayoutDashboard, CalendarDays, Settings, Users, CreditCard, MessageSquare, LogOut, ClipboardList, Briefcase, Ticket, HelpCircle, Clock, Plug, FileSignature, CalendarOff, } from 'lucide-react'; import { Business, User } from '../types'; import { useLogout } from '../hooks/useAuth'; import { usePlanFeatures } from '../hooks/usePlanFeatures'; import SmoothScheduleLogo from './SmoothScheduleLogo'; import UnfinishedBadge from './ui/UnfinishedBadge'; import { SidebarSection, SidebarItem, SidebarDivider, } from './navigation/SidebarComponents'; interface SidebarProps { business: Business; user: User; isCollapsed: boolean; toggleCollapse: () => void; } const Sidebar: React.FC = ({ business, user, isCollapsed, toggleCollapse }) => { const { t } = useTranslation(); const { role } = user; const logoutMutation = useLogout(); const { canUse } = usePlanFeatures(); const canViewAdminPages = role === 'owner' || role === 'manager'; const canViewManagementPages = role === 'owner' || role === 'manager'; const isStaff = role === 'staff'; const canViewSettings = role === 'owner'; const canViewTickets = role === 'owner' || role === 'manager' || (role === 'staff' && user.can_access_tickets); const canSendMessages = user.can_send_messages === true; const handleSignOut = () => { logoutMutation.mutate(); }; return (
{/* Header / Logo */} {/* Navigation */} {/* User Section */}
{!isCollapsed && ( {t('nav.smoothSchedule')} )}
); }; export default Sidebar;