import React from 'react'; import { View } from '../types/common.ts'; import { useAuth } from '../context/AuthContext.tsx'; import NavLink, { NavItem } from './sidebar/NavLink.tsx'; const navItems: NavItem[] = [ { view: 'dashboard', label: 'Dashboard', icon: , }, { view: 'dataManagement', label: 'Hitung Ayam', icon: , }, { view: 'weightMonitoring', label: 'Berat Ayam', icon: , subItems: [ { view: 'weightMonitoring', label: 'Dashboard Berat', icon: , }, { view: 'weightStandard', label: 'Standar Mr. Mike', icon: , }, ], }, { view: 'feedSackCounting', label: 'Manajemen Pakan', icon: , subItems: [ { view: 'feedSackCounting', label: 'Hitung Karung', icon: , }, { view: 'cobbStandard', label: 'Standar Performa', icon: , }, ], }, { view: 'iotPanel', label: 'Panel IoT', icon: , }, { view: 'fcrDashboard', label: 'FCR', icon: , }, { view: 'eefDashboard', label: 'EEF', icon: , }, { view: 'kandangRanking', label: 'Peringkat Kandang', icon: , }, { view: 'kandangSettings', label: 'Pengaturan', icon: , }, { view: 'userManagement', label: 'Manajemen Akun', icon: , }, ]; interface SidebarProps { isCollapsed: boolean; view: View; setView: (view: View) => void; onToggleCollapse: () => void; } const Sidebar: React.FC = ({ isCollapsed, view, setView, onToggleCollapse }) => { const { user } = useAuth(); const canOpenSettings = user?.status === 'gm' || user?.status === 'gm_admin' || user?.status === 'buh' || user?.status === 'bu_admin'; const canOpenUserManagement = user?.status === 'superuser' || Boolean(user?.is_superuser); const visibleNav = navItems.filter((item) => { if (item.view === 'kandangSettings') return canOpenSettings; if (item.view === 'userManagement') return canOpenUserManagement; return true; }); return ( ); }; export default Sidebar;