import React, { useState } from 'react'; import { Link, useLocation, useNavigate } from 'react-router-dom'; import { useTheme } from '../contexts/ThemeContext'; import { LayoutDashboard, Package, Wrench, Menu, X, Moon, Sun, LogOut, ClipboardList, Calendar } from 'lucide-react'; interface SidebarLink { id: string; title: string; icon: React.ReactNode; path: string; visible: boolean; } interface SidebarProps { userEmail?: string; } const Sidebar: React.FC = ({ userEmail }) => { const [isCollapsed, setIsCollapsed] = useState(false); const location = useLocation(); const navigate = useNavigate(); const { theme, toggleTheme } = useTheme(); const handleLogout = () => { localStorage.removeItem('user'); localStorage.removeItem('sid'); navigate('/login'); }; // Role-based visibility logic // const isMaintenanceManagerKASH = userEmail === 'maintenancemanager-kash@gmail.com'; // const isMaintenanceManagerTH = userEmail === 'maintenancemanager-th@gmail.com'; // const isMaintenanceManagerDAJH = userEmail === 'maintenancemanager-dajh@gmail.com'; const isFinanceManager = userEmail === 'financemanager@gmail.com'; const isEndUser = userEmail && ( userEmail.startsWith('enduser1-kash') || userEmail.startsWith('enduser1-dajh') || userEmail.startsWith('enduser1-th') ); // const isTechnician = userEmail && ( // userEmail.startsWith('technician1-kash') || // userEmail.startsWith('technician1-dajh') || // userEmail.startsWith('technician1-th') // ); const showAsset = !isFinanceManager && !isEndUser; // const showInventory = !isFinanceManager && !isEndUser; const showPreventiveMaintenance = !isFinanceManager && !isEndUser; const showGeneralWO = !isFinanceManager && !isEndUser; // const showAMTeam = !isFinanceManager && !isEndUser; // const showProjectDashboard = !isMaintenanceManagerKASH && !isMaintenanceManagerTH && !isMaintenanceManagerDAJH && !isFinanceManager && !isEndUser && !isTechnician; // const showSiteDashboards = !isFinanceManager && !isEndUser; // const showSupplierDashboard = !isFinanceManager && !isEndUser; // const showSLA = !isFinanceManager && !isEndUser && !isTechnician; // const showSiteInfo = !isFinanceManager && !isEndUser; const links: SidebarLink[] = [ { id: 'dashboard', title: 'Dashboard', icon: , path: '/dashboard', visible: true }, { id: 'assets', title: 'Assets', icon: , path: '/assets', visible: showAsset }, { id: 'work-orders', title: 'Work Orders', icon: , path: '/work-orders', visible: showGeneralWO }, { id: 'maintenance', title: 'Asset Maintenance', icon: , path: '/maintenance', visible: showPreventiveMaintenance }, { id: 'ppm', title: 'PPM', icon: , path: '/ppm', visible: showPreventiveMaintenance }, // { // id: 'inventory', // title: 'Inventory', // icon: , // path: '/inventory', // visible: showInventory // }, // { // id: 'vendors', // title: 'Vendors', // icon: , // path: '/vendors', // visible: showSupplierDashboard // }, // { // id: 'dashboard-view', // title: 'Dashboard', // icon: , // path: '/dashboard-view', // visible: showProjectDashboard // }, // { // id: 'sites', // title: 'Sites', // icon: , // path: '/sites', // visible: showSiteDashboards // }, // { // id: 'active-map', // title: 'Active Map', // icon: , // path: '/active-map', // visible: showSiteInfo // }, // { // id: 'users', // title: 'Users', // icon: , // path: '/users', // visible: showAMTeam // }, // { // id: 'account', // title: 'Account', // icon: , // path: '/account', // visible: showSLA // } ]; const visibleLinks = links.filter(link => link.visible); const isActive = (path: string) => { return location.pathname === path; }; return (
{/* Sidebar Header */}
{!isCollapsed && (
{/* Seera Arabia Logo */} Seera Arabia { // Fallback to SVG if image not found e.currentTarget.style.display = 'none'; e.currentTarget.nextElementSibling?.classList.remove('hidden'); }} />

Seera Arabia

)} {isCollapsed && (
Seera Arabia { e.currentTarget.style.display = 'none'; e.currentTarget.nextElementSibling?.classList.remove('hidden'); }} />
)}
{/* Navigation Links */} {/* Theme Toggle, Logout & User Info (Bottom) */}
{/* Theme Toggle Button */} {/* Logout Button */} {!isCollapsed && userEmail && (
Logged in as:
{userEmail}
)} {!isCollapsed && (
Seera Arabia AMS v1.0
)}
); }; export default Sidebar;