@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
36 lines (35 loc) • 1.19 kB
JavaScript
'use client';
import { memo } from 'react';
import { useHighlight } from "../../hooks/useHighlight";
import { jsx as _jsx } from "react/jsx-runtime";
/**
* Static renderer for syntax highlighting without animation
* Uses useHighlight hook to generate HTML and renders it directly
*/
var StaticRenderer = /*#__PURE__*/memo(function (_ref) {
var children = _ref.children,
className = _ref.className,
enableTransformer = _ref.enableTransformer,
fallbackClassName = _ref.fallbackClassName,
language = _ref.language,
style = _ref.style,
theme = _ref.theme;
var _useHighlight = useHighlight(children, {
enableTransformer: enableTransformer,
language: language,
theme: theme
}),
data = _useHighlight.data;
var hasData = typeof data === 'string' && data.length > 0;
var containerClassName = hasData ? className : fallbackClassName;
return /*#__PURE__*/_jsx("div", {
className: containerClassName,
dangerouslySetInnerHTML: {
__html: data || "<pre><code>".concat(children, "</code></pre>")
},
dir: "ltr",
style: style
});
});
StaticRenderer.displayName = 'StaticRenderer';
export default StaticRenderer;