react-native-reanimated 2.6.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 (405) 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 +20 -2
  7. package/Common/cpp/Tools/Mapper.cpp +23 -4
  8. package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -46
  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 +196 -41
  29. package/android/src/main/cpp/headers/NativeProxy.h +45 -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/AnimationsManager.java +13 -6
  33. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
  34. package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +26 -10
  35. package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
  36. package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
  37. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
  38. package/ios/LayoutReanimation/REAAnimationsManager.h +1 -1
  39. package/ios/LayoutReanimation/REAAnimationsManager.m +2 -2
  40. package/ios/LayoutReanimation/REASnapshot.m +1 -1
  41. package/ios/LayoutReanimation/REAUIManager.h +1 -1
  42. package/ios/LayoutReanimation/REAUIManager.mm +4 -5
  43. package/ios/REAEventDispatcher.m +1 -2
  44. package/ios/REAModule.h +10 -1
  45. package/ios/REAModule.mm +284 -0
  46. package/ios/REANodesManager.h +27 -52
  47. package/ios/{REANodesManager.m → REANodesManager.mm} +92 -226
  48. package/ios/native/NativeMethods.h +1 -3
  49. package/ios/native/NativeMethods.mm +1 -1
  50. package/ios/native/NativeProxy.h +2 -2
  51. package/ios/native/NativeProxy.mm +162 -32
  52. package/ios/native/REAIOSErrorHandler.h +2 -4
  53. package/ios/native/REAIOSErrorHandler.mm +1 -1
  54. package/ios/native/REAIOSLogger.h +1 -3
  55. package/ios/native/REAIOSLogger.mm +1 -1
  56. package/ios/native/REAIOSScheduler.h +1 -3
  57. package/ios/native/REAIOSScheduler.mm +2 -2
  58. package/ios/native/REAInitializer.h +0 -7
  59. package/ios/native/REAInitializer.mm +14 -6
  60. package/ios/native/UIResponder+Reanimated.h +3 -1
  61. package/ios/native/UIResponder+Reanimated.mm +6 -4
  62. package/ios/sensor/ReanimatedSensor.h +1 -1
  63. package/ios/sensor/ReanimatedSensor.m +1 -1
  64. package/ios/sensor/ReanimatedSensorContainer.h +1 -1
  65. package/ios/sensor/ReanimatedSensorContainer.m +2 -2
  66. package/lib/Animated.js +0 -13
  67. package/lib/ConfigHelper.js +0 -1
  68. package/lib/createAnimatedComponent.js +30 -169
  69. package/lib/index.js +0 -13
  70. package/lib/reanimated2/Easing.js +8 -44
  71. package/lib/reanimated2/NativeMethods.js +20 -3
  72. package/lib/reanimated2/UpdateProps.js +25 -10
  73. package/lib/reanimated2/core.js +4 -37
  74. package/lib/reanimated2/fabricUtils.js +18 -0
  75. package/lib/reanimated2/globals.d.ts +18 -3
  76. package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
  77. package/lib/reanimated2/hook/utils.js +0 -5
  78. package/lib/reanimated2/interpolateColor.js +5 -2
  79. package/lib/reanimated2/interpolation.js +0 -15
  80. package/lib/reanimated2/js-reanimated/index.js +3 -0
  81. package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
  82. package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
  83. package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
  84. package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
  85. package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
  86. package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
  87. package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
  88. package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
  89. package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
  90. package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
  91. package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
  92. package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
  93. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
  94. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
  95. package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
  96. package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
  97. package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
  98. package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
  99. package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
  100. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
  101. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
  102. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
  103. package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
  104. package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
  105. package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
  106. package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
  107. package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
  108. package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
  109. package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
  110. package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
  111. package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
  112. package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
  113. package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -2
  114. package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
  115. package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
  116. package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
  117. package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
  118. package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
  119. package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
  120. package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
  121. package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
  122. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
  123. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
  124. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
  125. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
  126. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +1 -3
  127. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
  128. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
  129. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
  130. package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
  131. package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
  132. package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
  133. package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
  134. package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
  135. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
  136. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
  137. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
  138. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
  139. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
  140. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
  141. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
  142. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
  143. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
  144. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
  145. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
  146. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
  147. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
  148. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
  149. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
  150. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
  151. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
  152. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
  153. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
  154. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
  155. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
  156. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
  157. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
  158. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
  159. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
  160. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
  161. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
  162. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
  163. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
  164. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
  165. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
  166. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
  167. package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
  168. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
  169. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
  170. package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
  171. package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
  172. package/package.json +10 -10
  173. package/plugin.js +29 -33
  174. package/react-native-reanimated.d.ts +15 -3
  175. package/src/Animated.js +0 -13
  176. package/src/ConfigHelper.ts +0 -1
  177. package/src/createAnimatedComponent.tsx +37 -197
  178. package/src/reanimated2/Easing.ts +8 -55
  179. package/src/reanimated2/NativeMethods.ts +39 -7
  180. package/src/reanimated2/UpdateProps.ts +38 -19
  181. package/src/reanimated2/commonTypes.ts +4 -2
  182. package/src/reanimated2/component/FlatList.tsx +8 -5
  183. package/src/reanimated2/core.ts +7 -48
  184. package/src/reanimated2/fabricUtils.ts +27 -0
  185. package/src/reanimated2/globals.d.ts +18 -3
  186. package/src/reanimated2/hook/commonTypes.ts +4 -2
  187. package/src/reanimated2/hook/index.ts +1 -1
  188. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  189. package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
  190. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
  191. package/src/reanimated2/hook/useAnimatedSensor.ts +1 -3
  192. package/src/reanimated2/hook/utils.ts +2 -11
  193. package/src/reanimated2/interpolateColor.ts +6 -2
  194. package/src/reanimated2/interpolation.ts +1 -26
  195. package/src/reanimated2/js-reanimated/index.ts +5 -0
  196. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  197. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  198. package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
  199. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  200. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  201. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  202. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  203. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  204. package/android/.gradle/7.2/gc.properties +0 -0
  205. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  206. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  207. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  208. package/android/.gradle/checksums/checksums.lock +0 -0
  209. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  210. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  211. package/android/.gradle/vcs-1/gc.properties +0 -0
  212. package/android/react-native-reanimated-64-hermes.aar +0 -0
  213. package/android/react-native-reanimated-64-jsc.aar +0 -0
  214. package/android/react-native-reanimated-65-hermes.aar +0 -0
  215. package/android/react-native-reanimated-65-jsc.aar +0 -0
  216. package/android/react-native-reanimated-66-hermes.aar +0 -0
  217. package/android/react-native-reanimated-66-jsc.aar +0 -0
  218. package/android/react-native-reanimated-67-hermes.aar +0 -0
  219. package/android/react-native-reanimated-67-jsc.aar +0 -0
  220. package/android/react-native-reanimated-68-hermes.aar +0 -0
  221. package/android/react-native-reanimated-68-jsc.aar +0 -0
  222. package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
  223. package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
  224. package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
  225. package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
  226. package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
  227. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
  228. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
  229. package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
  230. package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
  231. package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
  232. package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
  233. package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
  234. package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
  235. package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
  236. package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
  237. package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
  238. package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
  239. package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
  240. package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
  241. package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
  242. package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
  243. package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
  244. package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
  245. package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
  246. package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
  247. package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
  248. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
  249. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
  250. package/ios/Nodes/REAAlwaysNode.h +0 -4
  251. package/ios/Nodes/REAAlwaysNode.m +0 -35
  252. package/ios/Nodes/REABezierNode.h +0 -5
  253. package/ios/Nodes/REABezierNode.m +0 -104
  254. package/ios/Nodes/REABlockNode.h +0 -5
  255. package/ios/Nodes/REABlockNode.m +0 -25
  256. package/ios/Nodes/REACallFuncNode.h +0 -6
  257. package/ios/Nodes/REACallFuncNode.m +0 -69
  258. package/ios/Nodes/REAClockNodes.h +0 -19
  259. package/ios/Nodes/REAClockNodes.m +0 -118
  260. package/ios/Nodes/REAConcatNode.h +0 -5
  261. package/ios/Nodes/REAConcatNode.m +0 -32
  262. package/ios/Nodes/REACondNode.h +0 -5
  263. package/ios/Nodes/REACondNode.m +0 -36
  264. package/ios/Nodes/READebugNode.h +0 -5
  265. package/ios/Nodes/READebugNode.m +0 -30
  266. package/ios/Nodes/REAEventNode.h +0 -9
  267. package/ios/Nodes/REAEventNode.m +0 -35
  268. package/ios/Nodes/REAFunctionNode.h +0 -6
  269. package/ios/Nodes/REAFunctionNode.m +0 -24
  270. package/ios/Nodes/REAJSCallNode.h +0 -5
  271. package/ios/Nodes/REAJSCallNode.m +0 -30
  272. package/ios/Nodes/REANode.h +0 -40
  273. package/ios/Nodes/REANode.m +0 -155
  274. package/ios/Nodes/REAOperatorNode.h +0 -5
  275. package/ios/Nodes/REAOperatorNode.m +0 -115
  276. package/ios/Nodes/REAParamNode.h +0 -10
  277. package/ios/Nodes/REAParamNode.m +0 -79
  278. package/ios/Nodes/REAPropsNode.h +0 -9
  279. package/ios/Nodes/REAPropsNode.m +0 -98
  280. package/ios/Nodes/REASetNode.h +0 -5
  281. package/ios/Nodes/REASetNode.m +0 -34
  282. package/ios/Nodes/REAStyleNode.h +0 -5
  283. package/ios/Nodes/REAStyleNode.m +0 -28
  284. package/ios/Nodes/REATransformNode.h +0 -5
  285. package/ios/Nodes/REATransformNode.m +0 -36
  286. package/ios/Nodes/REAValueNode.h +0 -11
  287. package/ios/Nodes/REAValueNode.m +0 -26
  288. package/ios/REAModule.m +0 -185
  289. package/ios/Transitioning/RCTConvert+REATransition.h +0 -12
  290. package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
  291. package/ios/Transitioning/REAAllTransitions.h +0 -26
  292. package/ios/Transitioning/REAAllTransitions.m +0 -297
  293. package/ios/Transitioning/REATransition.h +0 -65
  294. package/ios/Transitioning/REATransition.m +0 -211
  295. package/ios/Transitioning/REATransitionAnimation.h +0 -17
  296. package/ios/Transitioning/REATransitionAnimation.m +0 -80
  297. package/ios/Transitioning/REATransitionManager.h +0 -9
  298. package/ios/Transitioning/REATransitionManager.m +0 -62
  299. package/ios/Transitioning/REATransitionValues.h +0 -15
  300. package/ios/Transitioning/REATransitionValues.m +0 -26
  301. package/lib/reanimated1/Easing.js +0 -231
  302. package/lib/reanimated1/SpringConfig.js +0 -79
  303. package/lib/reanimated1/Transitioning.js +0 -158
  304. package/lib/reanimated1/animations/Animation.js +0 -32
  305. package/lib/reanimated1/animations/SpringUtils.js +0 -199
  306. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  307. package/lib/reanimated1/animations/decay.js +0 -54
  308. package/lib/reanimated1/animations/spring.js +0 -198
  309. package/lib/reanimated1/animations/timing.js +0 -74
  310. package/lib/reanimated1/base.js +0 -13
  311. package/lib/reanimated1/core/AnimatedAlways.js +0 -33
  312. package/lib/reanimated1/core/AnimatedBezier.js +0 -150
  313. package/lib/reanimated1/core/AnimatedBlock.js +0 -52
  314. package/lib/reanimated1/core/AnimatedCall.js +0 -55
  315. package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
  316. package/lib/reanimated1/core/AnimatedClock.js +0 -90
  317. package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
  318. package/lib/reanimated1/core/AnimatedCode.js +0 -32
  319. package/lib/reanimated1/core/AnimatedConcat.js +0 -32
  320. package/lib/reanimated1/core/AnimatedCond.js +0 -57
  321. package/lib/reanimated1/core/AnimatedDebug.js +0 -62
  322. package/lib/reanimated1/core/AnimatedEvent.js +0 -126
  323. package/lib/reanimated1/core/AnimatedFunction.js +0 -55
  324. package/lib/reanimated1/core/AnimatedNode.js +0 -223
  325. package/lib/reanimated1/core/AnimatedOperator.js +0 -103
  326. package/lib/reanimated1/core/AnimatedParam.js +0 -88
  327. package/lib/reanimated1/core/AnimatedProps.js +0 -108
  328. package/lib/reanimated1/core/AnimatedSet.js +0 -38
  329. package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
  330. package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
  331. package/lib/reanimated1/core/AnimatedStyle.js +0 -78
  332. package/lib/reanimated1/core/AnimatedTransform.js +0 -78
  333. package/lib/reanimated1/core/AnimatedValue.js +0 -38
  334. package/lib/reanimated1/core/Core.test.js +0 -30
  335. package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
  336. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  337. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  338. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  339. package/lib/reanimated1/derived/acc.js +0 -11
  340. package/lib/reanimated1/derived/color.js +0 -47
  341. package/lib/reanimated1/derived/diff.js +0 -16
  342. package/lib/reanimated1/derived/diffClamp.js +0 -11
  343. package/lib/reanimated1/derived/evaluateOnce.js +0 -35
  344. package/lib/reanimated1/derived/index.js +0 -8
  345. package/lib/reanimated1/derived/interpolate.js +0 -152
  346. package/lib/reanimated1/derived/interpolateColors.js +0 -62
  347. package/lib/reanimated1/derived/onChange.js +0 -14
  348. package/lib/reanimated1/derived/useCode.js +0 -41
  349. package/lib/reanimated1/index.js +0 -53
  350. package/lib/reanimated1/operators.js +0 -35
  351. package/lib/reanimated1/useValue.js +0 -10
  352. package/lib/reanimated1/val.js +0 -3
  353. package/lib/types/react-native-reanimated-tests.d.ts +0 -1
  354. package/src/reanimated1/Easing.js +0 -231
  355. package/src/reanimated1/SpringConfig.js +0 -79
  356. package/src/reanimated1/Transitioning.js +0 -158
  357. package/src/reanimated1/animations/Animation.js +0 -32
  358. package/src/reanimated1/animations/SpringUtils.js +0 -199
  359. package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  360. package/src/reanimated1/animations/decay.js +0 -54
  361. package/src/reanimated1/animations/spring.js +0 -198
  362. package/src/reanimated1/animations/timing.js +0 -74
  363. package/src/reanimated1/base.js +0 -13
  364. package/src/reanimated1/core/AnimatedAlways.js +0 -33
  365. package/src/reanimated1/core/AnimatedBezier.js +0 -150
  366. package/src/reanimated1/core/AnimatedBlock.js +0 -52
  367. package/src/reanimated1/core/AnimatedCall.js +0 -55
  368. package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
  369. package/src/reanimated1/core/AnimatedClock.js +0 -90
  370. package/src/reanimated1/core/AnimatedClockTest.js +0 -22
  371. package/src/reanimated1/core/AnimatedCode.js +0 -32
  372. package/src/reanimated1/core/AnimatedConcat.js +0 -32
  373. package/src/reanimated1/core/AnimatedCond.js +0 -57
  374. package/src/reanimated1/core/AnimatedDebug.js +0 -62
  375. package/src/reanimated1/core/AnimatedEvent.js +0 -126
  376. package/src/reanimated1/core/AnimatedFunction.js +0 -55
  377. package/src/reanimated1/core/AnimatedNode.js +0 -223
  378. package/src/reanimated1/core/AnimatedOperator.js +0 -103
  379. package/src/reanimated1/core/AnimatedParam.js +0 -88
  380. package/src/reanimated1/core/AnimatedProps.js +0 -108
  381. package/src/reanimated1/core/AnimatedSet.js +0 -38
  382. package/src/reanimated1/core/AnimatedStartClock.js +0 -30
  383. package/src/reanimated1/core/AnimatedStopClock.js +0 -30
  384. package/src/reanimated1/core/AnimatedStyle.js +0 -78
  385. package/src/reanimated1/core/AnimatedTransform.js +0 -78
  386. package/src/reanimated1/core/AnimatedValue.js +0 -38
  387. package/src/reanimated1/core/Core.test.js +0 -30
  388. package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
  389. package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  390. package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  391. package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  392. package/src/reanimated1/derived/acc.js +0 -11
  393. package/src/reanimated1/derived/color.js +0 -47
  394. package/src/reanimated1/derived/diff.js +0 -16
  395. package/src/reanimated1/derived/diffClamp.js +0 -11
  396. package/src/reanimated1/derived/evaluateOnce.js +0 -35
  397. package/src/reanimated1/derived/index.js +0 -8
  398. package/src/reanimated1/derived/interpolate.js +0 -152
  399. package/src/reanimated1/derived/interpolateColors.js +0 -62
  400. package/src/reanimated1/derived/onChange.js +0 -14
  401. package/src/reanimated1/derived/useCode.js +0 -41
  402. package/src/reanimated1/index.js +0 -53
  403. package/src/reanimated1/operators.js +0 -35
  404. package/src/reanimated1/useValue.js +0 -10
  405. package/src/reanimated1/val.js +0 -3
