update: adjustment of sidebar menu items displayed according to each role
This commit is contained in:
parent
e19d3d0de3
commit
50f5c042c3
|
|
@ -5,6 +5,7 @@ import { useState, useEffect } from "react";
|
||||||
import { useLocation } from "@tanstack/react-router";
|
import { useLocation } from "@tanstack/react-router";
|
||||||
import { ScrollArea } from "@/shadcn/components/ui/scroll-area";
|
import { ScrollArea } from "@/shadcn/components/ui/scroll-area";
|
||||||
import AppHeader from "./AppHeader";
|
import AppHeader from "./AppHeader";
|
||||||
|
import useAuth from "@/hooks/useAuth";
|
||||||
|
|
||||||
// import MenuItem from "./SidebarMenuItem";
|
// import MenuItem from "./SidebarMenuItem";
|
||||||
// import { useAuth } from "@/modules/auth/contexts/AuthContext";
|
// import { useAuth } from "@/modules/auth/contexts/AuthContext";
|
||||||
|
|
@ -16,7 +17,8 @@ import AppHeader from "./AppHeader";
|
||||||
* @returns A React element representing the application's navigation bar.
|
* @returns A React element representing the application's navigation bar.
|
||||||
*/
|
*/
|
||||||
export default function AppNavbar() {
|
export default function AppNavbar() {
|
||||||
// const {user} = useAuth();
|
const { user } = useAuth();
|
||||||
|
// const userRole = JSON.parse(localStorage.getItem('userRole') || '{}');
|
||||||
|
|
||||||
const { pathname } = useLocation();
|
const { pathname } = useLocation();
|
||||||
const pathsThatCloseSidebar = ["/assessmentResult", "/assessment"];
|
const pathsThatCloseSidebar = ["/assessmentResult", "/assessment"];
|
||||||
|
|
@ -66,6 +68,22 @@ export default function AppNavbar() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Filter sidebar menu items according to user role
|
||||||
|
const filteredData = data?.filter(menu => {
|
||||||
|
if (user?.role === "super-admin") {
|
||||||
|
return [
|
||||||
|
"/users",
|
||||||
|
"/aspect",
|
||||||
|
"/questions",
|
||||||
|
"/assessmentRequestManagements",
|
||||||
|
"/assessmentResultsManagement",
|
||||||
|
].includes(menu.link as string);
|
||||||
|
} else if (user?.role === "user") {
|
||||||
|
return ["/assessmentRequest"].includes(menu.link as string);
|
||||||
|
}
|
||||||
|
return false; // If role is not recognized, show nothing
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -79,7 +97,7 @@ export default function AppNavbar() {
|
||||||
${isSidebarOpen ? 'translate-x-0' : '-translate-x-full'}`}
|
${isSidebarOpen ? 'translate-x-0' : '-translate-x-full'}`}
|
||||||
>
|
>
|
||||||
<ScrollArea className="flex flex-1 h-full">
|
<ScrollArea className="flex flex-1 h-full">
|
||||||
{data?.map((menu, i) => (
|
{filteredData?.map((menu, i) => (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
key={i}
|
key={i}
|
||||||
menu={menu}
|
menu={menu}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user