import { CustomizationContentLink, CustomizationHeaderLink, CustomizationSettings, CustomizationHeaderPreset, } from '@gitbook/api'; import { ContentRefContext, resolveContentRef } from '@/lib/references'; import { tcls } from '@/lib/tailwind'; import { Dropdown, DropdownButtonProps, DropdownChevron, DropdownMenu, DropdownMenuItem, } from './Dropdown'; import { Link } from '../primitives'; export async function HeaderLink(props: { context: ContentRefContext; link: CustomizationHeaderLink; customization: CustomizationSettings; }) { const { context, link, customization } = props; const isCustomizationCustom = customization.header.preset === CustomizationHeaderPreset.Custom; const isCustomizationDefault = customization.header.preset === CustomizationHeaderPreset.Default; const target = await resolveContentRef(link.to, context); if (!target) { return null; } const renderLink = (linkProps: DropdownButtonProps) => ( {link.title} {link.links && link.links.length > 0 ? : null} ); if (link.links && link.links.length > 0) { return ( {link.links.map((subLink, index) => ( ))} ); } return renderLink({}); } async function SubHeaderLink(props: { context: ContentRefContext; link: CustomizationContentLink; }) { const { context, link } = props; const target = await resolveContentRef(link.to, context); if (!target) { return null; } return {link.title}; }