import React from 'react'; import ReactMarkdown from 'react-markdown'; import { InlineCode } from '~/components/base/code'; import { LI, UL } from '~/components/base/list'; import { H2, H3Code, H4 } from '~/components/plugins/Headings'; import { MethodDefinitionData, MethodSignatureData } from '~/components/plugins/api/APIDataTypes'; import { CommentTextBlock, mdRenderers, renderParam, resolveTypeName, } from '~/components/plugins/api/APISectionUtils'; export type APISectionMethodsProps = { data: MethodDefinitionData[]; apiName?: string; header?: string; }; const renderMethod = ( { signatures }: MethodDefinitionData, index: number, dataLength?: number, apiName?: string ): JSX.Element[] => signatures.map(({ name, parameters, comment, type }: MethodSignatureData) => (
{apiName ? `${apiName}.` : ''} {name}({parameters?.map(param => param.name).join(', ')}) {parameters ?

Arguments

: null} {parameters ? : null} {resolveTypeName(type) !== 'undefined' ? (

Returns

  • {resolveTypeName(type)}
{comment?.returns ? ( {comment.returns} ) : null}
) : null} {index + 1 !== dataLength ?
: null}
)); const APISectionMethods: React.FC = ({ data, apiName, header = 'Methods', }) => data?.length ? ( <>

{header}

{data.map((method, index) => renderMethod(method, index, data.length, apiName))} ) : null; export default APISectionMethods;