@@ -9,6 +9,10 @@ import { spring } from "./spring";
9
9
import { queueAnimationFrame , unqueueAnimationFrame } from "./raf-queue" ;
10
10
import { currentTime } from "./time" ;
11
11
12
+ // https://github.com/facebook/react/issues/14927
13
+ const useLayoutEffect =
14
+ typeof window !== "undefined" ? React . useLayoutEffect : React . useEffect ;
15
+
12
16
export function useSpring (
13
17
target : number ,
14
18
config : Config = { }
@@ -26,17 +30,17 @@ export function useSpring(
26
30
: spring ( { x0, v0, t0, t, k, c, m, X } ) ;
27
31
const moving = isMoving ( x , v , t , newConfig ) ;
28
32
29
- React . useLayoutEffect ( ( ) => {
33
+ useLayoutEffect ( ( ) => {
30
34
Object . assign ( oldConfig , newConfig ) ;
31
35
} , [ newConfig . X , newConfig . k , newConfig . c , newConfig . m , newConfig . teleport ] ) ;
32
36
33
- React . useLayoutEffect ( ( ) => {
37
+ useLayoutEffect ( ( ) => {
34
38
state . x0 = x ;
35
39
state . v0 = v ;
36
40
state . t0 = t ;
37
41
} , [ x , v , t ] ) ;
38
42
39
- React . useLayoutEffect ( ( ) => {
43
+ useLayoutEffect ( ( ) => {
40
44
const loop = ( now : number ) => {
41
45
const { x0, v0, t0 } = state ;
42
46
const { k, c, m, X, decimals } = oldConfig ;
@@ -56,7 +60,7 @@ export function useSpring(
56
60
}
57
61
} ) ;
58
62
59
- React . useLayoutEffect ( ( ) => {
63
+ useLayoutEffect ( ( ) => {
60
64
return ( ) => {
61
65
if ( state . raf != null ) {
62
66
unqueueAnimationFrame ( state . raf ) ;
0 commit comments