@@ -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
  /**
@@ -109,7 +101,10 @@ function cubic(t: number): number {
109
101
  */
110
102
  function poly(n: number): EasingFn {
111
103
  'worklet';
112
- return (t) => Math.pow(t, n);
104
+ return (t) => {
105
+ 'worklet';
106
+ return Math.pow(t, n);
107
+ };
113
108
  }
114
109
 
115
110
  /**
@@ -171,7 +166,10 @@ function elastic(bounciness = 1): EasingFn {
171
166
  */
172
167
  function back(s = 1.70158): (t: number) => number {
173
168
  'worklet';
174
- return (t) => t * t * ((s + 1) * t - s);
169
+ return (t) => {
170
+ 'worklet';
171
+ return t * t * ((s + 1) * t - s);
172
+ };
175
173
  }
176
174
 
177
175
  /**
@@ -285,49 +283,4 @@ const EasingObject = {
285
283
  inOut,
286
284
  };
287
285
 
288
- // TODO type worklets
289
- function createChecker(
290
- worklet: any,
291
- workletName: string,
292
- prevArgs?: unknown
293
- ): any {
294
- /* should return Animated.Value or worklet */
295
- function checkIfReaOne(): any {
296
- 'worklet';
297
- if (arguments && !_WORKLET) {
298
- for (let i = 0; i < arguments.length; i++) {
299
- const arg = arguments[i];
300
- if (arg && arg.__nodeID) {
301
- console.warn(
302
- `Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`
303
- );
304
- if (prevArgs) {
305
- return EasingNode[workletName]
306
- .apply(undefined, prevArgs)
307
- .apply(undefined, arguments);
308
- }
309
- return EasingNode[workletName].apply(undefined, arguments);
310
- }
311
- }
312
- }
313
- // @ts-ignore this is implicitly any - TODO
314
- const res = worklet.apply(this, arguments);
315
- if (!_WORKLET && res && typeof res === 'function' && res.__worklet) {
316
- return createChecker(res, workletName, arguments);
317
- }
318
- return res;
319
- }
320
- // use original worklet on UI side
321
- checkIfReaOne._closure = worklet._closure;
322
- checkIfReaOne.asString = worklet.asString;
323
- checkIfReaOne.__workletHash = worklet.__workletHash;
324
- checkIfReaOne.__location = worklet.__location;
325
- return checkIfReaOne;
326
- }
327
-
328
- type EasingObjT = Array<keyof typeof EasingObject>;
329
- (Object.keys(EasingObject) as EasingObjT).forEach((key) => {
330
- EasingObject[key] = createChecker(EasingObject[key], key);
331
- });
332
-
333
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,11 +46,12 @@ 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;
53
54
  __optimalization?: number;
