nice-ui
Version:
React design system, components, and utilities
25 lines (24 loc) • 1 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const useAsync_1 = require("react-use/lib/useAsync");
const loadMathjax_1 = require("./loadMathjax");
const { useRef, useEffect, memo } = React;
const MathjaxDisplayEquation = memo(({ source }) => {
const ref = useRef(null);
const { value: MathJax } = (0, useAsync_1.default)(loadMathjax_1.default);
useEffect(() => {
if (!MathJax || !MathJax.tex2svg)
return;
if (!ref.current)
return;
const div = ref.current;
const container = MathJax.tex2svg(source, { display: true });
const svg = container.children[0];
while (div.firstChild)
div.removeChild(div.firstChild);
ref.current.appendChild(svg);
}, [MathJax, (MathJax || {}).tex2svg, ref.current, source]);
return React.createElement("div", { ref: ref, style: { textAlign: 'center' } });
});
exports.default = MathjaxDisplayEquation;
;