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;