react-native-reanimated 2.8.0 → 3.0.0-rc.0

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 (381) hide show
  1. package/Common/cpp/Fabric/FabricUtils.cpp +128 -0
  2. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
  3. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
  5. package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
  6. package/Common/cpp/SharedItems/ShareableValue.cpp +18 -0
  7. package/Common/cpp/Tools/Mapper.cpp +23 -4
  8. package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -32
  9. package/Common/cpp/Tools/Scheduler.cpp +4 -0
  10. package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
  11. package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
  12. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
  13. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
  14. package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
  15. package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
  16. package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
  17. package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
  18. package/Common/cpp/headers/Tools/Mapper.h +1 -1
  19. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
  20. package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
  21. package/README.md +4 -0
  22. package/RNReanimated.podspec +22 -11
  23. package/android/CMakeLists.txt +139 -27
  24. package/android/build.gradle +86 -209
  25. package/android/local.properties +1 -0
  26. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
  27. package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
  28. package/android/src/main/cpp/NativeProxy.cpp +178 -33
  29. package/android/src/main/cpp/headers/NativeProxy.h +43 -7
  30. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
  31. package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
  32. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
  33. package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +15 -2
  34. package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
  35. package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
  36. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
  37. package/ios/REAEventDispatcher.m +0 -1
  38. package/ios/REAModule.h +10 -1
  39. package/ios/REAModule.mm +284 -0
  40. package/ios/REANodesManager.h +27 -51
  41. package/ios/{REANodesManager.m → REANodesManager.mm} +91 -223
  42. package/ios/native/NativeProxy.mm +144 -17
  43. package/ios/native/REAInitializer.mm +12 -4
  44. package/ios/native/UIResponder+Reanimated.h +3 -1
  45. package/ios/native/UIResponder+Reanimated.mm +3 -1
  46. package/lib/Animated.js +0 -4
  47. package/lib/createAnimatedComponent.js +30 -169
  48. package/lib/index.js +0 -4
  49. package/lib/reanimated2/Easing.js +0 -42
  50. package/lib/reanimated2/NativeMethods.js +20 -3
  51. package/lib/reanimated2/UpdateProps.js +25 -10
  52. package/lib/reanimated2/core.js +4 -1
  53. package/lib/reanimated2/fabricUtils.js +18 -0
  54. package/lib/reanimated2/globals.d.ts +17 -1
  55. package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
  56. package/lib/reanimated2/hook/utils.js +0 -5
  57. package/lib/reanimated2/interpolateColor.js +5 -2
  58. package/lib/reanimated2/interpolation.js +0 -15
  59. package/lib/reanimated2/js-reanimated/index.js +3 -0
  60. package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
  61. package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
  62. package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
  63. package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
  64. package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
  65. package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
  66. package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
  67. package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
  68. package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
  69. package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
  70. package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
  71. package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
  72. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
  73. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
  74. package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
  75. package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
  76. package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
  77. package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
  78. package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
  79. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
  80. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
  81. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
  82. package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
  83. package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
  84. package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
  85. package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
  86. package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
  87. package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
  88. package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
  89. package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
  90. package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
  91. package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
  92. package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -1
  93. package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
  94. package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
  95. package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
  96. package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
  97. package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
  98. package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
  99. package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
  100. package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
  101. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
  102. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
  103. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
  104. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
  105. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +0 -0
  106. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
  107. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
  108. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
  109. package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
  110. package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
  111. package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
  112. package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
  113. package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
  114. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
  115. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
  116. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
  117. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
  118. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
  119. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
  120. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
  121. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
  122. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
  123. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
  124. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
  125. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
  126. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
  127. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
  128. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
  129. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
  130. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
  131. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
  132. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
  133. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
  134. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
  135. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
  136. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
  137. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
  138. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
  139. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
  140. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
  141. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
  142. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
  143. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
  144. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
  145. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
  146. package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
  147. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
  148. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
  149. package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
  150. package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
  151. package/package.json +7 -5
  152. package/plugin.js +4 -1
  153. package/src/Animated.js +0 -4
  154. package/src/createAnimatedComponent.tsx +37 -197
  155. package/src/reanimated2/Easing.ts +0 -53
  156. package/src/reanimated2/NativeMethods.ts +39 -7
  157. package/src/reanimated2/UpdateProps.ts +38 -19
  158. package/src/reanimated2/commonTypes.ts +4 -1
  159. package/src/reanimated2/component/FlatList.tsx +8 -5
  160. package/src/reanimated2/core.ts +7 -1
  161. package/src/reanimated2/fabricUtils.ts +27 -0
  162. package/src/reanimated2/globals.d.ts +17 -1
  163. package/src/reanimated2/hook/commonTypes.ts +4 -2
  164. package/src/reanimated2/hook/index.ts +1 -1
  165. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  166. package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
  167. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
  168. package/src/reanimated2/hook/utils.ts +2 -11
  169. package/src/reanimated2/interpolateColor.ts +6 -2
  170. package/src/reanimated2/interpolation.ts +1 -26
  171. package/src/reanimated2/js-reanimated/index.ts +5 -0
  172. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  173. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  174. package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
  175. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  176. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  177. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  178. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  179. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  180. package/android/.gradle/7.2/gc.properties +0 -0
  181. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  182. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  183. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  184. package/android/.gradle/checksums/checksums.lock +0 -0
  185. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  186. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  187. package/android/.gradle/vcs-1/gc.properties +0 -0
  188. package/android/react-native-reanimated-64-hermes.aar +0 -0
  189. package/android/react-native-reanimated-64-jsc.aar +0 -0
  190. package/android/react-native-reanimated-65-hermes.aar +0 -0
  191. package/android/react-native-reanimated-65-jsc.aar +0 -0
  192. package/android/react-native-reanimated-66-hermes.aar +0 -0
  193. package/android/react-native-reanimated-66-jsc.aar +0 -0
  194. package/android/react-native-reanimated-67-hermes.aar +0 -0
  195. package/android/react-native-reanimated-67-jsc.aar +0 -0
  196. package/android/react-native-reanimated-68-hermes.aar +0 -0
  197. package/android/react-native-reanimated-68-jsc.aar +0 -0
  198. package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
  199. package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
  200. package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
  201. package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
  202. package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
  203. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
  204. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
  205. package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
  206. package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
  207. package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
  208. package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
  209. package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
  210. package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
  211. package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
  212. package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
  213. package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
  214. package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
  215. package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
  216. package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
  217. package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
  218. package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
  219. package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
  220. package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
  221. package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
  222. package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
  223. package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
  224. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
  225. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
  226. package/ios/Nodes/REAAlwaysNode.h +0 -4
  227. package/ios/Nodes/REAAlwaysNode.m +0 -35
  228. package/ios/Nodes/REABezierNode.h +0 -5
  229. package/ios/Nodes/REABezierNode.m +0 -103
  230. package/ios/Nodes/REABlockNode.h +0 -5
  231. package/ios/Nodes/REABlockNode.m +0 -25
  232. package/ios/Nodes/REACallFuncNode.h +0 -6
  233. package/ios/Nodes/REACallFuncNode.m +0 -69
  234. package/ios/Nodes/REAClockNodes.h +0 -19
  235. package/ios/Nodes/REAClockNodes.m +0 -118
  236. package/ios/Nodes/REAConcatNode.h +0 -5
  237. package/ios/Nodes/REAConcatNode.m +0 -32
  238. package/ios/Nodes/REACondNode.h +0 -5
  239. package/ios/Nodes/REACondNode.m +0 -36
  240. package/ios/Nodes/READebugNode.h +0 -5
  241. package/ios/Nodes/READebugNode.m +0 -30
  242. package/ios/Nodes/REAEventNode.h +0 -8
  243. package/ios/Nodes/REAEventNode.m +0 -35
  244. package/ios/Nodes/REAFunctionNode.h +0 -6
  245. package/ios/Nodes/REAFunctionNode.m +0 -24
  246. package/ios/Nodes/REAJSCallNode.h +0 -5
  247. package/ios/Nodes/REAJSCallNode.m +0 -30
  248. package/ios/Nodes/REANode.h +0 -40
  249. package/ios/Nodes/REANode.m +0 -155
  250. package/ios/Nodes/REAOperatorNode.h +0 -5
  251. package/ios/Nodes/REAOperatorNode.m +0 -114
  252. package/ios/Nodes/REAParamNode.h +0 -10
  253. package/ios/Nodes/REAParamNode.m +0 -79
  254. package/ios/Nodes/REAPropsNode.h +0 -9
  255. package/ios/Nodes/REAPropsNode.m +0 -96
  256. package/ios/Nodes/REASetNode.h +0 -5
  257. package/ios/Nodes/REASetNode.m +0 -34
  258. package/ios/Nodes/REAStyleNode.h +0 -5
  259. package/ios/Nodes/REAStyleNode.m +0 -27
  260. package/ios/Nodes/REATransformNode.h +0 -5
  261. package/ios/Nodes/REATransformNode.m +0 -36
  262. package/ios/Nodes/REAValueNode.h +0 -9
  263. package/ios/Nodes/REAValueNode.m +0 -26
  264. package/ios/REAModule.m +0 -184
  265. package/ios/Transitioning/RCTConvert+REATransition.h +0 -11
  266. package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
  267. package/ios/Transitioning/REAAllTransitions.h +0 -26
  268. package/ios/Transitioning/REAAllTransitions.m +0 -296
  269. package/ios/Transitioning/REATransition.h +0 -64
  270. package/ios/Transitioning/REATransition.m +0 -210
  271. package/ios/Transitioning/REATransitionAnimation.h +0 -17
  272. package/ios/Transitioning/REATransitionAnimation.m +0 -79
  273. package/ios/Transitioning/REATransitionManager.h +0 -9
  274. package/ios/Transitioning/REATransitionManager.m +0 -60
  275. package/ios/Transitioning/REATransitionValues.h +0 -15
  276. package/ios/Transitioning/REATransitionValues.m +0 -25
  277. package/lib/reanimated1/Easing.js +0 -231
  278. package/lib/reanimated1/SpringConfig.js +0 -79
  279. package/lib/reanimated1/Transitioning.js +0 -158
  280. package/lib/reanimated1/animations/Animation.js +0 -32
  281. package/lib/reanimated1/animations/SpringUtils.js +0 -199
  282. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  283. package/lib/reanimated1/animations/decay.js +0 -54
  284. package/lib/reanimated1/animations/spring.js +0 -198
  285. package/lib/reanimated1/animations/timing.js +0 -74
  286. package/lib/reanimated1/base.js +0 -13
  287. package/lib/reanimated1/core/AnimatedAlways.js +0 -33
  288. package/lib/reanimated1/core/AnimatedBezier.js +0 -150
  289. package/lib/reanimated1/core/AnimatedBlock.js +0 -52
  290. package/lib/reanimated1/core/AnimatedCall.js +0 -55
  291. package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
  292. package/lib/reanimated1/core/AnimatedClock.js +0 -90
  293. package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
  294. package/lib/reanimated1/core/AnimatedCode.js +0 -32
  295. package/lib/reanimated1/core/AnimatedConcat.js +0 -32
  296. package/lib/reanimated1/core/AnimatedCond.js +0 -57
  297. package/lib/reanimated1/core/AnimatedDebug.js +0 -62
  298. package/lib/reanimated1/core/AnimatedEvent.js +0 -126
  299. package/lib/reanimated1/core/AnimatedFunction.js +0 -55
  300. package/lib/reanimated1/core/AnimatedNode.js +0 -223
  301. package/lib/reanimated1/core/AnimatedOperator.js +0 -103
  302. package/lib/reanimated1/core/AnimatedParam.js +0 -88
  303. package/lib/reanimated1/core/AnimatedProps.js +0 -108
  304. package/lib/reanimated1/core/AnimatedSet.js +0 -38
  305. package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
  306. package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
  307. package/lib/reanimated1/core/AnimatedStyle.js +0 -78
  308. package/lib/reanimated1/core/AnimatedTransform.js +0 -78
  309. package/lib/reanimated1/core/AnimatedValue.js +0 -38
  310. package/lib/reanimated1/core/Core.test.js +0 -30
  311. package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
  312. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  313. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  314. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  315. package/lib/reanimated1/derived/acc.js +0 -11
  316. package/lib/reanimated1/derived/color.js +0 -47
  317. package/lib/reanimated1/derived/diff.js +0 -16
  318. package/lib/reanimated1/derived/diffClamp.js +0 -11
  319. package/lib/reanimated1/derived/evaluateOnce.js +0 -35
  320. package/lib/reanimated1/derived/index.js +0 -8
  321. package/lib/reanimated1/derived/interpolate.js +0 -152
  322. package/lib/reanimated1/derived/interpolateColors.js +0 -62
  323. package/lib/reanimated1/derived/onChange.js +0 -14
  324. package/lib/reanimated1/derived/useCode.js +0 -41
  325. package/lib/reanimated1/index.js +0 -53
  326. package/lib/reanimated1/operators.js +0 -35
  327. package/lib/reanimated1/useValue.js +0 -10
  328. package/lib/reanimated1/val.js +0 -3
  329. package/lib/types/react-native-reanimated-tests.d.ts +0 -1
  330. package/src/reanimated1/Easing.js +0 -231
  331. package/src/reanimated1/SpringConfig.js +0 -79
  332. package/src/reanimated1/Transitioning.js +0 -158
  333. package/src/reanimated1/animations/Animation.js +0 -32
  334. package/src/reanimated1/animations/SpringUtils.js +0 -199
  335. package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  336. package/src/reanimated1/animations/decay.js +0 -54
  337. package/src/reanimated1/animations/spring.js +0 -198
  338. package/src/reanimated1/animations/timing.js +0 -74
  339. package/src/reanimated1/base.js +0 -13
  340. package/src/reanimated1/core/AnimatedAlways.js +0 -33
  341. package/src/reanimated1/core/AnimatedBezier.js +0 -150
  342. package/src/reanimated1/core/AnimatedBlock.js +0 -52
  343. package/src/reanimated1/core/AnimatedCall.js +0 -55
  344. package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
  345. package/src/reanimated1/core/AnimatedClock.js +0 -90
  346. package/src/reanimated1/core/AnimatedClockTest.js +0 -22
  347. package/src/reanimated1/core/AnimatedCode.js +0 -32
  348. package/src/reanimated1/core/AnimatedConcat.js +0 -32
  349. package/src/reanimated1/core/AnimatedCond.js +0 -57
  350. package/src/reanimated1/core/AnimatedDebug.js +0 -62
  351. package/src/reanimated1/core/AnimatedEvent.js +0 -126
  352. package/src/reanimated1/core/AnimatedFunction.js +0 -55
  353. package/src/reanimated1/core/AnimatedNode.js +0 -223
  354. package/src/reanimated1/core/AnimatedOperator.js +0 -103
  355. package/src/reanimated1/core/AnimatedParam.js +0 -88
  356. package/src/reanimated1/core/AnimatedProps.js +0 -108
  357. package/src/reanimated1/core/AnimatedSet.js +0 -38
  358. package/src/reanimated1/core/AnimatedStartClock.js +0 -30
  359. package/src/reanimated1/core/AnimatedStopClock.js +0 -30
  360. package/src/reanimated1/core/AnimatedStyle.js +0 -78
  361. package/src/reanimated1/core/AnimatedTransform.js +0 -78
  362. package/src/reanimated1/core/AnimatedValue.js +0 -38
  363. package/src/reanimated1/core/Core.test.js +0 -30
  364. package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
  365. package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  366. package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  367. package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  368. package/src/reanimated1/derived/acc.js +0 -11
  369. package/src/reanimated1/derived/color.js +0 -47
  370. package/src/reanimated1/derived/diff.js +0 -16
  371. package/src/reanimated1/derived/diffClamp.js +0 -11
  372. package/src/reanimated1/derived/evaluateOnce.js +0 -35
  373. package/src/reanimated1/derived/index.js +0 -8
  374. package/src/reanimated1/derived/interpolate.js +0 -152
  375. package/src/reanimated1/derived/interpolateColors.js +0 -62
  376. package/src/reanimated1/derived/onChange.js +0 -14
  377. package/src/reanimated1/derived/useCode.js +0 -41
  378. package/src/reanimated1/index.js +0 -53
  379. package/src/reanimated1/operators.js +0 -35
  380. package/src/reanimated1/useValue.js +0 -10
  381. package/src/reanimated1/val.js +0 -3
