Skip to content

Commit 0a39e81

Browse files
committed
fix(ThemeProvider): add useIsomorphicLayoutEffect to fix SSR warnings
1 parent 69249df commit 0a39e81

File tree

4 files changed

+8
-1
lines changed

4 files changed

+8
-1
lines changed

src/components/theme/ThemeProvider.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import * as React from 'react';
44

5+
import {useIsomorphicLayoutEffect} from '../../hooks/private';
56
import {PrivateLayoutProvider} from '../layout/LayoutProvider/LayoutProvider';
67
import type {PrivateLayoutProviderProps} from '../layout/LayoutProvider/LayoutProvider';
78
import {block} from '../utils/cn';
@@ -66,7 +67,7 @@ export function ThemeProvider({
6667

6768
const prevRootClassName = React.useRef('');
6869

69-
React.useLayoutEffect(() => {
70+
useIsomorphicLayoutEffect(() => {
7071
if (!scoped) {
7172
updateBodyClassName({
7273
theme: themeValue,

src/hooks/private/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ export * from './usePrevious';
1010
export * from './useRadio';
1111
export * from './useRadioGroup';
1212
export * from './useUpdateEffect';
13+
export * from './useIsomorphicLayoutEffect';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import * as React from 'react';
2+
3+
export const useIsomorphicLayoutEffect =
4+
typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;

0 commit comments

Comments
 (0)