fix: dynamically import katex
This commit is contained in:
parent
bdf34bbbbf
commit
6ada79017a
1 changed files with 18 additions and 14 deletions
|
@ -1,5 +1,5 @@
|
||||||
import { Alert } from '@mantine/core';
|
import { Alert } from '@mantine/core';
|
||||||
import katex, { ParseError } from 'katex';
|
import type { ParseError } from 'katex';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
import 'katex/dist/katex.min.css';
|
import 'katex/dist/katex.min.css';
|
||||||
|
@ -19,23 +19,27 @@ export default function KaTeX({ code, ...props }) {
|
||||||
</Alert>
|
</Alert>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
// dynamic
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
try {
|
(async () => {
|
||||||
const html = katex.renderToString(code, {
|
const katex = await import('katex');
|
||||||
displayMode: true,
|
try {
|
||||||
throwOnError: true,
|
const html = katex.default.renderToString(code, {
|
||||||
errorColor: '#f44336',
|
displayMode: true,
|
||||||
});
|
throwOnError: true,
|
||||||
|
errorColor: '#f44336',
|
||||||
|
});
|
||||||
|
|
||||||
setRendered(html);
|
setRendered(html);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e instanceof Error) {
|
if (e instanceof Error) {
|
||||||
setError(renderError(e));
|
setError(renderError(e));
|
||||||
} else {
|
} else {
|
||||||
throw e;
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})();
|
||||||
}, [rendered, error, code]);
|
}, [rendered, error, code]);
|
||||||
|
|
||||||
if (error) return error;
|
if (error) return error;
|
||||||
|
|
Loading…
Reference in a new issue