react-native-reanimated 2.3.0-beta.4 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/Common/cpp/Tools/RuntimeDecorator.cpp +17 -0
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/android/build.gradle +5 -3
  5. package/android/expo/linking.gradle +46 -0
  6. package/android/expo/src/main/java/com/swmansion/reanimated/EXReanimatedAdapter.java +12 -0
  7. package/android/expo/src/main/java/expo/modules/adapters/reanimated/EXReanimatedPackage.java +26 -0
  8. package/android/react-native-reanimated-63-hermes.aar +0 -0
  9. package/android/react-native-reanimated-63-jsc.aar +0 -0
  10. package/android/react-native-reanimated-64-hermes.aar +0 -0
  11. package/android/react-native-reanimated-64-jsc.aar +0 -0
  12. package/android/react-native-reanimated-65-hermes.aar +0 -0
  13. package/android/react-native-reanimated-65-jsc.aar +0 -0
  14. package/android/react-native-reanimated-66-hermes.aar +0 -0
  15. package/android/react-native-reanimated-66-jsc.aar +0 -0
  16. package/android/react-native-reanimated-67-hermes.aar +0 -0
  17. package/android/react-native-reanimated-67-jsc.aar +0 -0
  18. package/expo-module.config.json +3 -0
  19. package/ios/LayoutReanimation/REAAnimationsManager.h +1 -1
  20. package/ios/LayoutReanimation/REAAnimationsManager.m +68 -19
  21. package/ios/LayoutReanimation/REAUIManager.mm +8 -7
  22. package/ios/Nodes/REAPropsNode.m +1 -1
  23. package/ios/native/NativeMethods.h +1 -1
  24. package/ios/native/NativeProxy.mm +10 -2
  25. package/ios/native/REAInitializer.mm +3 -4
  26. package/lib/Animated.js +3 -5
  27. package/lib/createAnimatedComponent.js +4 -2
  28. package/lib/index.js +3 -5
  29. package/lib/reanimated1/core/Core.test.js +1 -1
  30. package/lib/reanimated2/Colors.js +1 -97
  31. package/lib/reanimated2/Easing.js +5 -0
  32. package/lib/reanimated2/NativeMethods.js +15 -5
  33. package/lib/reanimated2/NativeReanimated/index.js +2 -2
  34. package/lib/reanimated2/component/FlatList.js +30 -0
  35. package/lib/reanimated2/component/WrappedComponents.js +9 -0
  36. package/lib/reanimated2/component/index.js +4 -0
  37. package/lib/reanimated2/core.js +9 -3
  38. package/lib/reanimated2/globals.d.ts +3 -0
  39. package/lib/reanimated2/hook/useAnimatedGestureHandler.js +1 -2
  40. package/lib/reanimated2/hook/useAnimatedStyle.js +31 -14
  41. package/lib/reanimated2/hook/utils.js +14 -11
  42. package/lib/reanimated2/index.js +2 -0
  43. package/lib/reanimated2/interpolateColor.js +98 -0
  44. package/lib/reanimated2/js-reanimated/JSReanimated.js +1 -1
  45. package/lib/reanimated2/js-reanimated/commonTypes.js +1 -0
  46. package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +14 -14
  47. package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +8 -8
  48. package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +16 -16
  49. package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +15 -15
  50. package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +4 -4
  51. package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +20 -8
  52. package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +2 -2
  53. package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +8 -8
  54. package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +10 -10
  55. package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +8 -8
  56. package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +8 -8
  57. package/mock.js +2 -0
  58. package/package.json +8 -5
  59. package/plugin.js +3 -1
  60. package/react-native-reanimated.d.ts +101 -27
  61. package/src/Animated.js +3 -5
  62. package/src/createAnimatedComponent.tsx +13 -5
  63. package/src/reanimated1/core/Core.test.js +1 -1
  64. package/src/reanimated2/Colors.ts +6 -150
  65. package/src/reanimated2/Easing.ts +11 -0
  66. package/src/reanimated2/NativeMethods.ts +19 -6
  67. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +1 -0
  68. package/src/reanimated2/NativeReanimated/index.ts +2 -2
  69. package/src/reanimated2/animation/commonTypes.ts +44 -40
  70. package/src/reanimated2/animation/decay.ts +1 -1
  71. package/src/reanimated2/animation/delay.ts +2 -16
  72. package/src/reanimated2/animation/index.ts +7 -8
  73. package/src/reanimated2/animation/repeat.ts +2 -12
  74. package/src/reanimated2/animation/sequence.ts +3 -10
  75. package/src/reanimated2/animation/spring.ts +1 -1
  76. package/src/reanimated2/animation/styleAnimation.ts +1 -18
  77. package/src/reanimated2/animation/timing.ts +1 -1
  78. package/src/reanimated2/animation/util.ts +12 -9
  79. package/src/reanimated2/commonTypes.ts +48 -1
  80. package/src/reanimated2/component/FlatList.tsx +44 -0
  81. package/src/reanimated2/component/WrappedComponents.ts +11 -0
  82. package/src/reanimated2/component/index.ts +9 -0
  83. package/src/reanimated2/core.ts +10 -6
  84. package/src/reanimated2/globals.d.ts +3 -0
  85. package/src/reanimated2/hook/commonTypes.ts +5 -0
  86. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +1 -2
  87. package/src/reanimated2/hook/useAnimatedRef.ts +1 -5
  88. package/src/reanimated2/hook/useAnimatedStyle.ts +35 -16
  89. package/src/reanimated2/hook/utils.ts +18 -17
  90. package/src/reanimated2/index.ts +2 -0
  91. package/src/reanimated2/interpolateColor.ts +178 -0
  92. package/src/reanimated2/js-reanimated/JSReanimated.ts +3 -4
  93. package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
  94. package/src/reanimated2/js-reanimated/MapperRegistry.ts +1 -1
  95. package/src/reanimated2/js-reanimated/commonTypes.ts +51 -0
  96. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +39 -20
  97. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +5 -1
  98. package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +21 -15
  99. package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +29 -24
  100. package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +61 -34
  101. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +48 -33
  102. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +17 -12
  103. package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +20 -8
  104. package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +14 -10
  105. package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +8 -8
  106. package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +20 -14
  107. package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +14 -8
  108. package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +24 -12
  109. package/src/reanimated2/utils.ts +1 -1
