nice-ui
Version:
React design system, components, and utilities
31 lines (30 loc) • 1.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const block_1 = require("../block");
const Code_1 = require("../block/Code");
const lazy_1 = require("../block/CustomComponent/lazy");
const renderCode = (renderers, flat, idx) => {
const node = flat.nodes[idx];
const { lang, value } = node;
if (lang && lang[0] === '<' && lang[lang.length - 1] === '>') {
let data = {};
if (value) {
try {
data = JSON.parse(value);
}
catch (e) {
console.error('Failed to parse JSON in custom block:', e);
}
}
return React.createElement(lazy_1.default, { idx: idx, name: lang.slice(1, -1), meta: node.meta ?? '', data: data });
}
const Comp = block_1.blocksByLang[lang || ''];
const renderDefault = () => {
return React.createElement(Code_1.default, { idx: idx, source: value, renderError: () => null });
};
if (Comp)
return React.createElement(Comp, { idx: idx, source: value, renderError: renderDefault });
return renderDefault();
};
exports.default = renderCode;
;