54
- __worklet?: boolean;
55
55
  }
56
56
 
57
57
  export interface BasicWorkletFunction<T> extends WorkletFunction {
@@ -146,3 +146,5 @@ export type ValueRotation = {
146
146
  };
147
147
 
148
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,10 +1,9 @@
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';
5
5
  import {
6
6
  BasicWorkletFunction,
7
- WorkletFunction,
8
7
  ComplexWorkletFunction,
9
8
  SharedValue,
10
9
  AnimationObject,
@@ -14,10 +13,6 @@ import {
14
13
  import { Descriptor } from './hook/commonTypes';
15
14
  import JSReanimated from './js-reanimated/JSReanimated';
16
15
 
17
- global.__reanimatedWorkletInit = function (worklet: WorkletFunction) {
18
- worklet.__worklet = true;
19
- };
20
-
21
16
  if (global._setGlobalConsole === undefined) {
22
17
  // it can happen when Reanimated plugin wasn't added, but the user uses the only API from version 1
23
18
  global._setGlobalConsole = () => {
@@ -74,48 +69,6 @@ export const isConfiguredCheck: () => void = () => {
74
69
  }
75
70
  };
76
71
 
77
- function _toArrayReanimated<T>(object: Iterable<T> | ArrayLike<T> | T[]): T[] {
78
- 'worklet';
79
- if (Array.isArray(object)) {
80
- return object;
81
- }
82
- if (
83
- typeof Symbol !== 'undefined' &&
84
- (typeof Symbol === 'function' ? Symbol.iterator : '@@iterator') in
85
- Object(object)
86
- ) {
87
- return Array.from(object);
88
- }
89
- throw new Error(
90
- 'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
91
- );
92
- }
93
-
94
- function _mergeObjectsReanimated(): unknown {
95
- 'worklet';
96
- // we can't use rest parameters in worklets at the moment
97
- // eslint-disable-next-line prefer-rest-params
98
- const arr = Array.from(arguments);
99
- return Object.assign.apply(null, [arr[0], ...arr.slice(1)]);
100
- }
101
-
102
- global.__reanimatedWorkletInit = function (worklet: WorkletFunction) {
103
- worklet.__worklet = true;
104
-
105
- if (worklet._closure) {
106
- const closure = worklet._closure;
107
- Object.keys(closure).forEach((key) => {
108
- if (key === '_toConsumableArray') {
109
- closure[key] = _toArrayReanimated;
110
- }
111
-
112
- if (key === '_objectSpread') {
113
- closure[key] = _mergeObjectsReanimated;
114
- }
115
- });
116
- }
117
- };
118
-
119
72
  function pushFrame(frame: (timestamp: Timestamp) => void): void {
120
73
  (NativeReanimatedModule as JSReanimated).pushFrame(frame);
121
74
  }
@@ -146,6 +99,12 @@ export function makeShareable<T>(value: T): T {
146
99
  }
147
100
 
148
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
+
149
108
  return new Promise((resolve, reject) => {
150
109
  return NativeReanimatedModule.getViewProp(
151
110
  viewTag,
@@ -0,0 +1,27 @@
1
+ /* eslint-disable camelcase */
2
+
3
+ import { ShadowNodeWrapper } from './commonTypes';
4
+
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ let findHostInstance_DEPRECATED = (_ref: React.Component) => null;
7
+
8
+ try {
9
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
10
+ findHostInstance_DEPRECATED =
11
+ require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
12
+ } catch (e) {
13
+ // do nothing
14
+ }
15
+
16
+ export function getShadowNodeWrapperFromHostInstance(
17
+ hostInstance: unknown
18
+ ): ShadowNodeWrapper {
19
+ // @ts-ignore Fabric
20
+ return hostInstance._internalInstanceHandle.stateNode.node;
21
+ }
22
+
23
+ export function getShadowNodeWrapperFromRef(
24
+ ref: React.Component
25
+ ): ShadowNodeWrapper {
26
+ return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));
27
+ }
@@ -1,9 +1,11 @@
1
- import { AnimatedStyle, StyleProps, WorkletFunction } from './commonTypes';
1
+ import { AnimatedStyle, StyleProps } from './commonTypes';
2
2
  import { ReanimatedConsole } from './core';
3
+ import { ShadowNodeWrapper } from './hook/commonTypes';
3
4
  import { MeasuredDimensions } from './NativeMethods';
4
5
  import { NativeReanimated } from './NativeReanimated/NativeReanimated';
5
6
  declare global {
6
7
  const _WORKLET: boolean;
8
+ const _IS_FABRIC: boolean;
7
9
  const _frameTimestamp: number;
8
10
  const _eventTimestamp: number;
9
11
  const _setGlobalConsole: (console?: ReanimatedConsole) => void;
@@ -14,11 +16,18 @@ declare global {
14
16
  flag: { value: boolean; _value: boolean }
15
17
  ) => void;
16
18
  const _setGestureState: (handlerTag: number, newState: number) => void;
17
- const _updateProps: (
19
+ const _updatePropsPaper: (
18
20
  tag: number,
19
21
  name: string,
20
22
  updates: StyleProps | AnimatedStyle
21
23
  ) => void;
24
+ const _updatePropsFabric: (
25
+ shadowNodeWrapper: ShadowNodeWrapper,
26
+ props: StyleProps | AnimatedStyle
27
+ ) => void;
28
+ const _removeShadowNodeFromRegistry: (
29
+ shadowNodeWrapper: ShadowNodeWrapper
30
+ ) => void;
22
31
  const _measure: (viewTag: number) => MeasuredDimensions;
23
32
  const _scrollTo: (
24
33
  viewTag: number,
@@ -26,21 +35,27 @@ declare global {
26
35
  y: number,
27
36
  animated: boolean
28
37
  ) => void;
38
+ const _dispatchCommand: (
39
+ shadowNodeWrapper: ShadowNodeWrapper,
40
+ commandName: string,
41
+ args: Array<unknown>
42
+ ) => void;
29
43
  const _chronoNow: () => number;
30
44
  const ReanimatedDataMock: {
31
45
  now: () => number;
32
46
  };
33
47
  namespace NodeJS {
34
48
  interface Global {
35
- __reanimatedWorkletInit: (worklet: WorkletFunction) => void;
36
49
  _setGlobalConsole: (console?: ReanimatedConsole) => void;
37
50
  _log: (s: string) => void;
38
51
  _setGestureState: () => void;
39
52
  _WORKLET: boolean;
53
+ _IS_FABRIC: boolean;
40
54
  __reanimatedModuleProxy: NativeReanimated;
41
55
  _frameTimestamp: number | null;
42
56
  _measure: () => MeasuredDimensions;
43
57
  _scrollTo: () => void;
58
+ _dispatchCommand: () => void;
44
59
  _chronoNow: () => number;
45
60
  performance: { now: () => number };
46
61
  LayoutAnimationRepository: {
@@ -1,14 +1,16 @@
1
- export type DependencyList = Array<unknown> | undefined;
1
+ import { Context, ShadowNodeWrapper } from '../commonTypes';
2
2
 
3
- export type Context = Record<string, unknown>;
3
+ export type DependencyList = Array<unknown> | undefined;
4
4
 
5
5
  export interface ContextWithDependencies<TContext extends Context> {
6
6
  context: TContext;
7
7
  savedDependencies: DependencyList;
8
8
  }
9
+
9
10
  export interface Descriptor {
10
11
  tag: number;
11
12
  name: string;
13
+ shadowNodeWrapper: ShadowNodeWrapper;
12
14
  }
13
15
 
14
16
  export interface RefObjectFunction<T> {
@@ -1,4 +1,4 @@
1
- export { DependencyList, Context } from './commonTypes';
1
+ export { DependencyList } from './commonTypes';
2
2
  export {
3
3
  useAnimatedProps,
4
4
  useEvent,
@@ -1,7 +1,7 @@
1
1
  import { MutableRefObject } from 'react';
2
- import { WorkletFunction } from '../commonTypes';
2
+ import { Context, WorkletFunction } from '../commonTypes';
3
3
  import WorkletEventHandler from '../WorkletEventHandler';
4
- import { Context, DependencyList } from './commonTypes';
4
+ import { DependencyList } from './commonTypes';
5
5
  import { useEvent, useHandler } from './Hooks';
6
6
 
7
7
  interface Handler<T, TContext extends Context> extends WorkletFunction {
@@ -1,18 +1,23 @@
1
1
  import { Component, useRef } from 'react';
2
- import { getTag } from '../NativeMethods';
3
2
  import { useSharedValue } from './useSharedValue';
4
3
  import { RefObjectFunction } from './commonTypes';
4
+ import { ShadowNodeWrapper } from '../commonTypes';
5
+ import { getTag } from '../NativeMethods';
6
+ import { getShadowNodeWrapperFromHostInstance } from '../fabricUtils';
5
7
 
6
8
  export function useAnimatedRef<T extends Component>(): RefObjectFunction<T> {
7
- const tag = useSharedValue<number | null>(-1);
9
+ const tag = useSharedValue<number | ShadowNodeWrapper | null>(-1);
8
10
  const ref = useRef<RefObjectFunction<T>>();
11
+ const isFabric = global._IS_FABRIC;
9
12
 
10
13
  if (!ref.current) {
11
14
  const fun: RefObjectFunction<T> = <RefObjectFunction<T>>((component) => {
12
15
  'worklet';
13
16
  // enters when ref is set by attaching to a component
14
17
  if (component) {
15
- tag.value = getTag(component);
18
+ tag.value = isFabric
19
+ ? getShadowNodeWrapperFromHostInstance(component)
20
+ : getTag(component);
16
21
  fun.current = component;
17
22
  }
18
23
  return tag.value;
@@ -1,8 +1,8 @@
1
1
  import { RefObject } from 'react';
2
2
  import { NativeScrollEvent } from 'react-native';
3
- import { NativeEvent, WorkletFunction } from '../commonTypes';
3
+ import { Context, NativeEvent, WorkletFunction } from '../commonTypes';
4
4
  import WorkletEventHandler from '../WorkletEventHandler';
5
- import { Context, DependencyList } from './commonTypes';
5
+ import { DependencyList } from './commonTypes';
6
6
  import { useEvent, useHandler } from './Hooks';
7
7
 
8
8
  export interface ScrollHandler<TContext extends Context>
@@ -19,9 +19,7 @@ export type AnimatedSensor = {
19
19
  sensor: SensorValue3D | SensorValueRotation | null;
20
20
  unregister: () => void;
21
21
  isAvailable: boolean;
22
- config: {
23
- interval: number;
24
- };
22
+ config: SensorConfig;
25
23
  };
26
24
 
27
25
  export function useAnimatedSensor(
@@ -2,6 +2,7 @@ import { MutableRefObject, useEffect, useRef } from 'react';
2
2
  import { processColor } from '../Colors';
3
3
  import {
4
4
  AnimatedStyle,
5
+ Context,
5
6
  NativeEvent,
6
7
  NestedObjectValues,
7
8
  StyleProps,
@@ -12,11 +13,7 @@ import { makeRemote } from '../core';
12
13
  import { isWeb, isJest } from '../PlatformChecker';
13
14
  import { colorProps } from '../UpdateProps';
14
15
  import WorkletEventHandler from '../WorkletEventHandler';
15
- import {
16
- Context,
17
- ContextWithDependencies,
18
- DependencyList,
19
- } from './commonTypes';
16
+ import { ContextWithDependencies, DependencyList } from './commonTypes';
20
17
 
21
18
  interface Handler<T, TContext extends Context> extends WorkletFunction {
22
19
  (event: T, context: TContext): void;
@@ -44,12 +41,6 @@ export function useEvent<T extends NativeEvent<T>>(
44
41
  initRef.current.updateWorklet(handler);
45
42
  }
46
43
 
47
- useEffect(() => {
48
- return () => {
49
- initRef.current = null;
50
- };
51
- }, []);
52
-
53
44
  return initRef;
54
45
  }
55
46
 
@@ -10,11 +10,15 @@ import {
10
10
  } from './Colors';
11
11
  import { makeMutable } from './core';
12
12
  import { interpolate } from './interpolation';
13
- // @ts-ignore JS file
14
- import { Extrapolate } from '../reanimated1/derived';
15
13
  import { SharedValue } from './commonTypes';
16
14
  import { useSharedValue } from './hook/useSharedValue';
17
15
 
16
+ export const Extrapolate = {
17
+ EXTEND: 'extend',
18
+ CLAMP: 'clamp',
19
+ IDENTITY: 'identity',
20
+ };
21
+
18
22
  const interpolateColorsHSV = (
19
23
  value: number,
20
24
  inputRange: readonly number[],
@@ -1,16 +1,9 @@
1
- // @ts-ignore JS file
2
- import interpolateNode from '../reanimated1/derived/interpolate';
3
-
4
1
  export enum Extrapolation {
5
2
  IDENTITY = 'identity',
6
3
  CLAMP = 'clamp',
7
4
  EXTEND = 'extend',
8
5
  }
9
6
 
10
- export interface InterpolatedNode {
11
- __nodeId: number;
12
- }
13
-
14
7
  interface InterpolationNarrowedInput {
15
8
  leftEdgeInput: number;
16
9
  rightEdgeInput: number;
@@ -34,11 +27,6 @@ export type ExtrapolationType =
34
27
  | string
35
28
  | undefined;
36
29
 
37
- function isNode(x: number | InterpolatedNode): x is InterpolatedNode {
38
- 'worklet';
39
- return (x as InterpolatedNode).__nodeId !== undefined;
40
- }
41
-
42
30
  function getVal(
43
31
  type: Extrapolation,
44
32
  coef: number,
@@ -156,7 +144,7 @@ function internalInterpolate(
156
144
  // TODO: support default values in worklets:
157
145
  // e.g. function interpolate(x, input, output, type = Extrapolatation.CLAMP)
158
146
  export function interpolate(
159
- x: number | InterpolatedNode,
147
+ x: number,
160
148
  input: readonly number[],
161
149
  output: readonly number[],
162
150
  type?: ExtrapolationType
@@ -169,19 +157,6 @@ export function interpolate(
169
157
  }
170
158
 
171
159
  const extrapolationConfig = validateType(type);
172
-
173
- if (isNode(x)) {
174
- console.warn(
175
- `interpolate() was renamed to interpolateNode() in Reanimated 2. Please use interpolateNode() instead`
176
- );
177
- return interpolateNode(x, {
178
- inputRange: input,
179
- outputRange: output,
180
- extrapolateLeft: extrapolationConfig.extrapolateLeft,
181
- extrapolateRight: extrapolationConfig.extrapolateRight,
182
- });
183
- }
184
-
185
160
  const length = input.length;
186
161
  const narrowedInput: InterpolationNarrowedInput = {
187
162
  leftEdgeInput: input[0],
@@ -36,6 +36,11 @@ if (shouldBeUseWeb()) {
36
36
  "[Reanimated] You can't use `scrollTo` with Chrome Debugger or with web version"
37
37
  );
38
38
  };
39
+ global._dispatchCommand = () => {
40
+ console.warn(
41
+ "[Reanimated] You can't use `scrollTo` or `dispatchCommand` methods with Chrome Debugger or with web version"
42
+ );
43
+ };
39
44
  global._setGestureState = () => {
40
45
  console.warn(
41
46
  "[Reanimated] You can't use `setGestureState` with Chrome Debugger or with web version"