@@ -4,9 +4,13 @@ import {
4
4
  LayoutAnimationFunction,
5
5
  } from '../animationBuilder/commonTypes';
6
6
  import { BaseAnimationBuilder } from '../animationBuilder';
7
- import { AnimationObject, withSequence, withTiming } from '../../animation';
7
+ import { withSequence, withTiming } from '../../animation';
8
8
  import { FadeIn, FadeOut } from '../defaultAnimations/Fade';
9
- import { StyleProps, TransformProperty } from '../../commonTypes';
9
+ import {
10
+ StyleProps,
11
+ TransformProperty,
12
+ AnimationObject,
13
+ } from '../../commonTypes';
10
14
 
11
15
  export class EntryExitTransition
12
16
  extends BaseAnimationBuilder
@@ -174,28 +178,28 @@ export class EntryExitTransition
174
178
  return {
175
179
  initialValues: {
176
180
  ...exitingValues.initialValues,
177
- originX: values.boriginX,
178
- originY: values.boriginY,
179
- width: values.bwidth,
180
- height: values.bheight,
181
+ originX: values.currentOriginX,
182
+ originY: values.currentOriginY,
183
+ width: values.currentWidth,
184
+ height: values.currentHeight,
181
185
  transform: mergedTransform,
182
186
  },
183
187
  animations: {
184
188
  originX: delayFunction(
185
189
  delay + exitingDuration,
186
- withTiming(values.originX, { duration: exitingDuration })
190
+ withTiming(values.targetOriginX, { duration: exitingDuration })
187
191
  ),
188
192
  originY: delayFunction(
189
193
  delay + exitingDuration,
190
- withTiming(values.originY, { duration: exitingDuration })
194
+ withTiming(values.targetOriginY, { duration: exitingDuration })
191
195
  ),
192
196
  width: delayFunction(
193
197
  delay + exitingDuration,
194
- withTiming(values.width, { duration: exitingDuration })
198
+ withTiming(values.targetWidth, { duration: exitingDuration })
195
199
  ),
196
200
  height: delayFunction(
197
201
  delay + exitingDuration,
198
- withTiming(values.height, { duration: exitingDuration })
202
+ withTiming(values.targetHeight, { duration: exitingDuration })
199
203
  ),
200
204
  ...animations,
201
205
  },
@@ -23,10 +23,10 @@ export class FadingTransition
23
23
  return {
24
24
  initialValues: {
25
25
  opacity: 1,
26
- originX: values.boriginX,
27
- originY: values.boriginY,
28
- width: values.bwidth,
29
- height: values.bheight,
26
+ originX: values.currentOriginX,
27
+ originY: values.currentOriginY,
28
+ width: values.currentWidth,
29
+ height: values.currentHeight,
30
30
  },
31
31
  animations: {
32
32
  opacity: delayFunction(
@@ -38,19 +38,19 @@ export class FadingTransition
38
38
  ),
39
39
  originX: delayFunction(
40
40
  delay + duration,
41
- withTiming(values.originX, { duration: 50 })
41
+ withTiming(values.targetOriginX, { duration: 50 })
42
42
  ),
43
43
  originY: delayFunction(
44
44
  delay + duration,
45
- withTiming(values.originY, { duration: 50 })
45
+ withTiming(values.targetOriginY, { duration: 50 })
46
46
  ),
47
47
  width: delayFunction(
48
48
  delay + duration,
49
- withTiming(values.width, { duration: 50 })
49
+ withTiming(values.targetWidth, { duration: 50 })
50
50
  ),
51
51
  height: delayFunction(
52
52
  delay + duration,
53
- withTiming(values.height, { duration: 50 })
53
+ withTiming(values.targetHeight, { duration: 50 })
54
54
  ),
55
55
  },
56
56
  callback: callback,
@@ -22,34 +22,40 @@ export class JumpingTransition
22
22
  return (values) => {
23
23
  'worklet';
24
24
  const d = Math.max(
25
- Math.abs(values.originX - values.boriginX),
26
- Math.abs(values.originY - values.boriginY)
25
+ Math.abs(values.targetOriginX - values.currentOriginX),
26
+ Math.abs(values.targetOriginY - values.currentOriginY)
27
27
  );
28
28
  return {
29
29
  initialValues: {
30
- originX: values.boriginX,
31
- originY: values.boriginY,
32
- width: values.bwidth,
33
- height: values.bheight,
30
+ originX: values.currentOriginX,
31
+ originY: values.currentOriginY,
32
+ width: values.currentWidth,
33
+ height: values.currentHeight,
34
34
  },
35
35
  animations: {
36
- originX: delayFunction(delay, withTiming(values.originX, config)),
36
+ originX: delayFunction(
37
+ delay,
38
+ withTiming(values.targetOriginX, config)
39
+ ),
37
40
  originY: delayFunction(
38
41
  delay,
39
42
  withSequence(
40
- withTiming(Math.min(values.originY, values.boriginY) - d, {
41
- duration,
42
- easing: Easing.out(Easing.exp),
43
- }),
44
- withTiming(values.originY, {
43
+ withTiming(
44
+ Math.min(values.targetOriginY, values.currentOriginY) - d,
45
+ {
46
+ duration,
47
+ easing: Easing.out(Easing.exp),
48
+ }
49
+ ),
50
+ withTiming(values.targetOriginY, {
45
51
  ...config,
46
52
  duration,
47
53
  easing: Easing.bounce,
48
54
  })
49
55
  )
50
56
  ),
51
- width: delayFunction(delay, withTiming(values.width, config)),
52
- height: delayFunction(delay, withTiming(values.height, config)),
57
+ width: delayFunction(delay, withTiming(values.targetWidth, config)),
58
+ height: delayFunction(delay, withTiming(values.targetHeight, config)),
53
59
  },
54
60
  callback: callback,
55
61
  };
@@ -21,16 +21,22 @@ export class LinearTransition
21
21
  'worklet';
22
22
  return {
23
23
  initialValues: {
24
- originX: values.boriginX,
25
- originY: values.boriginY,
26
- width: values.bwidth,
27
- height: values.bheight,
24
+ originX: values.currentOriginX,
25
+ originY: values.currentOriginY,
26
+ width: values.currentWidth,
27
+ height: values.currentHeight,
28
28
  },
29
29
  animations: {
30
- originX: delayFunction(delay, animation(values.originX, config)),
31
- originY: delayFunction(delay, animation(values.originY, config)),
32
- width: delayFunction(delay, animation(values.width, config)),
33
- height: delayFunction(delay, animation(values.height, config)),
30
+ originX: delayFunction(
31
+ delay,
32
+ animation(values.targetOriginX, config)
33
+ ),
34
+ originY: delayFunction(
35
+ delay,
36
+ animation(values.targetOriginY, config)
37
+ ),
38
+ width: delayFunction(delay, animation(values.targetWidth, config)),
39
+ height: delayFunction(delay, animation(values.targetHeight, config)),
34
40
  },
35
41
  callback: callback,
36
42
  };
@@ -36,38 +36,50 @@ export class SequencedTransition
36
36
  'worklet';
37
37
  return {
38
38
  initialValues: {
39
- originX: values.boriginX,
40
- originY: values.boriginY,
41
- width: values.bwidth,
42
- height: values.bheight,
39
+ originX: values.currentOriginX,
40
+ originY: values.currentOriginY,
41
+ width: values.currentWidth,
42
+ height: values.currentHeight,
43
43
  },
44
44
  animations: {
45
45
  originX: delayFunction(
46
46
  delay,
47
47
  withSequence(
48
- withTiming(reverse ? values.boriginX : values.originX, config),
49
- withTiming(values.originX, config)
48
+ withTiming(
49
+ reverse ? values.currentOriginX : values.targetOriginX,
50
+ config
51
+ ),
52
+ withTiming(values.targetOriginX, config)
50
53
  )
51
54
  ),
52
55
  originY: delayFunction(
53
56
  delay,
54
57
  withSequence(
55
- withTiming(reverse ? values.originY : values.boriginY, config),
56
- withTiming(values.originY, config)
58
+ withTiming(
59
+ reverse ? values.targetOriginY : values.currentOriginY,
60
+ config
61
+ ),
62
+ withTiming(values.targetOriginY, config)
57
63
  )
58
64
  ),
59
65
  width: delayFunction(
60
66
  delay,
61
67
  withSequence(
62
- withTiming(reverse ? values.bwidth : values.width, config),
63
- withTiming(values.width, config)
68
+ withTiming(
69
+ reverse ? values.currentWidth : values.targetWidth,
70
+ config
71
+ ),
72
+ withTiming(values.targetWidth, config)
64
73
  )
65
74
  ),
66
75
  height: delayFunction(
67
76
  delay,
68
77
  withSequence(
69
- withTiming(reverse ? values.height : values.bheight, config),
70
- withTiming(values.height, config)
78
+ withTiming(
79
+ reverse ? values.targetHeight : values.currentHeight,
80
+ config
81
+ ),
82
+ withTiming(values.targetHeight, config)
71
83
  )
72
84
  ),
73
85
  },
@@ -1,6 +1,6 @@
1
1
  import { Component } from 'react';
2
2
  import { measure } from './NativeMethods';
3
- import { RefObjectFunction } from './hook/useAnimatedRef';
3
+ import { RefObjectFunction } from './hook/commonTypes';
4
4
 
5
5
  export interface ComponentCoords {
6
6
  x: number;