@tolokoban/ui
Version:
React components with theme
21 lines • 2.27 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import * as React from "react";
import { Theme } from "../../theme/index.js";
import Styles from "./CodeHighlighter.module.css";
const $ = Theme.classNames;
export function ViewCodeHighlighter({ className, children, grammar, }) {
const [code, setCode] = React.useState([children]);
React.useEffect(() => {
setCode(parseCode(children, grammar));
}, [children, grammar]);
return (_jsx("div", { className: $.join(className, Styles.CodeHighlighter), children: code.map(buildCode) }));
}
function buildCode(code, index) {
if (typeof code === "string")
return code;
return (_jsx("span", { className: code.className, children: code.children.map(buildCode) }, `Code.${index}`));
}
function parseCode(text, _grammar) {
return [text];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUhpZ2hsaWdodGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZpZXcvQ29kZUhpZ2hsaWdodGVyL0NvZGVIaWdobGlnaHRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRTlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUk1QyxPQUFPLE1BQU0sTUFBTSw4QkFBOEIsQ0FBQTtBQUVqRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO0FBbUIxQixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDaEMsU0FBUyxFQUNULFFBQVEsRUFDUixPQUFPLEdBQ2dCO0lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdkIsT0FBTyxDQUNILGNBQUssU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FDbEIsQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLElBQWlCLEVBQUUsS0FBYTtJQUMvQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUV6QyxPQUFPLENBQ0gsZUFBNEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLFlBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUR0QixRQUFRLEtBQUssRUFBRSxDQUVuQixDQUNWLENBQUE7QUFDTCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQ2QsSUFBWSxFQUNaLFFBQXFCO0lBRXJCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNqQixDQUFDIn0=