feat(website): add implements for class (#8388)

Co-authored-by: Noel <buechler.noel@outlook.com>
This commit is contained in:
Parbez
2022-07-29 14:49:32 +05:30
committed by GitHub
parent d03cf6176c
commit 52c2818b25
3 changed files with 28 additions and 3 deletions

View File

@@ -18,10 +18,20 @@ export interface DocContainerProps {
summary?: ReturnType<DocItem['toJSON']>['summary']; summary?: ReturnType<DocItem['toJSON']>['summary'];
children?: ReactNode; children?: ReactNode;
extendsTokens?: TokenDocumentation[] | null; extendsTokens?: TokenDocumentation[] | null;
implementsTokens?: TokenDocumentation[][];
typeParams?: TypeParameterData[]; typeParams?: TypeParameterData[];
} }
export function DocContainer({ name, kind, excerpt, summary, typeParams, children, extendsTokens }: DocContainerProps) { export function DocContainer({
name,
kind,
excerpt,
summary,
typeParams,
children,
extendsTokens,
implementsTokens,
}: DocContainerProps) {
return ( return (
<div className="flex flex-col min-h-full max-h-full grow"> <div className="flex flex-col min-h-full max-h-full grow">
<div className="border-0.5 border-gray px-10 py-2"> <div className="border-0.5 border-gray px-10 py-2">
@@ -43,13 +53,27 @@ export function DocContainer({ name, kind, excerpt, summary, typeParams, childre
</SyntaxHighlighter> </SyntaxHighlighter>
{extendsTokens?.length ? ( {extendsTokens?.length ? (
<div className="flex flex-row items-center dark:text-white gap-3"> <div className="flex flex-row items-center dark:text-white gap-3">
<h3 className="m-0">Extends:</h3> <h3 className="m-0">Extends</h3>
<h3 className="m-0">{CodeListingSeparatorType.Type}</h3> <h3 className="m-0">{CodeListingSeparatorType.Type}</h3>
<p className="font-mono break-all"> <p className="font-mono break-all">
<HyperlinkedText tokens={extendsTokens} /> <HyperlinkedText tokens={extendsTokens} />
</p> </p>
</div> </div>
) : null} ) : null}
{implementsTokens?.length ? (
<div className="flex flex-row items-center dark:text-white gap-3">
<h3 className="m-0">Implements</h3>
<h3 className="m-0">{CodeListingSeparatorType.Type}</h3>
<p className="font-mono break-all">
{implementsTokens.map((token, i) => (
<>
<HyperlinkedText key={i} tokens={token} />
{i < implementsTokens.length - 1 ? ', ' : ''}
</>
))}
</p>
</div>
) : null}
<div className="space-y-10"> <div className="space-y-10">
<Section iconElement={<VscListSelection />} title="Summary" className="dark:text-white"> <Section iconElement={<VscListSelection />} title="Summary" className="dark:text-white">
{summary ? ( {summary ? (

View File

@@ -19,7 +19,7 @@ export function HyperlinkedText({ tokens }: HyperlinkedTextProps) {
if (token.path) { if (token.path) {
return ( return (
<Link key={token.text} href={token.path}> <Link key={token.text} href={token.path}>
<a className="text-blue-500 dark:text-blue-300">{token.text}</a> <a className="text-blue-500 dark:text-blue-300 no-underline">{token.text}</a>
</Link> </Link>
); );
} }

View File

@@ -15,6 +15,7 @@ export function Class({ data }: ClassProps) {
summary={data.summary} summary={data.summary}
typeParams={data.typeParameterData} typeParams={data.typeParameterData}
extendsTokens={data.extendsTokens} extendsTokens={data.extendsTokens}
implementsTokens={data.implementsTokens}
> >
<PropertiesSection data={data.properties} /> <PropertiesSection data={data.properties} />
<MethodsSection data={data.methods} /> <MethodsSection data={data.methods} />