@workday/canvas-kit-docs
Version:
Documentation components of Canvas Kit components
37 lines (36 loc) • 2.42 kB
JavaScript
import React from 'react';
import { DescriptionTooltip } from '../DescriptionTooltip';
import { MdxJSToJSX } from '../MDXElements';
import { registerWidget, Value } from '../Value';
import { RenderContext, IndentLevelContext, indent, renderTypeParameters } from '../widgetUtils';
registerWidget('function', ({ value }) => {
const level = React.useContext(IndentLevelContext);
return (React.createElement(RenderContext.Provider, { value: "inline" },
value.name && React.createElement(Value, { value: value.name }),
renderTypeParameters(value.typeParameters),
React.createElement("span", { className: "token punctuation" }, "("),
React.createElement(React.Fragment, null, value.parameters.map((p, index) => (React.createElement(React.Fragment, { key: index },
index !== 0 && React.createElement("span", { className: "token punctuation" }, ", "),
value.parameters.length > 1 && (React.createElement(React.Fragment, null,
React.createElement("br", null),
indent(level + 1))),
value.parameters.length > 1 ? (React.createElement(IndentLevelContext.Provider, { value: level + 1 },
React.createElement(Value, { value: p }))) : (React.createElement(Value, { value: p })),
index === value.parameters.length - 1 && index > 0 && (React.createElement(React.Fragment, null,
React.createElement("br", null),
indent(level))))))),
React.createElement("span", { className: "token operator" }, ")\u00A0=>\u00A0"),
React.createElement(Value, { value: value.returnType })));
});
registerWidget('parameter', ({ value }) => {
return (React.createElement(RenderContext.Provider, { value: "inline" },
value.description ? (React.createElement(DescriptionTooltip, { style: { maxWidth: '50em' }, title: React.createElement(MdxJSToJSX, null, value.description) },
React.createElement("span", { className: "token property", style: {
cursor: 'pointer',
textDecoration: 'underline',
textDecorationStyle: 'dotted',
} }, value.name))) : (React.createElement("span", { className: "token property" }, value.name)),
React.createElement("span", { className: "token punctuation" }, ":"),
"\u00A0",
React.createElement(Value, { value: value.type })));
});