Skip to content

Commit f4c4f92

Browse files
author
designcise
committed
fix: webpack loader issue with anti flicker script
1 parent b194b18 commit f4c4f92

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/AntiFlickerScript.jsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React, { memo } from 'react';
2+
3+
export default memo(function AntiFlickerScript({ theme, color }) {
4+
const script = `(function(theme,root){root.classList.remove(\`'${Object.values(color).join("','")}'\`);root.classList.add(theme);root.style.colorScheme=theme;})('${theme}',document.firstElementChild)`;
5+
return <script dangerouslySetInnerHTML={{ __html: script }} />
6+
}, () => true);

src/ThemeProvider.jsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
'use client'
22

3-
import React, { useEffect, useState, useCallback, memo } from 'react';
3+
import React, { useEffect, useState, useCallback } from 'react';
44
import ThemeContext from './ThemeContext';
55
import { getPreference, setPreference, getColors } from './helper/theme.helper';
6+
import AntiFlickerScript from './AntiFlickerScript';
67

78
const color = getColors();
89

9-
const AntiFlickerScript = memo(function Script({ theme, color }) {
10-
const script = (() => `(function(theme,root){root.classList.remove(\`'${Object.values(color).join("','")}'\`);root.classList.add(theme);root.style.colorScheme=theme;})('${theme}',document.firstElementChild)`)();
11-
return <script dangerouslySetInnerHTML={{ __html: script }} />
12-
}, () => true);
13-
1410
export default function ThemeProvider({
1511
children,
1612
storageKey,

0 commit comments

Comments
 (0)