95 lines
2.0 KiB
TypeScript
95 lines
2.0 KiB
TypeScript
import { Link } from "@tanstack/react-router";
|
|
import {
|
|
Building2,
|
|
Forklift,
|
|
Hourglass,
|
|
ReceiptText,
|
|
Wrench,
|
|
} from "lucide-react";
|
|
import { userAccess } from "@/lib/authClient";
|
|
import {
|
|
SidebarGroup,
|
|
SidebarGroupContent,
|
|
SidebarGroupLabel,
|
|
SidebarMenu,
|
|
SidebarMenuButton,
|
|
SidebarMenuItem,
|
|
} from "../ui/sidebar";
|
|
import type { Items } from "./SideBarNav";
|
|
|
|
export default function ForkliftSideBar() {
|
|
const items: Items[] = [
|
|
{
|
|
title: "Lease Companies",
|
|
url: "/lst/app/forklifts/companies",
|
|
icon: Building2,
|
|
role: ["systemAdmin", "admin"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
{
|
|
title: "Leases",
|
|
url: "/lst/app/forklifts/leases",
|
|
icon: ReceiptText,
|
|
role: ["systemAdmin", "admin"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
{
|
|
title: "Invoices",
|
|
url: "/lst/app/forklifts/invoices",
|
|
icon: ReceiptText,
|
|
role: ["systemAdmin", "admin", "manager"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
{
|
|
title: "Repairs",
|
|
url: "/lst/app/admin/settings",
|
|
icon: Wrench,
|
|
role: ["systemAdmin", "admin", "manager"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
{
|
|
title: "Hours",
|
|
url: "/lst/app/admin/settings",
|
|
icon: Hourglass,
|
|
role: ["systemAdmin", "admin", "manager", "supervisor"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
{
|
|
title: "Forklifts",
|
|
url: "/lst/app/forklifts/forklifts",
|
|
icon: Forklift,
|
|
role: ["systemAdmin", "admin", "manager", "supervisor"],
|
|
module: "forklifts",
|
|
active: true,
|
|
},
|
|
];
|
|
return (
|
|
<SidebarGroup>
|
|
<SidebarGroupLabel>Forklifts</SidebarGroupLabel>
|
|
<SidebarGroupContent>
|
|
<SidebarMenu>
|
|
{items.map((item) => (
|
|
<SidebarMenuItem key={item.title}>
|
|
<>
|
|
{userAccess(item.module, item.role) && item.active && (
|
|
<SidebarMenuButton asChild>
|
|
<Link to={item.url}>
|
|
<item.icon />
|
|
<span>{item.title}</span>
|
|
</Link>
|
|
</SidebarMenuButton>
|
|
)}
|
|
</>
|
|
</SidebarMenuItem>
|
|
))}
|
|
</SidebarMenu>
|
|
</SidebarGroupContent>
|
|
</SidebarGroup>
|
|
);
|
|
}
|