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,14 +1,5 @@
1
1
  import React from 'react';
2
2
  import { findNodeHandle, Platform, StyleSheet } from 'react-native';
3
- import ReanimatedEventEmitter from './ReanimatedEventEmitter';
4
- // @ts-ignore JS file
5
- import AnimatedEvent from './reanimated1/core/AnimatedEvent';
6
- // @ts-ignore JS file
7
- import AnimatedNode from './reanimated1/core/AnimatedNode';
8
- // @ts-ignore JS file
9
- import AnimatedValue from './reanimated1/core/AnimatedValue';
10
- // @ts-ignore JS file
11
- import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
12
3
  import WorkletEventHandler from './reanimated2/WorkletEventHandler';
13
4
  import setAndForwardRef from './setAndForwardRef';
14
5
  import './reanimated2/layoutReanimation/LayoutAnimationRepository';
@@ -19,27 +10,11 @@ import { makeMutable, runOnUI, enableLayoutAnimations, } from './reanimated2/cor
19
10
  import { DefaultEntering, DefaultExiting, DefaultLayout, } from './reanimated2/layoutReanimation/defaultAnimations/Default';
20
11
  import { isJest, isChromeDebugger, shouldBeUseWeb, } from './reanimated2/PlatformChecker';
21
12
  import { initialUpdaterRun } from './reanimated2/animation';
