RocketChat/Rocket.Chat

View on GitHub
packages/gazzodown/src/katex/KatexElement.tsx

Summary

Maintainability
A
40 mins
Test Coverage
import katex from 'katex';
import { ReactElement, useMemo } from 'react';

import 'katex/dist/katex.css';

type KatexElementProps = {
    code: string;
};

const KatexElement = ({ code }: KatexElementProps): ReactElement => {
    const html = useMemo(
        () =>
            katex.renderToString(code, {
                displayMode: false,
                macros: {
                    '\\href': '\\@secondoftwo',
                },
                maxSize: 100,
            }),
        [code],
    );

    return <span dangerouslySetInnerHTML={{ __html: html }} />;
};

export default KatexElement;