import { css } from '@emotion/react'; 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, H4Code } from '~/components/plugins/Headings'; import { MethodDefinitionData, MethodSignatureData, PropData, } from '~/components/plugins/api/APIDataTypes'; import { CommentTextBlock, getPlatformTags, listParams, mdComponents, renderParam, resolveTypeName, } from '~/components/plugins/api/APISectionUtils'; export type APISectionMethodsProps = { data: (MethodDefinitionData | PropData)[]; apiName?: string; header?: string; }; const STYLES_NOT_EXPOSED_HEADER = css({ marginTop: 20, marginBottom: 10, display: 'inline-block' }); export const renderMethod = ( { signatures = [] }: MethodDefinitionData | PropData, index?: number, dataLength?: number, apiName?: string, header?: string, exposeInSidebar: boolean = true ): JSX.Element[] => { const HeaderComponent = exposeInSidebar ? H3Code : H4Code; return signatures.map(({ name, parameters, comment, type }: MethodSignatureData) => (