@yuntijs/ui
Version:
☁️ Yunti UI - an open-source UI component library for building Cloud Native web apps
29 lines • 1.15 kB
JavaScript
import { memo } from 'react';
import { escapeHtml, useStaticHighlight } from "../../hooks/useHighlight";
import { useStyles } from "./style";
import { jsx as _jsx } from "react/jsx-runtime";
export var StaticRenderer = /*#__PURE__*/memo(function (_ref) {
var _children$trim;
var children = _ref.children,
language = _ref.language,
enableTransformer = _ref.enableTransformer,
theme = _ref.theme,
className = _ref.className,
style = _ref.style;
var _useStyles = useStyles({
theme: theme
}),
styles = _useStyles.styles,
cx = _useStyles.cx;
var safeChildren = (_children$trim = children === null || children === void 0 ? void 0 : children.trim()) !== null && _children$trim !== void 0 ? _children$trim : '';
var data = useStaticHighlight(safeChildren, language, enableTransformer, theme);
var hasData = typeof data === 'string' && data.length > 0;
return /*#__PURE__*/_jsx("div", {
className: cx(styles.shiki, className),
dangerouslySetInnerHTML: {
__html: hasData ? data : "<pre><code>".concat(escapeHtml(safeChildren), "</code></pre>")
},
dir: "ltr",
style: style
});
});