50 lines
903 B
TypeScript
50 lines
903 B
TypeScript
import { User, UserRole } from "@prisma/client";
|
|
import type { Icon } from "lucide-react";
|
|
|
|
import { Icons } from "@/components/shared/icons";
|
|
|
|
export type SiteConfig = {
|
|
name: string;
|
|
description: string;
|
|
url: string;
|
|
ogImage: string;
|
|
mailSupport: string;
|
|
links: {
|
|
twitter: string;
|
|
github: string;
|
|
};
|
|
freeQuota: {
|
|
record: number;
|
|
url: number;
|
|
};
|
|
openSignup: boolean;
|
|
};
|
|
|
|
export type NavItem = {
|
|
title: string;
|
|
href: string;
|
|
badge?: number;
|
|
disabled?: boolean;
|
|
external?: boolean;
|
|
authorizeOnly?: UserRole;
|
|
icon?: keyof typeof Icons;
|
|
};
|
|
|
|
export type MainNavItem = NavItem;
|
|
|
|
export type MarketingConfig = {
|
|
mainNav: MainNavItem[];
|
|
};
|
|
|
|
export type SidebarNavItem = {
|
|
title: string;
|
|
items: NavItem[];
|
|
authorizeOnly?: UserRole;
|
|
icon?: keyof typeof Icons;
|
|
};
|
|
|
|
export type DocsConfig = {
|
|
mainNav: MainNavItem[];
|
|
sidebarNav: SidebarNavItem[];
|
|
};
|