Skip to content

Commit 2b5f873

Browse files
authored
fix: add useIsomorphicLayoutEffect back (#29)
1 parent 24efc07 commit 2b5f873

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { useEffect, useLayoutEffect } from 'react';
2+
import canUseDom from 'rc-util/lib/Dom/canUseDom';
3+
4+
// It's safe to use `useLayoutEffect` but the warning is annoying
5+
const useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;
6+
7+
export default useIsomorphicLayoutEffect;

src/hooks/useStatus.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react';
22
import { useRef, useEffect } from 'react';
33
import useState from 'rc-util/lib/hooks/useState';
4-
import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
54
import {
65
STATUS_APPEAR,
76
STATUS_NONE,
@@ -21,6 +20,7 @@ import type {
2120
import type { CSSMotionProps } from '../CSSMotion';
2221
import useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';
2322
import useDomMotionEvents from './useDomMotionEvents';
23+
import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';
2424

2525
export default function useStatus(
2626
supportMotion: boolean,
@@ -163,7 +163,7 @@ export default function useStatus(
163163

164164
// ============================ Status ============================
165165
// Update with new status
166-
useLayoutEffect(() => {
166+
useIsomorphicLayoutEffect(() => {
167167
setAsyncVisible(visible);
168168

169169
const isMounted = mountedRef.current;

src/hooks/useStepQueue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as React from 'react';
22
import useState from 'rc-util/lib/hooks/useState';
3-
import useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
43
import type { StepStatus, MotionStatus } from '../interface';
54
import {
65
STEP_PREPARE,
@@ -10,6 +9,7 @@ import {
109
STEP_NONE,
1110
} from '../interface';
1211
import useNextFrame from './useNextFrame';
12+
import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';
1313

1414
const STEP_QUEUE: StepStatus[] = [
1515
STEP_PREPARE,
@@ -41,7 +41,7 @@ export default (
4141
setStep(STEP_PREPARE, true);
4242
}
4343

44-
useLayoutEffect(() => {
44+
useIsomorphicLayoutEffect(() => {
4545
if (step !== STEP_NONE && step !== STEP_ACTIVATED) {
4646
const index = STEP_QUEUE.indexOf(step);
4747
const nextStep = STEP_QUEUE[index + 1];

0 commit comments

Comments
 (0)