nice-ui
Version:
React design system, components, and utilities
32 lines (31 loc) • 1.46 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const isFirstLevelBlockElement_1 = require("../util/isFirstLevelBlockElement");
const Url_1 = require("../block/Url");
const Paragraph_1 = require("../block/Paragraph");
const renderImage_1 = require("./renderImage");
const renderParagraph = (renderers, ast, idx, props, state) => {
const node = ast.nodes[idx];
if (!node.children)
return null;
const isSingleChild = node.children.length === 1;
if (isSingleChild) {
const child = ast.nodes[node.children[0]];
const isImage = child.type === 'image' || child.type === 'imageReference';
if (isImage) {
return (0, renderImage_1.default)(renderers, ast, child.idx, props, state);
}
}
const isFirstLevelBlock = (0, isFirstLevelBlockElement_1.default)(node, ast);
const renderParagraph = () => {
return React.createElement(Paragraph_1.default, { idx: idx }, renderers.children(renderers, ast, idx, props, state));
};
const isSingleInlineLinkParagraph = isSingleChild && ast.nodes[node.children[0]].type === 'inlineLink';
if (isFirstLevelBlock && isSingleInlineLinkParagraph) {
const url = ast.nodes[node.children[0]].value;
return React.createElement(Url_1.default, { idx: idx, url: url, renderVoid: renderParagraph });
}
return renderParagraph();
};
exports.default = renderParagraph;