taxonomy/types/index.d.ts
2023-03-03 19:17:05 +04:00

65 lines
1.1 KiB
TypeScript

import { User } from "@prisma/client"
import type { Icon } from "lucide-react"
import { Icons } from "@/components/icons"
export type NavItem = {
title: string
href: string
disabled?: boolean
}
export type MainNavItem = NavItem
export type SidebarNavItem = {
title: string
disabled?: boolean
external?: boolean
icon?: keyof typeof Icons
} & (
| {
href: string
items?: never
}
| {
href?: string
items: NavLink[]
}
)
export type SiteConfig = {
name: string
description: string
url: string
ogImage: string
links: {
twitter: string
github: string
}
}
export type DocsConfig = {
mainNav: MainNavItem[]
sidebarNav: SidebarNavItem[]
}
export type MarketingConfig = {
mainNav: MainNavItem[]
}
export type DashboardConfig = {
mainNav: MainNavItem[]
sidebarNav: SidebarNavItem[]
}
export type SubscriptionPlan = {
name: string
description: string
stripePriceId: string
}
export type UserSubscriptionPlan = SubscriptionPlan &
Pick<User, "stripeCustomerId" | "stripeSubscriptionId"> & {
stripeCurrentPeriodEnd: number
isPro: boolean
}