feat: Gestion de la sidebar [N3WTS-8]

This commit is contained in:
N3WT DE COMPET
2026-02-15 18:02:57 +01:00
parent a82483f3bd
commit ddcaba382e

View File

@ -35,7 +35,7 @@ import { useEstablishment } from '@/context/EstablishmentContext';
export default function Layout({ children }) { export default function Layout({ children }) {
const t = useTranslations('sidebar'); const t = useTranslations('sidebar');
const [isSidebarOpen, setIsSidebarOpen] = useState(false); const [isSidebarOpen, setIsSidebarOpen] = useState(false);
const { profileRole, establishments, user, clearContext } = const { profileRole, establishments, clearContext } =
useEstablishment(); useEstablishment();
const sidebarItems = { const sidebarItems = {
@ -112,6 +112,15 @@ export default function Layout({ children }) {
setIsSidebarOpen(false); setIsSidebarOpen(false);
}, [pathname]); }, [pathname]);
// Filtrage dynamique des items de la sidebar selon le rôle
let sidebarItemsToDisplay = Object.values(sidebarItems);
if (profileRole === 0) {
// Si pas admin, on retire "directory" et "settings"
sidebarItemsToDisplay = sidebarItemsToDisplay.filter(
(item) => item.id !== 'directory' && item.id !== 'settings'
);
}
return ( return (
<ProtectedRoute requiredRight={[RIGHTS.ADMIN, RIGHTS.TEACHER]}> <ProtectedRoute requiredRight={[RIGHTS.ADMIN, RIGHTS.TEACHER]}>
{/* Sidebar */} {/* Sidebar */}
@ -123,7 +132,7 @@ export default function Layout({ children }) {
<Sidebar <Sidebar
establishments={establishments} establishments={establishments}
currentPage={currentPage} currentPage={currentPage}
items={Object.values(sidebarItems)} items={sidebarItemsToDisplay}
onCloseMobile={toggleSidebar} onCloseMobile={toggleSidebar}
/> />
</div> </div>