From de4568179618ec04414a702790d160a4999c67f6 Mon Sep 17 00:00:00 2001 From: Narin Luangrath Date: Sun, 31 Jul 2022 23:30:01 -0700 Subject: [PATCH] improv(docusaurus-theme-classic): fix FOUC Context: https://github.com/FormidableLabs/prism-react-renderer/pull/160 --- packages/docusaurus-theme-classic/src/index.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/docusaurus-theme-classic/src/index.ts b/packages/docusaurus-theme-classic/src/index.ts index b85fddbbf2c3..74648dd17147 100644 --- a/packages/docusaurus-theme-classic/src/index.ts +++ b/packages/docusaurus-theme-classic/src/index.ts @@ -9,6 +9,7 @@ import path from 'path'; import {createRequire} from 'module'; import rtlcss from 'rtlcss'; import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations'; +import {generateScriptForSSR} from 'prism-react-renderer'; import {getTranslationFiles, translateThemeConfig} from './translations'; import type {LoadContext, Plugin} from '@docusaurus/types'; import type {ThemeConfig} from '@docusaurus/theme-common'; @@ -107,7 +108,7 @@ export default function themeClassic( const { announcementBar, colorMode, - prism: {additionalLanguages}, + prism: {additionalLanguages, theme, darkTheme}, } = themeConfig; const {customCss} = options; const {direction} = localeConfigs[currentLocale]!; @@ -198,6 +199,17 @@ ${noFlashColorMode(colorMode)} ${announcementBar ? AnnouncementBarInlineJavaScript : ''} `, }, + { + tagName: 'script', + innerHTML: generateScriptForSSR( + [theme, darkTheme], + `() => ( + document.documentElement.getAttribute('data-theme') === 'dark' + ? ${darkTheme.id} + : ${theme.id} + )`, + ), + }, ], }; },