mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-04-03 16:51:26 +00:00
feat: Gestion de la sidebar [N3WTS-8]
This commit is contained in:
@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user