108 أسطر
2.4 KiB
TypeScript
108 أسطر
2.4 KiB
TypeScript
import {
|
|
Bell,
|
|
ChartColumn,
|
|
Flag,
|
|
LayoutDashboard,
|
|
MessageSquareMore,
|
|
PackageSearch,
|
|
Settings,
|
|
ShieldCheck,
|
|
ShoppingBag,
|
|
SquareKanban,
|
|
Users,
|
|
type LucideIcon,
|
|
} from "lucide-react";
|
|
|
|
import type { PermissionMatchMode } from "@/lib/permissions";
|
|
import { SUPERADMIN_PERMISSIONS } from "@/lib/permissions";
|
|
|
|
export type DashboardNavItem = {
|
|
href: string;
|
|
label: string;
|
|
icon: LucideIcon;
|
|
permissionMode?: PermissionMatchMode;
|
|
requiredPermissions: readonly string[];
|
|
};
|
|
|
|
export const dashboardNav = [
|
|
{
|
|
href: "/dashboard",
|
|
label: "Dashboard",
|
|
icon: LayoutDashboard,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.OVERVIEW_READ],
|
|
},
|
|
{
|
|
href: "/users",
|
|
label: "Users",
|
|
icon: Users,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.USERS_READ],
|
|
},
|
|
{
|
|
href: "/analytics",
|
|
label: "Analytics",
|
|
icon: ChartColumn,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.ANALYTICS_READ],
|
|
},
|
|
{
|
|
href: "/content",
|
|
label: "Content",
|
|
icon: SquareKanban,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.CONTENT_MODERATE],
|
|
},
|
|
{
|
|
href: "/reports",
|
|
label: "Reports",
|
|
icon: Flag,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.CONTENT_MODERATE],
|
|
},
|
|
{
|
|
href: "/marketplace",
|
|
label: "Marketplace",
|
|
icon: ShoppingBag,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.MARKETPLACE_MANAGE],
|
|
},
|
|
{
|
|
href: "/notifications",
|
|
label: "Notifications",
|
|
icon: Bell,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.NOTIFICATIONS_READ],
|
|
},
|
|
{
|
|
href: "/messages",
|
|
label: "Engagement",
|
|
icon: MessageSquareMore,
|
|
permissionMode: "any",
|
|
requiredPermissions: [
|
|
SUPERADMIN_PERMISSIONS.NOTIFICATIONS_READ,
|
|
SUPERADMIN_PERMISSIONS.CONTENT_MODERATE,
|
|
],
|
|
},
|
|
{
|
|
href: "/orders",
|
|
label: "Operations",
|
|
icon: PackageSearch,
|
|
permissionMode: "any",
|
|
requiredPermissions: [
|
|
SUPERADMIN_PERMISSIONS.CASES_MANAGE,
|
|
SUPERADMIN_PERMISSIONS.OPS_READ,
|
|
],
|
|
},
|
|
{
|
|
href: "/security",
|
|
label: "Security",
|
|
icon: ShieldCheck,
|
|
permissionMode: "any",
|
|
requiredPermissions: [
|
|
SUPERADMIN_PERMISSIONS.SESSIONS_MANAGE,
|
|
SUPERADMIN_PERMISSIONS.AUDIT_READ,
|
|
SUPERADMIN_PERMISSIONS.OPS_READ,
|
|
],
|
|
},
|
|
{
|
|
href: "/settings",
|
|
label: "Settings",
|
|
icon: Settings,
|
|
requiredPermissions: [SUPERADMIN_PERMISSIONS.SETTINGS_READ],
|
|
},
|
|
] satisfies readonly DashboardNavItem[];
|