import React from 'react';
import type { JSONOutput } from 'typedoc';
import { TokenPunctuation, TokenAttrName, TokenLiteral } from './tokens';
import Indent from './Indent';
import renderType from './renderType';
import Params from './Params';
export default function renderSignatureParams(
signature: JSONOutput.SignatureReflection,
shouldBreak: boolean,
params: Params
) {
return signature.parameters?.reduce((prev: any, curr) => {
const paramName = curr.name === '__namedParameters' ? 'props' : curr.name;
const namedToken = (
{curr.name === '__namedParameters' ? 'props' : curr.name}
);
const isOptional = curr.flags.isOptional;
return (
<>
{prev}
{prev && ,}
{prev && shouldBreak ?
: null}
{shouldBreak && }
{prev && (shouldBreak ? null : )}
{params.resolveMembersLinks ? (
{namedToken}
) : (
namedToken
)}
{isOptional && ?}
:
{renderType(curr.type, params)}
{typeof curr.defaultValue === 'string' && (
<>
=
{curr.defaultValue}
>
)}
>
);
}, null);
}