ui: fix prismjs loading

This commit is contained in:
nick-delirium 2024-12-16 10:39:38 +01:00
parent 69ef083abe
commit 92a6379e2c
No known key found for this signature in database
GPG key ID: 93ABD695DF5FDBA0
3 changed files with 23 additions and 30 deletions

View file

@ -14,6 +14,15 @@
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet" />
<link rel="preload" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.css"></noscript>
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/prism.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/plugins/autoloader/prism-autoloader.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/prismjs/components/prism-javascript.min.js"></script>
<script defer>
Prism.plugins.autoloader.languages_path = 'https://cdn.jsdelivr.net/npm/prismjs/components/';
</script>
</head>
<body>
<div id="modal-root"></div>

View file

@ -1,20 +1,20 @@
import React, { useEffect } from "react";
import Prism from "prismjs";
import React, { useEffect } from 'react';
interface IProps {
code: string;
language: string;
}
const CodeBlock = ({ code, language }: IProps) => {
export default function CodeBlock({ code }) {
const language = 'javascript'
useEffect(() => {
Prism.highlightAll(false);
}, []);
setTimeout(() => {
if (window.Prism) {
Prism.highlightAll();
}
}, 0)
}, [code, language]);
return (
<pre>
<code children={code} className={`language-${language}`} />
<code className={`language-${language}`}>
{code}
</code>
</pre>
);
};
export default CodeBlock;
}

View file

@ -7,21 +7,5 @@ module.exports = {
plugins: [
'babel-plugin-react-require',
['@babel/plugin-proposal-decorators', { legacy: true }],
[
'prismjs',
{
languages: [
'javascript',
'css',
'bash',
'typescript',
'jsx',
'kotlin',
'swift',
],
theme: 'default',
css: true,
},
],
],
};