52 lines
963 B
TypeScript
52 lines
963 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;
|
|
feedback: string;
|
|
discord: string;
|
|
oichat: string;
|
|
};
|
|
emailR2Domain: string;
|
|
};
|
|
|
|
export type NavItem = {
|
|
title: string;
|
|
href: string;
|
|
badge?: number;
|
|
disabled?: boolean;
|
|
external?: boolean;
|
|
authorizeOnly?: UserRole;
|
|
icon?: keyof typeof Icons;
|
|
items?: NavItem[];
|
|
};
|
|
|
|
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[];
|
|
};
|
|
|
|
// declare module "globe.gl";
|