Skip to content

Commit d352939

Browse files
committed
fix: nested heading in toc
1 parent 6a0bba2 commit d352939

1 file changed

Lines changed: 18 additions & 14 deletions

File tree

core/morph/include/starter_template/src/pages/_components/table-of-contents.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,7 @@ export const TableOfContents: React.FC<TocProps> = ({ toc, className }) => {
2323
<div className={cn("toc text-sm w-full hidden lg:block", className)}>
2424
<div className="grid gird-cols-1 gap-2.5 w-full">
2525
{toc.map((entry) => (
26-
<a
27-
key={entry.id}
28-
className="x-underline text-zinc-400 hover:text-zinc-900 font-normal line-clamp-2"
29-
href={`#${entry.id}`}
30-
>
31-
{entry.value}
32-
</a>
26+
<Heading key={entry.id} entry={entry} />
3327
))}
3428
</div>
3529
</div>
@@ -43,13 +37,7 @@ export const TableOfContents: React.FC<TocProps> = ({ toc, className }) => {
4337
<HoverCardContent className="w-[16rem]">
4438
<div className="grid gird-cols-1 gap-2.5 w-full">
4539
{toc.map((entry) => (
46-
<a
47-
key={entry.id}
48-
className="x-underline text-zinc-400 hover:text-zinc-900 font-normal line-clamp-2"
49-
href={`#${entry.id}`}
50-
>
51-
{entry.value}
52-
</a>
40+
<Heading key={entry.id} entry={entry} />
5341
))}
5442
</div>
5543
</HoverCardContent>
@@ -58,3 +46,19 @@ export const TableOfContents: React.FC<TocProps> = ({ toc, className }) => {
5846
</>
5947
);
6048
};
49+
50+
const Heading = ({ entry }: { entry: Toc[number] }) => {
51+
return (
52+
<>
53+
<a
54+
href={`#${entry.id}`}
55+
className="inline-block x-underline text-zinc-400 hover:text-zinc-900 font-normal line-clamp-2"
56+
>
57+
{entry.value}
58+
</a>
59+
{entry.children?.map((child) => (
60+
<Heading entry={child} />
61+
))}
62+
</>
63+
);
64+
};

0 commit comments

Comments
 (0)