import { ChevronRight } from "lucide-react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { Sidebar, SidebarContent, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarRail, } from "@/components/ui/sidebar"; import Link from "next/link"; const data = { navMain: [ { title: "MENU", url: "#", requiredRoles: ["ADMIN", "USER"], items: [ { title: "Devices", url: "/devices", }, { title: "Payments", url: "/payments", }, ], }, { title: "ADMIN CONTROL", url: "#", requiredRoles: ["ADMIN"], items: [ { title: "Users", url: "/users", }, { title: "User Devices", url: "/user-devices", }, { title: "User Payments", url: "/user-payments", }, ], }, ], }; export function AppSidebar({ role, ...props }: React.ComponentProps & { role: string }) { return (

Sar Link Portal

{/* We create a collapsible SidebarGroup for each parent. */} {/* {data.navMain.map((item) => ( {item.title}{" "} {item.items.map((item) => ( {item.title} ))} ))} */} {data.navMain .filter( (item) => !item.requiredRoles || item.requiredRoles.includes(role || ""), ) .map((item) => { if (item.requiredRoles?.includes(role)) { return ( {item.title}{" "} {item.items.map((item) => ( {item.title} ))} ); } })}
); }