@@ -1,19 +1,8 @@
1
1
  import React, { Component, ComponentType, MutableRefObject, Ref } from 'react';
2
2
  import { findNodeHandle, Platform, StyleSheet } from 'react-native';
3
- import ReanimatedEventEmitter from './ReanimatedEventEmitter';
4
-
5
- // @ts-ignore JS file
6
- import AnimatedEvent from './reanimated1/core/AnimatedEvent';
7
- // @ts-ignore JS file
8
- import AnimatedNode from './reanimated1/core/AnimatedNode';
9
- // @ts-ignore JS file
10
- import AnimatedValue from './reanimated1/core/AnimatedValue';
11
- // @ts-ignore JS file
12
- import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
13
3
  import WorkletEventHandler from './reanimated2/WorkletEventHandler';
14
4
  import setAndForwardRef from './setAndForwardRef';
15
5
  import './reanimated2/layoutReanimation/LayoutAnimationRepository';
16
-
17
6
  import invariant from 'invariant';
18
7
  import { adaptViewConfig } from './ConfigHelper';
19
8
  import { RNRenderer } from './reanimated2/platform-specific/RNRenderer';
@@ -38,44 +27,22 @@ import {
38
27
  EntryExitAnimationFunction,
39
28
  ILayoutAnimationBuilder,
40
29
  } from './reanimated2/layoutReanimation';
