aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-02-01 15:15:55 +0100
committerArmand Philippot <git@armandphilippot.com>2022-02-01 15:15:55 +0100
commit1e370817560c905a0a3520e245c317f308b6a5e7 (patch)
treef5a1e2c3b8ddbff2cb4d94eff82830388158e4c9 /src/pages
parent8f8a3957b5d3b33bafaa0a6afe4187f75d6dd2b7 (diff)
chore: add a new settings to handle prism theme from toolbar
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/_app.tsx5
-rw-r--r--src/pages/article/[slug].tsx10
2 files changed, 14 insertions, 1 deletions
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 913861e..6df1a1d 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -2,6 +2,7 @@ import { MatomoProvider } from '@datapunt/matomo-tracker-react';
import { AppPropsWithLayout } from '@ts/types/app';
import { settings } from '@utils/config';
import { instance } from '@utils/helpers/matomo';
+import { PrismThemeProvider } from '@utils/providers/prism';
import { ThemeProvider } from 'next-themes';
import { useRouter } from 'next/router';
import { IntlProvider } from 'react-intl';
@@ -24,7 +25,9 @@ const MyApp = ({ Component, pageProps }: AppPropsWithLayout) => {
enableColorScheme={true}
enableSystem={true}
>
- {getLayout(<Component {...pageProps} />)}
+ <PrismThemeProvider>
+ {getLayout(<Component {...pageProps} />)}
+ </PrismThemeProvider>
</ThemeProvider>
</IntlProvider>
</MatomoProvider>
diff --git a/src/pages/article/[slug].tsx b/src/pages/article/[slug].tsx
index 1799fb0..d0ea68a 100644
--- a/src/pages/article/[slug].tsx
+++ b/src/pages/article/[slug].tsx
@@ -21,6 +21,7 @@ import { useEffect } from 'react';
import { useIntl } from 'react-intl';
import { Blog, BlogPosting, Graph, WebPage } from 'schema-dts';
import '@utils/plugins/prism-color-scheme';
+import { usePrismTheme } from '@utils/providers/prism';
const SingleArticle: NextPageWithLayout<ArticleProps> = ({ post }) => {
const {
@@ -61,6 +62,15 @@ const SingleArticle: NextPageWithLayout<ArticleProps> = ({ post }) => {
translateCopyButton(locale, intl);
}, [intl, locale]);
+ const { setCodeBlocks } = usePrismTheme();
+
+ useEffect(() => {
+ const allPre: NodeListOf<HTMLPreElement> = document.querySelectorAll(
+ 'pre[data-prismjs-color-scheme'
+ );
+ setCodeBlocks(allPre);
+ }, [setCodeBlocks, router.asPath]);
+
const webpageSchema: WebPage = {
'@id': `${articleUrl}`,
'@type': 'WebPage',