nice-ui
Version:
React design system, components, and utilities
29 lines (28 loc) • 1.47 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const Img_1 = require("../block/Img");
const MarkdownBlock_1 = require("../util/MarkdownBlock");
const isFirstLevelBlockElement_1 = require("../util/isFirstLevelBlockElement");
const MarkdownFullWidthBlock_1 = require("../util/MarkdownFullWidthBlock");
const renderImage = (renderers, flat, idx, props) => {
const node = flat.nodes[idx];
const parent = flat.nodes[node.parent];
let { url, title } = node;
if (node.type === 'imageReference') {
const definition = flat.nodes[flat.definitions[node.identifier]];
if (definition) {
url = definition.url;
title = definition.title;
}
}
const isOnlyParagraphNode = parent.type === 'paragraph' && parent.children.length === 1;
if (isOnlyParagraphNode) {
const element = (React.createElement(MarkdownBlock_1.default, { idx: idx },
React.createElement(Img_1.default, { src: url, title: title, alt: node.alt || title })));
const doCenterAsTopLevelBlock = props.isFullWidth && (0, isFirstLevelBlockElement_1.default)(flat.nodes[idx], flat);
return doCenterAsTopLevelBlock ? React.createElement(MarkdownFullWidthBlock_1.default, null, element) : element;
}
return React.createElement("img", { src: url, title: title, alt: node.alt || title, style: { maxWidth: '100%' } });
};
exports.default = renderImage;