41
- import { SharedValue, StyleProps } from './reanimated2/commonTypes';
30
+ import {
31
+ SharedValue,
32
+ StyleProps,
33
+ ShadowNodeWrapper,
34
+ } from './reanimated2/commonTypes';
42
35
  import {
43
36
  ViewDescriptorsSet,
44
37
  ViewRefSet,
45
38
  } from './reanimated2/ViewDescriptorsSet';
46
-
47
- const NODE_MAPPING = new Map();
48
-
49
- interface ListenerData {
50
- viewTag: number;
51
- props: StyleProps;
52
- }
53
-
54
- function listener(data: ListenerData) {
55
- const component = NODE_MAPPING.get(data.viewTag);
56
- component && component._updateFromNative(data.props);
57
- }
39
+ import { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';
58
40
 
59
41
  function dummyListener() {
60
42
  // empty listener we use to assign to listener properties for which animated
61
43
  // event is used.
62
44
  }
63
45
 
64
- function hasAnimatedNodes(value: unknown): boolean {
65
- if (value instanceof AnimatedNode) {
66
- return true;
67
- }
68
- if (Array.isArray(value)) {
69
- return value.some((item) => hasAnimatedNodes(item));
70
- }
71
- if (value && typeof value === 'object') {
72
- return Object.keys(value).some((key) =>
73
- hasAnimatedNodes((value as Record<string, unknown>)[key])
74
- );
75
- }
76
- return false;
77
- }
78
-
79
46
  type NestedArray<T> = T | NestedArray<T>[];
80
47
  function flattenArray<T>(array: NestedArray<T>): T[] {
81
48
  if (!Array.isArray(array)) {
@@ -166,14 +133,6 @@ export interface InitialComponentProps extends Record<string, unknown> {
166
133
  collapsable?: boolean;
167
134
  }
168
135
 
169
- interface PropsAnimated {
170
- __onEvaluate: () => StyleProps;
171
- __detach: () => void;
172
- __getValue: () => StyleProps;
173
- update: () => void;
174
- setNativeView: (view: Component) => void;
175
- }
176
-
177
136
  export default function createAnimatedComponent(
178
137
  Component: ComponentType<InitialComponentProps>,
179
138
  options?: Options<InitialComponentProps>
@@ -188,7 +147,6 @@ export default function createAnimatedComponent(
188
147
  class AnimatedComponent extends React.Component<
189
148
  AnimatedComponentProps<InitialComponentProps>
190
149
  > {
191
- _invokeAnimatedPropsCallbackOnMount = false;
192
150
  _styles: StyleProps[] | null = null;
193
151
  _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;
194
152
  _viewTag = -1;
@@ -196,13 +154,11 @@ export default function createAnimatedComponent(
196
154
  animatedStyle: { value: StyleProps } = { value: {} };
197
155
  initialStyle = {};
198
156
  sv: SharedValue<null | Record<string, unknown>> | null;
199
- _propsAnimated?: PropsAnimated;
200
157
  _component: ComponentRef | null = null;
201
158
  static displayName: string;
202
159
 
203
160
  constructor(props: AnimatedComponentProps<InitialComponentProps>) {
204
161
  super(props);
205
- this._attachProps(this.props);
206
162
  if (isJest()) {
207
163
  this.animatedStyle = { value: {} };
208
164
  }
@@ -210,43 +166,21 @@ export default function createAnimatedComponent(
210
166
  }
211
167
 
212
168
  componentWillUnmount() {
213
- this._detachPropUpdater();
214
- this._propsAnimated && this._propsAnimated.__detach();
215
169
  this._detachNativeEvents();
216
170
  this._detachStyles();
217
171
  this.sv = null;
218
172
  }
219
173
 
220
174
  componentDidMount() {
221
- if (this._invokeAnimatedPropsCallbackOnMount) {
222
- this._invokeAnimatedPropsCallbackOnMount = false;
223
- this._animatedPropsCallback();
224
- }
225
-
226
- this._propsAnimated &&
227
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
228
- this._propsAnimated.setNativeView(this._component!);
229
175
  this._attachNativeEvents();
230
- this._attachPropUpdater();
231
176
  this._attachAnimatedStyles();
232
177
  }
233
178
 
234
- _getEventViewRef() {
235
- // Make sure to get the scrollable node for components that implement
236
- // `ScrollResponder.Mixin`.
237
- return this._component?.getScrollableNode
238
- ? this._component.getScrollableNode()
239
- : this._component;
240
- }
241
-
242
179
  _attachNativeEvents() {
243
- const node = this._getEventViewRef();
244
- const viewTag = findNodeHandle(options?.setNativeProps ? this : node);
180
+ const viewTag = findNodeHandle(this);
245
181
  for (const key in this.props) {
246
182
  const prop = this.props[key];
247
- if (prop instanceof AnimatedEvent) {
248
- (prop as AnimatedEvent).attachEvent(node, key);
249
- } else if (
183
+ if (
250
184
  has('current', prop) &&
251
185
  prop.current instanceof WorkletEventHandler
252
186
  ) {
@@ -256,13 +190,9 @@ export default function createAnimatedComponent(
256
190
  }
257
191
 
258
192
  _detachNativeEvents() {
259
- const node = this._getEventViewRef();
260
-
261
193
  for (const key in this.props) {
262
194
  const prop = this.props[key];
263
- if (prop instanceof AnimatedEvent) {
264
- (prop as AnimatedEvent).detachEvent(node, key);
265
- } else if (
195
+ if (
266
196
  has('current', prop) &&
267
197
  prop.current instanceof WorkletEventHandler
268
198
  ) {
@@ -285,22 +215,24 @@ export default function createAnimatedComponent(
285
215
  if (this.props.animatedProps?.viewDescriptors) {
286
216
  this.props.animatedProps.viewDescriptors.remove(this._viewTag);
287
217
  }
218
+ if (global._IS_FABRIC) {
219
+ const shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
220
+ runOnUI(() => {
221
+ 'worklet';
222
+ _removeShadowNodeFromRegistry(shadowNodeWrapper);
223
+ })();
224
+ }
288
225
  }
289
226
  }
290
227
 
291
228
  _reattachNativeEvents(
292
229
  prevProps: AnimatedComponentProps<InitialComponentProps>
293
230
  ) {
294
- const node = this._getEventViewRef();
295
- const attached = new Set();
296
- const nextEvts = new Set();
297
231
  let viewTag: number | undefined;
298
232
 
299
233
  for (const key in this.props) {
300
234
  const prop = this.props[key];
301
- if (prop instanceof AnimatedEvent) {
302
- nextEvts.add((prop as AnimatedEvent).__nodeID);
303
- } else if (
235
+ if (
304
236
  has('current', prop) &&
305
237
  prop.current instanceof WorkletEventHandler
306
238
  ) {
@@ -311,15 +243,7 @@ export default function createAnimatedComponent(
311
243
  }
312
244
  for (const key in prevProps) {
313
245
  const prop = this.props[key];
314
- if (prop instanceof AnimatedEvent) {
315
- if (!nextEvts.has((prop as AnimatedEvent).__nodeID)) {
316
- // event was in prev props but not in current props, we detach
317
- (prop as AnimatedEvent).detachEvent(node, key);
318
- } else {
319
- // event was in prev and is still in current props
320
- attached.add((prop as AnimatedEvent).__nodeID);
321
- }
322
- } else if (
246
+ if (
323
247
  has('current', prop) &&
324
248
  prop.current instanceof WorkletEventHandler &&
325
249
  prop.current.reattachNeeded
@@ -331,12 +255,6 @@ export default function createAnimatedComponent(
331
255
  for (const key in this.props) {
332
256
  const prop = this.props[key];
333
257
  if (
334
- prop instanceof AnimatedEvent &&
335
- !attached.has((prop as AnimatedEvent).__nodeID)
336
- ) {
337
- // not yet attached
338
- (prop as AnimatedEvent).attachEvent(node, key);
339
- } else if (
340
258
  has('current', prop) &&
341
259
  prop.current instanceof WorkletEventHandler &&
342
260
  prop.current.reattachNeeded
@@ -348,49 +266,6 @@ export default function createAnimatedComponent(
348
266
  }
349
267
  }
350
268
 
351
- // The system is best designed when setNativeProps is implemented. It is
352
- // able to avoid re-rendering and directly set the attributes that changed.
353
- // However, setNativeProps can only be implemented on native components
354
- // If you want to animate a composite component, you need to re-render it.
355
- // In this case, we have a fallback that uses forceUpdate.
356
- _animatedPropsCallback = () => {
357
- if (this._component == null) {
358
- // AnimatedProps is created in will-mount because it's used in render.
359
- // But this callback may be invoked before mount in async mode,
360
- // In which case we should defer the setNativeProps() call.
361
- // React may throw away uncommitted work in async mode,
362
- // So a deferred call won't always be invoked.
363
- this._invokeAnimatedPropsCallbackOnMount = true;
364
- } else if (typeof this._component.setNativeProps !== 'function') {
365
- this.forceUpdate();
366
- } else {
367
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
368
- this._component.setNativeProps(this._propsAnimated!.__getValue());
369
- }
370
- };
371
-
372
- _attachProps(nextProps: StyleProps) {
373
- const oldPropsAnimated = this._propsAnimated;
374
-
375
- this._propsAnimated = createOrReusePropsNode(
376
- nextProps,
377
- this._animatedPropsCallback,
378
- oldPropsAnimated
379
- );
380
- // If prop node has been reused we don't need to call into "__detach"
381
- if (oldPropsAnimated !== this._propsAnimated) {
382
- // When you call detach, it removes the element from the parent list
383
- // of children. If it goes to 0, then the parent also detaches itself
384
- // and so on.
385
- // An optimization is to attach the new elements and THEN detach the old
386
- // ones instead of detaching and THEN attaching.
387
- // This way the intermediate state isn't to go to 0 and trigger
388
- // this expensive recursive detaching to then re-attach everything on
389
- // the very next operation.
390
- oldPropsAnimated && oldPropsAnimated.__detach();
391
- }
392
- }
393
-
394
269
  _updateFromNative(props: StyleProps) {
395
270
  if (options?.setNativeProps) {
396
271
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -401,14 +276,6 @@ export default function createAnimatedComponent(
401
276
  }
402
277
  }
403
278
 
404
- _attachPropUpdater() {
405
- const viewTag = findNodeHandle(this);
406
- NODE_MAPPING.set(viewTag, this);
407
- if (NODE_MAPPING.size === 1) {
408
- ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);
409
- }
410
- }
411
-
412
279
  _attachAnimatedStyles() {
413
280
  const styles = this.props.style
414
281
  ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))
@@ -421,9 +288,11 @@ export default function createAnimatedComponent(
421
288
 
422
289
  let viewTag: number | null;
423
290
  let viewName: string | null;
291
+ let shadowNodeWrapper: ShadowNodeWrapper | null = null;
424
292
  if (Platform.OS === 'web') {
425
293
  viewTag = findNodeHandle(this);
426
294
  viewName = null;
295
+ shadowNodeWrapper = null;
427
296
  } else {
428
297
  // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx
429
298
  const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);
@@ -445,6 +314,10 @@ export default function createAnimatedComponent(
445
314
  if (hasReanimated2Props && hostInstance?.viewConfig) {
446
315
  adaptViewConfig(hostInstance.viewConfig);
447
316
  }
317
+
318
+ if (global._IS_FABRIC) {
319
+ shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
320
+ }
448
321
  }
449
322
  this._viewTag = viewTag as number;
450
323
 
@@ -470,7 +343,11 @@ export default function createAnimatedComponent(
470
343
  }
471
344
 
472
345
  styles.forEach((style) => {
473
- style.viewDescriptors.add({ tag: viewTag, name: viewName });
346
+ style.viewDescriptors.add({
347
+ tag: viewTag,
348
+ name: viewName,
349
+ shadowNodeWrapper,
350
+ });
474
351
  if (isJest()) {
475
352
  /**
476
353
  * We need to connect Jest's TestObject instance whose contains just props object
@@ -501,27 +378,16 @@ export default function createAnimatedComponent(
501
378
  tag: viewTag!,
502
379
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
503
380
  name: viewName!,
381
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
382
+ shadowNodeWrapper: shadowNodeWrapper!,
504
383
  });
505
384
  }
506
385
  }
507
386
 
508
- _detachPropUpdater() {
509
- const viewTag = findNodeHandle(this);
510
- NODE_MAPPING.delete(viewTag);
511
- if (NODE_MAPPING.size === 0) {
512
- ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');
513
- }
514
- }
515
-
516
387
  componentDidUpdate(
517
388
  prevProps: AnimatedComponentProps<InitialComponentProps>
518
389
  ) {
519
- this._attachProps(this.props);
520
390
  this._reattachNativeEvents(prevProps);
521
-
522
- this._propsAnimated &&
523
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
524
- this._propsAnimated.setNativeView(this._component!);
525
391
  this._attachAnimatedStyles();
526
392
  }
527
393
 
@@ -578,21 +444,6 @@ export default function createAnimatedComponent(
578
444
  },
579
445
  });
580
446
 
581
- _filterNonAnimatedStyle(inputStyle: StyleProps) {
582
- const style: StyleProps = {};
583
- for (const key in inputStyle) {
584
- const value = inputStyle[key];
585
- if (!hasAnimatedNodes(value)) {
586
- style[key] = value;
587
- } else if (value instanceof AnimatedValue) {
588
- // if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order
589
- // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.
590
- style[key] = value._startingValue;
591
- }
592
- }
593
- return style;
594
- }
595
-
596
447
  _filterNonAnimatedProps(
597
448
  inputProps: AnimatedComponentProps<InitialComponentProps>
598
449
  ): Record<string, unknown> {
@@ -617,9 +468,7 @@ export default function createAnimatedComponent(
617
468
  return style;
618
469
  }
619
470
  });
620
- props[key] = this._filterNonAnimatedStyle(
621
- StyleSheet.flatten(processedStyle)
622
- );
471
+ props[key] = StyleSheet.flatten(processedStyle);
623
472
  } else if (key === 'animatedProps') {
624
473
  const animatedProp = inputProps.animatedProps as Partial<
625
474
  AnimatedComponentProps<AnimatedProps>
@@ -630,12 +479,6 @@ export default function createAnimatedComponent(
630
479
  animatedProp.viewsRef?.add(this);
631
480
  });
632
481
  }
633
- } else if (value instanceof AnimatedEvent) {
634
- // we cannot filter out event listeners completely as some components
635
- // rely on having a callback registered in order to generate events
636
- // alltogether. Therefore we provide a dummy callback here to allow
637
- // native event dispatcher to hijack events.
638
- props[key] = dummyListener;
639
482
  } else if (
640
483
  has('current', value) &&
641
484
  value.current instanceof WorkletEventHandler
@@ -651,14 +494,11 @@ export default function createAnimatedComponent(
651
494
  } else {
652
495
  props[key] = dummyListener;
653
496
  }
654
- } else if (!(value instanceof AnimatedNode)) {
655
- if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {
656
- props[key] = value;
657
- }
658
- } else if (value instanceof AnimatedValue) {
659
- // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order
660
- // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
661
- props[key] = (value as AnimatedValue)._startingValue;
497
+ } else if (
498
+ key !== 'onGestureHandlerStateChange' ||
499
+ !isChromeDebugger()
500
+ ) {
501
+ props[key] = value;
662
502
  }
663
503
  }
664
504
  return props;
@@ -1,11 +1,3 @@
1
- // spread and rest parameters can't be used in worklets right now
2
- /* eslint-disable prefer-rest-params */
3
- /* eslint-disable prefer-spread */
4
-
5
- /* global _WORKLET */
6
-
7
- // @ts-ignore reanimated1/Easing is JS file
8
- import EasingNode from '../reanimated1/Easing';
9
1
  import { Bezier } from './Bezier';
10
2
 
11
3
  /**
@@ -291,49 +283,4 @@ const EasingObject = {
291
283
  inOut,
292
284
  };
293
285
 
294
- // TODO type worklets
295
- function createChecker(
296
- worklet: any,
297
- workletName: string,
298
- prevArgs?: unknown
299
- ): any {
300
- /* should return Animated.Value or worklet */
301
- function checkIfReaOne(): any {
302
- 'worklet';
303
- if (arguments && !_WORKLET) {
304
- for (let i = 0; i < arguments.length; i++) {
305
- const arg = arguments[i];
306
- if (arg && arg.__nodeID) {
307
- console.warn(
308
- `Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`
309
- );
310
- if (prevArgs) {
311
- return EasingNode[workletName]
312
- .apply(undefined, prevArgs)
313
- .apply(undefined, arguments);
314
- }
315
- return EasingNode[workletName].apply(undefined, arguments);
316
- }
317
- }
318
- }
319
- // @ts-ignore this is implicitly any - TODO
320
- const res = worklet.apply(this, arguments);
321
- if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {
322
- return createChecker(res, workletName, arguments);
323
- }
324
- return res;
325
- }
326
- // use original worklet on UI side
327
- checkIfReaOne._closure = worklet._closure;
328
- checkIfReaOne.asString = worklet.asString;
329
- checkIfReaOne.__workletHash = worklet.__workletHash;
330
- checkIfReaOne.__location = worklet.__location;
331
- return checkIfReaOne;
332
- }
333
-
334
- type EasingObjT = Array<keyof typeof EasingObject>;
335
- (Object.keys(EasingObject) as EasingObjT).forEach((key) => {
336
- EasingObject[key] = createChecker(EasingObject[key], key);
337
- });
338
-
339
286
  export const Easing = EasingObject;
@@ -1,4 +1,4 @@
1
- /* global _WORKLET _measure _scrollTo _setGestureState */
1
+ /* global _WORKLET _measure _scrollTo _dispatchCommand _setGestureState */
2
2
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
3
  // @ts-nocheck
4
4
  import { Component } from 'react';
@@ -48,18 +48,50 @@ export function measure(
48
48
  return result;
49
49
  }
50
50
 
51
- export function scrollTo(
51
+ export function dispatchCommand(
52
52
  animatedRef: RefObjectFunction<Component>,
53
- x: number,
54
- y: number,
55
- animated: boolean
53
+ commandName: string,
54
+ args: Array<unknown>
56
55
  ): void {
57
56
  'worklet';
58
57
  if (!_WORKLET || isNativeIndefined) {
59
58
  return;
60
59
  }
61
- const viewTag = animatedRef();
62
- _scrollTo(viewTag, x, y, animated);
60
+ const shadowNodeWrapper = animatedRef();
61
+ _dispatchCommand(shadowNodeWrapper, commandName, args);
62
+ }
63
+
64
+ export let scrollTo: (
65
+ animatedRef: RefObjectFunction<Component>,
66
+ x: number,
67
+ y: number,
68
+ animated: boolean
69
+ ) => void;
70
+
71
+ if (global._IS_FABRIC) {
72
+ scrollTo = (
73
+ animatedRef: RefObjectFunction<Component>,
74
+ x: number,
75
+ y: number,
76
+ animated: boolean
77
+ ) => {
78
+ 'worklet';
79
+ dispatchCommand(animatedRef, 'scrollTo', [x, y, animated]);
80
+ };
81
+ } else {
82
+ scrollTo = (
83
+ animatedRef: RefObjectFunction<Component>,
84
+ x: number,
85
+ y: number,
86
+ animated: boolean
87
+ ) => {
88
+ 'worklet';
89
+ if (!_WORKLET || isNativeIndefined) {
90
+ return;
91
+ }
92
+ const viewTag = animatedRef();
93
+ _scrollTo(viewTag, x, y, animated);
94
+ };
63
95
  }
64
96
 
65
97
  export function setGestureState(handlerTag: number, newState: number): void {
@@ -1,4 +1,4 @@
1
- /* global _updateProps */
1
+ /* global _updatePropsPaper _updatePropsFabric */
2
2
  import { MutableRefObject } from 'react';
3
3
  import { processColor } from './Colors';
4
4
  import { AnimatedStyle, SharedValue, StyleProps } from './commonTypes';
@@ -43,27 +43,46 @@ if (shouldBeUseWeb()) {
43
43
  }
44
44
  };
45
45
  } else {
46
- updatePropsByPlatform = (
47
- viewDescriptors: SharedValue<Descriptor[]>,
48
- updates: StyleProps | AnimatedStyle,
49
- _: ViewRefSet<any> | undefined
50
- ): void => {
51
- 'worklet';
46
+ if (global._IS_FABRIC) {
47
+ updatePropsByPlatform = (
48
+ viewDescriptors: SharedValue<Descriptor[]>,
49
+ updates: StyleProps | AnimatedStyle,
50
+ _: ViewRefSet<any> | undefined
51
+ ): void => {
52
+ 'worklet';
52
53
 
53
- for (const key in updates) {
54
- if (ColorProperties.indexOf(key) !== -1) {
55
- updates[key] = processColor(updates[key]);
54
+ for (const key in updates) {
55
+ if (ColorProperties.indexOf(key) !== -1) {
56
+ updates[key] = processColor(updates[key]);
57
+ }
56
58
  }
57
- }
58
59
 
59
- viewDescriptors.value.forEach((viewDescriptor) => {
60
- _updateProps(
61
- viewDescriptor.tag,
62
- viewDescriptor.name || 'RCTView',
63
- updates
64
- );
65
- });
66
- };
60
+ viewDescriptors.value.forEach((viewDescriptor) => {
61
+ _updatePropsFabric(viewDescriptor.shadowNodeWrapper, updates);
62
+ });
63
+ };
64
+ } else {
65
+ updatePropsByPlatform = (
66
+ viewDescriptors: SharedValue<Descriptor[]>,
67
+ updates: StyleProps | AnimatedStyle,
68
+ _: ViewRefSet<any> | undefined
69
+ ): void => {
70
+ 'worklet';
71
+
72
+ for (const key in updates) {
73
+ if (ColorProperties.indexOf(key) !== -1) {
74
+ updates[key] = processColor(updates[key]);
75
+ }
76
+ }
77
+ viewDescriptors.value.forEach((viewDescriptor) => {
78
+ _updatePropsPaper(
79
+ viewDescriptor.tag,
80
+ viewDescriptor.name || 'RCTView',
81
+ updates
82
+ );
83
+ });
84
+ };
85
+ }
67
86
  }
68
87
 
69
88
  export const updateProps: (
@@ -15,7 +15,6 @@ import {
15
15
  ViewStyle,
16
16
  TextStyle,
17
17
  } from 'react-native';
18
- import { Context } from './hook/commonTypes';
19
18
 
20
19
  export type TransformProperty =
21
20
  | PerpectiveTransform
@@ -47,6 +46,8 @@ export interface SharedValue<T> {
47
46
  value: T;
48
47
  }
49
48
 
49
+ export type Context = Record<string, unknown>;
50
+
50
51
  export interface WorkletFunction {
51
52
  _closure?: Context;
52
53
  __workletHash?: number;
@@ -145,3 +146,5 @@ export type ValueRotation = {
145
146
  };
146
147
 
147
148
  export type SensorValueRotation = SharedValue<ValueRotation>;
149
+
150
+ export type ShadowNodeWrapper = object;
@@ -6,15 +6,18 @@ import { ILayoutAnimationBuilder } from '../layoutReanimation/animationBuilder/c
6
6
 
7
7
  const AnimatedFlatList = createAnimatedComponent(FlatList as any) as any;
8
8
 
9
+ interface AnimatedFlatListProps {
10
+ onLayout: (event: LayoutChangeEvent) => void;
11
+ // implicit `children` prop has been removed in @types/react^18.0.0
12
+ children: React.ReactNode;
13
+ }
14
+
9
15
  const createCellRenderer = (itemLayoutAnimation?: ILayoutAnimationBuilder) => {
10
- const cellRenderer: React.FC<{
11
- onLayout: (event: LayoutChangeEvent) => void;
12
- }> = (props) => {
16
+ const cellRenderer = (props: AnimatedFlatListProps) => {
13
17
  return (
14
18
  <WrappedComponents.View
15
19
  layout={itemLayoutAnimation}
16
- onLayout={props.onLayout}
17
- >
20
+ onLayout={props.onLayout}>
18
21
  {props.children}
19
22
  </WrappedComponents.View>
20
23
  );
@@ -1,4 +1,4 @@
1
- /* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp, _setGlobalConsole */
1
+ /* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp _setGlobalConsole */
2
2
  import NativeReanimatedModule from './NativeReanimated';
3
3
  import { Platform } from 'react-native';
4
4
  import { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';
@@ -99,6 +99,12 @@ export function makeShareable<T>(value: T): T {
99
99
  }
100
100
 
101
101
  export function getViewProp<T>(viewTag: string, propName: string): Promise<T> {
102
+ if (global._IS_FABRIC) {
103
+ throw new Error(
104
+ '[react-native-reanimated] `getViewProp` is not supported on Fabric yet'
105
+ );
106
+ }
107
+
102
108
  return new Promise((resolve, reject) => {
103
109
  return NativeReanimatedModule.getViewProp(
104
110
  viewTag,