99 lines
2.0 KiB
TypeScript
99 lines
2.0 KiB
TypeScript
import { GlobeSearch } from "@/assets/icons";
|
|
import { z } from "zod";
|
|
import * as Icons from "../icons";
|
|
|
|
const navSubItemSchema: z.ZodType<any> = z.lazy(() =>
|
|
z.object({
|
|
title: z.string(),
|
|
url: z.string(),
|
|
icon: z.any(),
|
|
items: z.array(navSubItemSchema),
|
|
}),
|
|
);
|
|
|
|
const navItemSchema = z.object({
|
|
label: z.string(),
|
|
items: z.array(navSubItemSchema),
|
|
});
|
|
|
|
const navDataSchema = z.array(navItemSchema);
|
|
export type NavSubItem = z.infer<typeof navSubItemSchema>;
|
|
export type NavData = z.infer<typeof navDataSchema>;
|
|
|
|
export const NAV_DATA: NavData = [
|
|
{
|
|
label: "",
|
|
items: [
|
|
{
|
|
title: "Dashboard",
|
|
url: "/",
|
|
icon: Icons.HomeIcon,
|
|
items: [],
|
|
},
|
|
{
|
|
title: "Admins",
|
|
url: "/admins",
|
|
icon: Icons.User,
|
|
items: [],
|
|
},
|
|
{
|
|
title: "Manage Companies",
|
|
url: "",
|
|
icon: Icons.Building,
|
|
items: [
|
|
{
|
|
icon: Icons.Building,
|
|
url: "/companies",
|
|
title: "Companies",
|
|
items: [],
|
|
},
|
|
{
|
|
icon: Icons.Building,
|
|
url: "/company-categories",
|
|
title: "Company Categories",
|
|
items: [],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Customers",
|
|
url: "/customers",
|
|
icon: Icons.User,
|
|
items: [],
|
|
},
|
|
{
|
|
title: "Tenders",
|
|
url: "/tenders",
|
|
icon: Icons.Table,
|
|
items: [],
|
|
},
|
|
{
|
|
title: "Notifications",
|
|
url: "/notification-history",
|
|
icon: Icons.NotificationIcon,
|
|
items: [],
|
|
},
|
|
{
|
|
title: "Contact Us",
|
|
url: "/contact-us",
|
|
icon: Icons.CallIncome,
|
|
items: [],
|
|
visible: true,
|
|
},
|
|
{
|
|
title: "Marketing",
|
|
url: "/marketing",
|
|
icon: GlobeSearch,
|
|
items: [],
|
|
visible:false
|
|
},
|
|
{
|
|
title: "Inquiries",
|
|
url: "/inquiries",
|
|
icon: Icons.BriefcaseTimer,
|
|
items: [],
|
|
},
|
|
],
|
|
},
|
|
];
|