22
- const NODE_MAPPING = new Map();
23
- function listener(data) {
24
- const component = NODE_MAPPING.get(data.viewTag);
25
- component && component._updateFromNative(data.props);
26
- }
13
+ import { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';
27
14
  function dummyListener() {
28
15
  // empty listener we use to assign to listener properties for which animated
29
16
  // event is used.
30
17
  }
31
- function hasAnimatedNodes(value) {
32
- if (value instanceof AnimatedNode) {
33
- return true;
34
- }
35
- if (Array.isArray(value)) {
36
- return value.some((item) => hasAnimatedNodes(item));
37
- }
38
- if (value && typeof value === 'object') {
39
- return Object.keys(value).some((key) => hasAnimatedNodes(value[key]));
40
- }
41
- return false;
42
- }
43
18
  function flattenArray(array) {
44
19
  if (!Array.isArray(array)) {
45
20
  return [array];
@@ -85,35 +60,12 @@ export default function createAnimatedComponent(Component, options) {
85
60
  class AnimatedComponent extends React.Component {
86
61
  constructor(props) {
87
62
  super(props);
88
- this._invokeAnimatedPropsCallbackOnMount = false;
89
63
  this._styles = null;
90
64
  this._viewTag = -1;
91
65
  this._isFirstRender = true;
92
66
  this.animatedStyle = { value: {} };
93
67
  this.initialStyle = {};
94
68
  this._component = null;
95
- // The system is best designed when setNativeProps is implemented. It is
96
- // able to avoid re-rendering and directly set the attributes that changed.
97
- // However, setNativeProps can only be implemented on native components
98
- // If you want to animate a composite component, you need to re-render it.
99
- // In this case, we have a fallback that uses forceUpdate.
100
- this._animatedPropsCallback = () => {
101
- if (this._component == null) {
102
- // AnimatedProps is created in will-mount because it's used in render.
103
- // But this callback may be invoked before mount in async mode,
104
- // In which case we should defer the setNativeProps() call.
105
- // React may throw away uncommitted work in async mode,
106
- // So a deferred call won't always be invoked.
107
- this._invokeAnimatedPropsCallbackOnMount = true;
108
- }
109
- else if (typeof this._component.setNativeProps !== 'function') {
110
- this.forceUpdate();
111
- }
112
- else {
113
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
114
- this._component.setNativeProps(this._propsAnimated.__getValue());
115
- }
116
- };
117
69
  this._setComponentRef = setAndForwardRef({
118
70
  getForwardedRef: () => this.props.forwardedRef,
119
71
  setLocalRef: (ref) => {
@@ -156,60 +108,34 @@ export default function createAnimatedComponent(Component, options) {
156
108
  }
157
109
  },
158
110
  });
159
- this._attachProps(this.props);
160
111
  if (isJest()) {
161
112
  this.animatedStyle = { value: {} };
162
113
  }
163
114
  this.sv = makeMutable({});
164
115
  }
165
116
  componentWillUnmount() {
166
- this._detachPropUpdater();
167
- this._propsAnimated && this._propsAnimated.__detach();
168
117
  this._detachNativeEvents();
169
118
  this._detachStyles();
170
119
  this.sv = null;
171
120
  }
172
121
  componentDidMount() {
173
- if (this._invokeAnimatedPropsCallbackOnMount) {
174
- this._invokeAnimatedPropsCallbackOnMount = false;
175
- this._animatedPropsCallback();
176
- }
177
- this._propsAnimated &&
178
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
179
- this._propsAnimated.setNativeView(this._component);
180
122
  this._attachNativeEvents();
181
- this._attachPropUpdater();
182
123
  this._attachAnimatedStyles();
183
124
  }
184
- _getEventViewRef() {
185
- var _a;
186
- // Make sure to get the scrollable node for components that implement
187
- // `ScrollResponder.Mixin`.
188
- return ((_a = this._component) === null || _a === void 0 ? void 0 : _a.getScrollableNode) ? this._component.getScrollableNode()
189
- : this._component;
190
- }
191
125
  _attachNativeEvents() {
192
- const node = this._getEventViewRef();
193
- const viewTag = findNodeHandle((options === null || options === void 0 ? void 0 : options.setNativeProps) ? this : node);
126
+ const viewTag = findNodeHandle(this);
194
127
  for (const key in this.props) {
195
128
  const prop = this.props[key];
196
- if (prop instanceof AnimatedEvent) {
197
- prop.attachEvent(node, key);
198
- }
199
- else if (has('current', prop) &&
129
+ if (has('current', prop) &&
200
130
  prop.current instanceof WorkletEventHandler) {
201
131
  prop.current.registerForEvents(viewTag, key);
202
132
  }
203
133
  }
204
134
  }
205
135
  _detachNativeEvents() {
206
- const node = this._getEventViewRef();
207
136
  for (const key in this.props) {
208
137
  const prop = this.props[key];
209
- if (prop instanceof AnimatedEvent) {
210
- prop.detachEvent(node, key);
211
- }
212
- else if (has('current', prop) &&
138
+ if (has('current', prop) &&
213
139
  prop.current instanceof WorkletEventHandler) {
214
140
  prop.current.unregisterFromEvents();
215
141
  }
@@ -231,19 +157,20 @@ export default function createAnimatedComponent(Component, options) {
231
157
  if ((_a = this.props.animatedProps) === null || _a === void 0 ? void 0 : _a.viewDescriptors) {
232
158
  this.props.animatedProps.viewDescriptors.remove(this._viewTag);
233
159
  }
160
+ if (global._IS_FABRIC) {
161
+ const shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
162
+ runOnUI(() => {
163
+ 'worklet';
164
+ _removeShadowNodeFromRegistry(shadowNodeWrapper);
165
+ })();
166
+ }
234
167
  }
235
168
  }
236
169
  _reattachNativeEvents(prevProps) {
237
- const node = this._getEventViewRef();
238
- const attached = new Set();
239
- const nextEvts = new Set();
240
170
  let viewTag;
241
171
  for (const key in this.props) {
242
172
  const prop = this.props[key];
243
- if (prop instanceof AnimatedEvent) {
244
- nextEvts.add(prop.__nodeID);
245
- }
246
- else if (has('current', prop) &&
173
+ if (has('current', prop) &&
247
174
  prop.current instanceof WorkletEventHandler) {
248
175
  if (viewTag === undefined) {
249
176
  viewTag = prop.current.viewTag;
@@ -252,17 +179,7 @@ export default function createAnimatedComponent(Component, options) {
252
179
  }
253
180
  for (const key in prevProps) {
254
181
  const prop = this.props[key];
255
- if (prop instanceof AnimatedEvent) {
256
- if (!nextEvts.has(prop.__nodeID)) {
257
- // event was in prev props but not in current props, we detach
258
- prop.detachEvent(node, key);
259
- }
260
- else {
261
- // event was in prev and is still in current props
262
- attached.add(prop.__nodeID);
263
- }
264
- }
265
- else if (has('current', prop) &&
182
+ if (has('current', prop) &&
266
183
  prop.current instanceof WorkletEventHandler &&
267
184
  prop.current.reattachNeeded) {
268
185
  prop.current.unregisterFromEvents();
@@ -270,12 +187,7 @@ export default function createAnimatedComponent(Component, options) {
270
187
  }
271
188
  for (const key in this.props) {
272
189
  const prop = this.props[key];
273
- if (prop instanceof AnimatedEvent &&
274
- !attached.has(prop.__nodeID)) {
275
- // not yet attached
276
- prop.attachEvent(node, key);
277
- }
278
- else if (has('current', prop) &&
190
+ if (has('current', prop) &&
279
191
  prop.current instanceof WorkletEventHandler &&
280
192
  prop.current.reattachNeeded) {
281
193
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -284,22 +196,6 @@ export default function createAnimatedComponent(Component, options) {
284
196
  }
285
197
  }
286
198
  }
287
- _attachProps(nextProps) {
288
- const oldPropsAnimated = this._propsAnimated;
289
- this._propsAnimated = createOrReusePropsNode(nextProps, this._animatedPropsCallback, oldPropsAnimated);
290
- // If prop node has been reused we don't need to call into "__detach"
291
- if (oldPropsAnimated !== this._propsAnimated) {
292
- // When you call detach, it removes the element from the parent list
293
- // of children. If it goes to 0, then the parent also detaches itself
294
- // and so on.
295
- // An optimization is to attach the new elements and THEN detach the old
296
- // ones instead of detaching and THEN attaching.
297
- // This way the intermediate state isn't to go to 0 and trigger
298
- // this expensive recursive detaching to then re-attach everything on
299
- // the very next operation.
300
- oldPropsAnimated && oldPropsAnimated.__detach();
301
- }
302
- }
303
199
  _updateFromNative(props) {
304
200
  var _a, _b;
305
201
  if (options === null || options === void 0 ? void 0 : options.setNativeProps) {
@@ -311,13 +207,6 @@ export default function createAnimatedComponent(Component, options) {
311
207
  (_b = (_a = this._component) === null || _a === void 0 ? void 0 : _a.setNativeProps) === null || _b === void 0 ? void 0 : _b.call(_a, props);
312
208
  }
313
209
  }
314
- _attachPropUpdater() {
315
- const viewTag = findNodeHandle(this);
316
- NODE_MAPPING.set(viewTag, this);
317
- if (NODE_MAPPING.size === 1) {
318
- ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);
319
- }
320
- }
321
210
  _attachAnimatedStyles() {
322
211
  var _a, _b, _c;
323
212
  const styles = this.props.style
@@ -329,9 +218,11 @@ export default function createAnimatedComponent(Component, options) {
329
218
  this._animatedProps = this.props.animatedProps;
330
219
  let viewTag;
331
220
  let viewName;
221
+ let shadowNodeWrapper = null;
332
222
  if (Platform.OS === 'web') {
333
223
  viewTag = findNodeHandle(this);
334
224
  viewName = null;
225
+ shadowNodeWrapper = null;
335
226
  }
336
227
  else {
337
228
  // 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
@@ -351,6 +242,9 @@ export default function createAnimatedComponent(Component, options) {
351
242
  if (hasReanimated2Props && (hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig)) {
352
243
  adaptViewConfig(hostInstance.viewConfig);
353
244
  }
245
+ if (global._IS_FABRIC) {
246
+ shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
247
+ }
354
248
  }
355
249
  this._viewTag = viewTag;
356
250
  // remove old styles
@@ -370,7 +264,11 @@ export default function createAnimatedComponent(Component, options) {
370
264
  }
371
265
  }
372
266
  styles.forEach((style) => {
373
- style.viewDescriptors.add({ tag: viewTag, name: viewName });
267
+ style.viewDescriptors.add({
268
+ tag: viewTag,
269
+ name: viewName,
270
+ shadowNodeWrapper,
271
+ });
374
272
  if (isJest()) {
375
273
  /**
376
274
  * We need to connect Jest's TestObject instance whose contains just props object
@@ -394,39 +292,15 @@ export default function createAnimatedComponent(Component, options) {
394
292
  tag: viewTag,
395
293
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
396
294
  name: viewName,
295
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
296
+ shadowNodeWrapper: shadowNodeWrapper,
397
297
  });
398
298
  }
399
299
  }
400
- _detachPropUpdater() {
401
- const viewTag = findNodeHandle(this);
402
- NODE_MAPPING.delete(viewTag);
403
- if (NODE_MAPPING.size === 0) {
404
- ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');
405
- }
406
- }
407
300
  componentDidUpdate(prevProps) {
408
- this._attachProps(this.props);
409
301
  this._reattachNativeEvents(prevProps);
410
- this._propsAnimated &&
411
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
412
- this._propsAnimated.setNativeView(this._component);
413
302
  this._attachAnimatedStyles();
414
303
  }
415
- _filterNonAnimatedStyle(inputStyle) {
416
- const style = {};
417
- for (const key in inputStyle) {
418
- const value = inputStyle[key];
419
- if (!hasAnimatedNodes(value)) {
420
- style[key] = value;
421
- }
422
- else if (value instanceof AnimatedValue) {
423
- // 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
424
- // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.
425
- style[key] = value._startingValue;
426
- }
427
- }
428
- return style;
429
- }
430
304
  _filterNonAnimatedProps(inputProps) {
431
305
  const props = {};
432
306
  for (const key in inputProps) {
@@ -447,7 +321,7 @@ export default function createAnimatedComponent(Component, options) {
447
321
  return style;
448
322
  }
449
323
  });
450
- props[key] = this._filterNonAnimatedStyle(StyleSheet.flatten(processedStyle));
324
+ props[key] = StyleSheet.flatten(processedStyle);
451
325
  }
452
326
  else if (key === 'animatedProps') {
453
327
  const animatedProp = inputProps.animatedProps;
@@ -459,13 +333,6 @@ export default function createAnimatedComponent(Component, options) {
459
333
  });
460
334
  }
461
335
  }
462
- else if (value instanceof AnimatedEvent) {
463
- // we cannot filter out event listeners completely as some components
464
- // rely on having a callback registered in order to generate events
465
- // alltogether. Therefore we provide a dummy callback here to allow
466
- // native event dispatcher to hijack events.
467
- props[key] = dummyListener;
468
- }
469
336
  else if (has('current', value) &&
470
337
  value.current instanceof WorkletEventHandler) {
471
338
  if (value.current.eventNames.length > 0) {
@@ -479,15 +346,9 @@ export default function createAnimatedComponent(Component, options) {
479
346
  props[key] = dummyListener;
480
347
  }
481
348
  }
482
- else if (!(value instanceof AnimatedNode)) {
483
- if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {
484
- props[key] = value;
485
- }
486
- }
487
- else if (value instanceof AnimatedValue) {
488
- // 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
489
- // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
490
- props[key] = value._startingValue;
349
+ else if (key !== 'onGestureHandlerStateChange' ||
350
+ !isChromeDebugger()) {
351
+ props[key] = value;
491
352
  }
492
353
  }
493
354
  return props;
package/lib/index.js CHANGED
@@ -3,7 +3,6 @@ import {
3
3
  addWhitelistedNativeProps,
4
4
  addWhitelistedUIProps,
5
5
  } from './ConfigHelper';
6
- import * as reanimated1 from './reanimated1';
7
6
  import ReanimatedComponents from './reanimated2/component';
8
7
 
9
8
  const Animated = {
@@ -13,10 +12,7 @@ const Animated = {
13
12
  // configuration
14
13
  addWhitelistedNativeProps,
15
14
  addWhitelistedUIProps,
16
- // reanimated 1
17
- ...reanimated1,
18
15
  };
19
16
 
20
17
  export * from './reanimated2';
21
- export * from './reanimated1';
22
18
  export default Animated;
@@ -1,9 +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
- /* global _WORKLET */
5
- // @ts-ignore reanimated1/Easing is JS file
6
- import EasingNode from '../reanimated1/Easing';
7
1
  import { Bezier } from './Bezier';
8
2
  /**
9
3
  * A linear function, `f(t) = t`. Position correlates to elapsed time one to
@@ -209,40 +203,4 @@ const EasingObject = {
209
203
  out,
210
204
  inOut,
211
205
  };
212
- // TODO type worklets
213
- function createChecker(worklet, workletName, prevArgs) {
214
- /* should return Animated.Value or worklet */
215
- function checkIfReaOne() {
216
- 'worklet';
217
- if (arguments && !_WORKLET) {
218
- for (let i = 0; i < arguments.length; i++) {
219
- const arg = arguments[i];
220
- if (arg && arg.__nodeID) {
221
- console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);
222
- if (prevArgs) {
223
- return EasingNode[workletName]
224
- .apply(undefined, prevArgs)
225
- .apply(undefined, arguments);
226
- }
227
- return EasingNode[workletName].apply(undefined, arguments);
228
- }
229
- }
230
- }
231
- // @ts-ignore this is implicitly any - TODO
232
- const res = worklet.apply(this, arguments);
233
- if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {
234
- return createChecker(res, workletName, arguments);
235
- }
236
- return res;
237
- }
238
- // use original worklet on UI side
239
- checkIfReaOne._closure = worklet._closure;
240
- checkIfReaOne.asString = worklet.asString;
241
- checkIfReaOne.__workletHash = worklet.__workletHash;
242
- checkIfReaOne.__location = worklet.__location;
243
- return checkIfReaOne;
244
- }
245
- Object.keys(EasingObject).forEach((key) => {
246
- EasingObject[key] = createChecker(EasingObject[key], key);
247
- });
248
206
  export const Easing = EasingObject;
@@ -24,13 +24,30 @@ export function measure(animatedRef) {
24
24
  }
25
25
  return result;
26
26
  }
27
- export function scrollTo(animatedRef, x, y, animated) {
27
+ export function dispatchCommand(animatedRef, commandName, args) {
28
28
  'worklet';
29
29
  if (!_WORKLET || isNativeIndefined) {
30
30
  return;
31
31
  }
32
- const viewTag = animatedRef();
33
- _scrollTo(viewTag, x, y, animated);
32
+ const shadowNodeWrapper = animatedRef();
33
+ _dispatchCommand(shadowNodeWrapper, commandName, args);
34
+ }
35
+ export let scrollTo;
36
+ if (global._IS_FABRIC) {
37
+ scrollTo = (animatedRef, x, y, animated) => {
38
+ 'worklet';
39
+ dispatchCommand(animatedRef, 'scrollTo', [x, y, animated]);
40
+ };
41
+ }
42
+ else {
43
+ scrollTo = (animatedRef, x, y, animated) => {
44
+ 'worklet';
45
+ if (!_WORKLET || isNativeIndefined) {
46
+ return;
47
+ }
48
+ const viewTag = animatedRef();
49
+ _scrollTo(viewTag, x, y, animated);
50
+ };
34
51
  }
35
52
  export function setGestureState(handlerTag, newState) {
36
53
  'worklet';
@@ -32,17 +32,32 @@ if (shouldBeUseWeb()) {
32
32
  };
33
33
  }
34
34
  else {
35
- updatePropsByPlatform = (viewDescriptors, updates, _) => {
36
- 'worklet';
37
- for (const key in updates) {
38
- if (ColorProperties.indexOf(key) !== -1) {
39
- updates[key] = processColor(updates[key]);
35
+ if (global._IS_FABRIC) {
36
+ updatePropsByPlatform = (viewDescriptors, updates, _) => {
37
+ 'worklet';
38
+ for (const key in updates) {
39
+ if (ColorProperties.indexOf(key) !== -1) {
40
+ updates[key] = processColor(updates[key]);
41
+ }
40
42
  }
41
- }
42
- viewDescriptors.value.forEach((viewDescriptor) => {
43
- _updateProps(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);
44
- });
45
- };
43
+ viewDescriptors.value.forEach((viewDescriptor) => {
44
+ _updatePropsFabric(viewDescriptor.shadowNodeWrapper, updates);
45
+ });
46
+ };
47
+ }
48
+ else {
49
+ updatePropsByPlatform = (viewDescriptors, updates, _) => {
50
+ 'worklet';
51
+ for (const key in updates) {
52
+ if (ColorProperties.indexOf(key) !== -1) {
53
+ updates[key] = processColor(updates[key]);
54
+ }
55
+ }
56
+ viewDescriptors.value.forEach((viewDescriptor) => {
57
+ _updatePropsPaper(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);
58
+ });
59
+ };
60
+ }
46
61
  }
47
62
  export const updateProps = updatePropsByPlatform;
48
63
  export const updatePropsJestWrapper = (viewDescriptors, updates, maybeViewRef, animatedStyle, adapters) => {
@@ -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';
@@ -52,6 +52,9 @@ export function makeShareable(value) {
52
52
  return NativeReanimatedModule.makeShareable(value);
53
53
  }
54
54
  export function getViewProp(viewTag, propName) {
55
+ if (global._IS_FABRIC) {
56
+ throw new Error('[react-native-reanimated] `getViewProp` is not supported on Fabric yet');
57
+ }
55
58
  return new Promise((resolve, reject) => {
56
59
  return NativeReanimatedModule.getViewProp(viewTag, propName, (result) => {
57
60
  if (typeof result === 'string' && result.substr(0, 6) === 'error:') {
@@ -0,0 +1,18 @@
1
+ /* eslint-disable camelcase */
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ let findHostInstance_DEPRECATED = (_ref) => null;
4
+ try {
5
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
6
+ findHostInstance_DEPRECATED =
7
+ require('react-native/Libraries/Renderer/shims/ReactFabric').findHostInstance_DEPRECATED;
8
+ }
9
+ catch (e) {
10
+ // do nothing
11
+ }
12
+ export function getShadowNodeWrapperFromHostInstance(hostInstance) {
13
+ // @ts-ignore Fabric
14
+ return hostInstance._internalInstanceHandle.stateNode.node;
15
+ }
16
+ export function getShadowNodeWrapperFromRef(ref) {
17
+ return getShadowNodeWrapperFromHostInstance(findHostInstance_DEPRECATED(ref));
18
+ }
@@ -1,9 +1,11 @@
1
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,6 +35,11 @@ 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;
@@ -36,10 +50,12 @@ declare global {
36
50
  _log: (s: string) => void;
37
51
  _setGestureState: () => void;
38
52
  _WORKLET: boolean;
53
+ _IS_FABRIC: boolean;
39
54
  __reanimatedModuleProxy: NativeReanimated;
40
55
  _frameTimestamp: number | null;
41
56
  _measure: () => MeasuredDimensions;
42
57
  _scrollTo: () => void;
58
+ _dispatchCommand: () => void;
43
59
  _chronoNow: () => number;
44
60
  performance: { now: () => number };
45
61
  LayoutAnimationRepository: {
@@ -1,15 +1,19 @@
1
1
  import { useRef } from 'react';
2
- import { getTag } from '../NativeMethods';
3
2
  import { useSharedValue } from './useSharedValue';
3
+ import { getTag } from '../NativeMethods';
4
+ import { getShadowNodeWrapperFromHostInstance } from '../fabricUtils';
4
5
  export function useAnimatedRef() {
5
6
  const tag = useSharedValue(-1);
6
7
  const ref = useRef();
8
+ const isFabric = global._IS_FABRIC;
7
9
  if (!ref.current) {
8
10
  const fun = ((component) => {
9
11
  'worklet';
10
12
  // enters when ref is set by attaching to a component
11
13
  if (component) {
12
- tag.value = getTag(component);
14
+ tag.value = isFabric
15
+ ? getShadowNodeWrapperFromHostInstance(component)
16
+ : getTag(component);
13
17
  fun.current = component;
14
18
  }
15
19
  return tag.value;
@@ -12,11 +12,6 @@ export function useEvent(handler, eventNames = [], rebuild = false) {
12
12
  else if (rebuild) {
13
13
  initRef.current.updateWorklet(handler);
14
14
  }
15
- useEffect(() => {
16
- return () => {
17
- initRef.current = null;
18
- };
19
- }, []);
20
15
  return initRef;
21
16
  }
22
17
  export function useHandler(handlers, dependencies) {
@@ -1,9 +1,12 @@
1
1
  import { hsvToColor, RGBtoHSV, rgbaColor, processColor, red, green, blue, opacity, } from './Colors';
2
2
  import { makeMutable } from './core';
3
3
  import { interpolate } from './interpolation';
4
- // @ts-ignore JS file
5
- import { Extrapolate } from '../reanimated1/derived';
6
4
  import { useSharedValue } from './hook/useSharedValue';
5
+ export const Extrapolate = {
6
+ EXTEND: 'extend',
7
+ CLAMP: 'clamp',
8
+ IDENTITY: 'identity',
9
+ };
7
10
  const interpolateColorsHSV = (value, inputRange, colors) => {
8
11
  'worklet';
9
12
  const h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);