Skip to content

Commit 456a6f4

Browse files
fix: header link on packages with entrypoints (#11285)
* fix: header link on packages with entrypoints * types: add types --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent 5130d6f commit 456a6f4

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

apps/website/src/components/EntrypointSelect.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
import { Loader2Icon } from 'lucide-react';
44
import { useParams, useRouter } from 'next/navigation';
55
import { Select, SelectList, SelectOption, SelectTrigger } from '@/components/ui/Select';
6+
import type { EntryPoint } from '@/util/fetchEntryPoints';
67
import { parseDocsPathParams } from '@/util/parseDocsPathParams';
78

89
export function EntryPointSelect({
910
entryPoints,
1011
isLoading,
1112
}: {
12-
readonly entryPoints: { readonly entryPoint: string }[];
13+
readonly entryPoints: EntryPoint[];
1314
readonly isLoading: boolean;
1415
}) {
1516
const router = useRouter();

apps/website/src/components/Sidebar.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { VersionSelect } from '@/components/VersionSelect';
1212
import { SidebarHeader as BasSidebarHeader } from '@/components/ui/Sidebar';
1313
import { buttonStyles } from '@/styles/ui/button';
1414
import { PACKAGES_WITH_ENTRY_POINTS } from '@/util/constants';
15+
import type { EntryPoint } from '@/util/fetchEntryPoints';
1516

1617
export function SidebarHeader() {
1718
const params = useParams<{
@@ -21,7 +22,7 @@ export function SidebarHeader() {
2122

2223
const hasEntryPoints = PACKAGES_WITH_ENTRY_POINTS.includes(params.packageName);
2324

24-
const { data: entryPoints, isLoading: isLoadingEntryPoints } = useQuery({
25+
const { data: entryPoints, isLoading: isLoadingEntryPoints } = useQuery<EntryPoint[]>({
2526
queryKey: ['entryPoints', params.packageName, params.version],
2627
queryFn: async () => {
2728
const response = await fetch(`/api/docs/entrypoints?packageName=${params.packageName}&version=${params.version}`);
@@ -43,7 +44,10 @@ export function SidebarHeader() {
4344
<BasSidebarHeader className="bg-[#f3f3f4] p-4 dark:bg-[#121214]">
4445
<div className="flex flex-col gap-2">
4546
<div className="flex place-content-between place-items-center p-1">
46-
<Link className="text-xl font-bold" href={`/docs/packages/${params.packageName}/${params.version}`}>
47+
<Link
48+
className="text-xl font-bold"
49+
href={`/docs/packages/${params.packageName}/${params.version}${hasEntryPoints ? `/${entryPoints?.[0]?.entryPoint ?? ''}` : ''}`}
50+
>
4751
{params.packageName}
4852
</Link>
4953
<div className="flex place-items-center gap-2">

apps/website/src/util/fetchEntryPoints.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { join } from 'node:path';
33
import { PACKAGES_WITH_ENTRY_POINTS } from './constants';
44
import { ENV } from './env';
55

6-
export async function fetchEntryPoints(packageName: string, version: string) {
6+
export async function fetchEntryPoints(packageName: string, version: string): Promise<EntryPoint[] | null> {
77
const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName);
88

99
if (!hasEntryPoint) {
@@ -37,3 +37,7 @@ export async function fetchEntryPoints(packageName: string, version: string) {
3737

3838
return fileContent.json();
3939
}
40+
41+
export interface EntryPoint {
42+
readonly entryPoint: string;
43+
}

0 commit comments

Comments
 (0)