/
header.tsx
29 lines (28 loc) · 1.33 KB
/
header.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { hasTypeParameters, join, renderFlags } from "../../lib";
import { JSX } from "../../../../utils";
import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
import type { PageEvent } from "../../../events";
import { DeclarationReflection, Reflection, ReflectionKind } from "../../../../models";
export const header = (context: DefaultThemeRenderContext, props: PageEvent<Reflection>) => {
const HeadingLevel = props.model.isProject() ? "h2" : "h1";
return (
<div class="tsd-page-title">
{!!props.model.parent && <ul class="tsd-breadcrumb">{context.breadcrumb(props.model)}</ul>}
<HeadingLevel>
{props.model.kind !== ReflectionKind.Project && `${props.model.kindString ?? ""} `}
{props.model.name}
{props.model instanceof DeclarationReflection &&
props.model.version !== undefined &&
` - v${props.model.version}`}
{hasTypeParameters(props.model) && (
<>
{"<"}
{join(", ", props.model.typeParameters, (item) => item.name)}
{">"}
</>
)}
{renderFlags(props.model.flags, props.model.comment)}
</HeadingLevel>
</div>
);
};