diff --git a/apps/website/src/components/model/method/MethodDocumentation.tsx b/apps/website/src/components/model/method/MethodDocumentation.tsx index 27497dc06..bfb735d77 100644 --- a/apps/website/src/components/model/method/MethodDocumentation.tsx +++ b/apps/website/src/components/model/method/MethodDocumentation.tsx @@ -1,11 +1,13 @@ -import type { - ApiDeclaredItem, - ApiItemContainerMixin, - ApiMethod, - ApiMethodSignature, +import { + ApiItemKind, + type ApiDeclaredItem, + type ApiItemContainerMixin, + type ApiMethod, + type ApiMethodSignature, } from '@discordjs/api-extractor-model'; +import { ParameterSection } from '~/components/documentation/section/ParametersSection'; +import { TypeParameterSection } from '~/components/documentation/section/TypeParametersSection'; import { InheritanceText } from '../../InheritanceText'; -import { ParameterTable } from '../../ParameterTable'; import { TSDoc } from '../../documentation/tsdoc/TSDoc'; export interface MethodDocumentationProps { @@ -15,15 +17,22 @@ export interface MethodDocumentationProps { export function MethodDocumentation({ method, inheritedFrom }: MethodDocumentationProps) { const parent = method.parent as ApiDeclaredItem; + const firstOverload = method + .getMergedSiblings() + .find((meth): meth is ApiMethod => meth.kind === ApiItemKind.Method && (meth as ApiMethod).overloadIndex === 1) + ?.tsdocComment; - if (!(method.tsdocComment?.summarySection || method.parameters.length > 0)) { + if (!(method.tsdocComment?.summarySection || firstOverload?.summarySection || method.parameters.length > 0)) { return null; } return (
- {method.tsdocComment ? : null} - {method.parameters.length ? : null} + {method.tsdocComment || firstOverload ? ( + + ) : null} + {method.typeParameters.length ? : null} + {method.parameters.length ? : null} {inheritedFrom && parent ? : null}
); diff --git a/apps/website/src/util/model.ts b/apps/website/src/util/model.ts index 4ed914192..1b8d29645 100644 --- a/apps/website/src/util/model.ts +++ b/apps/website/src/util/model.ts @@ -1,10 +1,5 @@ -import type { - ApiDocumentedItem, - ApiEntryPoint, - ApiModel, - ApiParameterListMixin, - Excerpt, -} from '@discordjs/api-extractor-model'; +import type { ApiDocumentedItem, ApiEntryPoint, ApiModel, Excerpt } from '@discordjs/api-extractor-model'; +import { ApiParameterListMixin } from '@discordjs/api-extractor-model'; import type { DocSection } from '@microsoft/tsdoc'; import { resolvePackageName } from './resolvePackageName'; @@ -41,7 +36,14 @@ interface ResolvedParameter { */ export function resolveParameters(item: ApiDocumentedItem & ApiParameterListMixin): ResolvedParameter[] { return item.parameters.map((param, idx) => { - const tsdocAnalog = item.tsdocComment?.params.blocks[idx]; + const tsdocAnalog = + item.tsdocComment?.params.blocks[idx] ?? + item + .getMergedSiblings() + .find( + (paramList): paramList is ApiDocumentedItem & ApiParameterListMixin => + ApiParameterListMixin.isBaseClassOf(paramList) && paramList.overloadIndex === 1, + )?.tsdocComment?.params.blocks[idx]; return { name: param.tsdocParamBlock?.parameterName ?? tsdocAnalog?.parameterName ?? param.name,