mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 17:43:30 +01:00
feat(api-extractor): support multiple entrypoints (#10829)
* feat(api-extractor): support multiple entrypoints * chore: initial support in generateSplitDocumentation * chore: bring in line with upstream * refactor: multiple entrypoints in scripts * fix: split docs * feat: website * fix: docs failing on next * fix: don't include dtypes for now * refactor: don't fetch entrypoint if there is none --------- Co-authored-by: iCrawl <buechler.noel@outlook.com>
This commit is contained in:
43
apps/website/src/components/EntrypointSelect.tsx
Normal file
43
apps/website/src/components/EntrypointSelect.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
'use client';
|
||||
|
||||
import { useParams, useRouter } from 'next/navigation';
|
||||
import { use } from 'react';
|
||||
import { parseDocsPathParams } from '@/util/parseDocsPathParams';
|
||||
import { Select, SelectList, SelectOption, SelectTrigger } from './ui/Select';
|
||||
|
||||
export function EntryPointSelect({
|
||||
entryPointsPromise,
|
||||
}: {
|
||||
readonly entryPointsPromise: Promise<{ readonly entryPoint: string }[]>;
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const params = useParams();
|
||||
const entryPoints = use(entryPointsPromise);
|
||||
|
||||
const { entryPoints: parsedEntrypoints } = parseDocsPathParams(params.item as string[] | undefined);
|
||||
|
||||
return (
|
||||
<Select
|
||||
aria-label="Select an entrypoint"
|
||||
defaultSelectedKey={parsedEntrypoints.length ? parsedEntrypoints.join('/') : 'global'}
|
||||
>
|
||||
<SelectTrigger className="bg-[#f3f3f4] dark:bg-[#121214]" />
|
||||
<SelectList classNames={{ popover: 'bg-[#f3f3f4] dark:bg-[#28282d]' }} items={entryPoints}>
|
||||
{(item) => (
|
||||
<SelectOption
|
||||
className="dark:pressed:bg-[#313135] bg-[#f3f3f4] dark:bg-[#28282d] dark:hover:bg-[#313135]"
|
||||
href={`/docs/packages/${params.packageName}/${params.version}/${item.entryPoint}`}
|
||||
id={item.entryPoint || 'global'}
|
||||
key={item.entryPoint || 'global'}
|
||||
onHoverStart={() =>
|
||||
router.prefetch(`/docs/packages/${params.packageName}/${params.version}/${item.entryPoint}`)
|
||||
}
|
||||
textValue={item.entryPoint || 'global'}
|
||||
>
|
||||
{item.entryPoint || 'global'}
|
||||
</SelectOption>
|
||||
)}
|
||||
</SelectList>
|
||||
</Select>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user