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,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
@@ -1,10 +1,8 @@
1
- import { LogBox } from 'react-native';
2
1
  import createAnimatedComponent from './createAnimatedComponent';
3
2
  import {
4
3
  addWhitelistedNativeProps,
5
4
  addWhitelistedUIProps,
6
5
  } from './ConfigHelper';
7
- import * as reanimated1 from './reanimated1';
8
6
  import ReanimatedComponents from './reanimated2/component';
9
7
 
10
8
  const Animated = {
@@ -14,18 +12,7 @@ const Animated = {
14
12
  // configuration
15
13
  addWhitelistedNativeProps,
16
14
  addWhitelistedUIProps,
17
- // reanimated 1
18
- ...reanimated1,
19
15
  };
20
16
 
21
17
  export * from './reanimated2';
22
- export * from './reanimated1';
23
18
  export default Animated;
24
-
25
- // I think we can ignore this message as long as Gesture Handler doesn't
26
- // try to load the Reanimated module. I figured it should be here instead of
27
- // RNGH because this prevents the message from being displayed for all
28
- // versions of RNGH.
29
- LogBox.ignoreLogs([
30
- 'RCTBridge required dispatch_sync to load RNGestureHandlerModule. This may lead to deadlocks',
31
- ]);
@@ -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
@@ -53,7 +47,10 @@ function cubic(t) {
53
47
  */
54
48
  function poly(n) {
55
49
  'worklet';
56
- return (t) => Math.pow(t, n);
50
+ return (t) => {
51
+ 'worklet';
52
+ return Math.pow(t, n);
53
+ };
57
54
  }
58
55
  /**
59
56
  * A sinusoidal function.
@@ -110,7 +107,10 @@ function elastic(bounciness = 1) {
110
107
  */
111
108
  function back(s = 1.70158) {
112
109
  'worklet';
113
- return (t) => t * t * ((s + 1) * t - s);
110
+ return (t) => {
111
+ 'worklet';
112
+ return t * t * ((s + 1) * t - s);
113
+ };
114
114
  }
115
115
  /**
116
116
  * Provides a simple bouncing effect.
@@ -203,40 +203,4 @@ const EasingObject = {
203
203
  out,
204
204
  inOut,
205
205
  };
206
- // TODO type worklets
207
- function createChecker(worklet, workletName, prevArgs) {
208
- /* should return Animated.Value or worklet */
209
- function checkIfReaOne() {
210
- 'worklet';
211
- if (arguments && !_WORKLET) {
212
- for (let i = 0; i < arguments.length; i++) {
213
- const arg = arguments[i];
214
- if (arg && arg.__nodeID) {
215
- console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);
216
- if (prevArgs) {
217
- return EasingNode[workletName]
218
- .apply(undefined, prevArgs)
219
- .apply(undefined, arguments);
220
- }
221
- return EasingNode[workletName].apply(undefined, arguments);
222
- }
223
- }
224
- }
225
- // @ts-ignore this is implicitly any - TODO
226
- const res = worklet.apply(this, arguments);
227
- if (!_WORKLET && res && typeof res === 'function' && res.__worklet) {
228
- return createChecker(res, workletName, arguments);
229
- }
230
- return res;
231
- }
232
- // use original worklet on UI side
233
- checkIfReaOne._closure = worklet._closure;
234
- checkIfReaOne.asString = worklet.asString;
235
- checkIfReaOne.__workletHash = worklet.__workletHash;
236
- checkIfReaOne.__location = worklet.__location;
237
- return checkIfReaOne;
238
- }
239
- Object.keys(EasingObject).forEach((key) => {
240
- EasingObject[key] = createChecker(EasingObject[key], key);
241
- });
242
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,10 +1,7 @@
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
- global.__reanimatedWorkletInit = function (worklet) {
6
- worklet.__worklet = true;
7
- };
8
5
  if (global._setGlobalConsole === undefined) {
9
6
  // it can happen when Reanimated plugin wasn't added, but the user uses the only API from version 1
10
7
  global._setGlobalConsole = () => {
@@ -31,39 +28,6 @@ export const isConfiguredCheck = () => {
31
28
  throw new Error('If you want to use Reanimated 2 then go through our installation steps https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation');
32
29
  }
33
30
  };
34
- function _toArrayReanimated(object) {
35
- 'worklet';
36
- if (Array.isArray(object)) {
37
- return object;
38
- }
39
- if (typeof Symbol !== 'undefined' &&
40
- (typeof Symbol === 'function' ? Symbol.iterator : '@@iterator') in
41
- Object(object)) {
42
- return Array.from(object);
43
- }
44
- throw new Error('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
45
- }
46
- function _mergeObjectsReanimated() {
47
- 'worklet';
48
- // we can't use rest parameters in worklets at the moment
49
- // eslint-disable-next-line prefer-rest-params
50
- const arr = Array.from(arguments);
51
- return Object.assign.apply(null, [arr[0], ...arr.slice(1)]);
52
- }
53
- global.__reanimatedWorkletInit = function (worklet) {
54
- worklet.__worklet = true;
55
- if (worklet._closure) {
56
- const closure = worklet._closure;
57
- Object.keys(closure).forEach((key) => {
58
- if (key === '_toConsumableArray') {
59
- closure[key] = _toArrayReanimated;
60
- }
61
- if (key === '_objectSpread') {
62
- closure[key] = _mergeObjectsReanimated;
63
- }
64
- });
65
- }
66
- };
67
31
  function pushFrame(frame) {
68
32
  NativeReanimatedModule.pushFrame(frame);
69
33
  }
@@ -88,6 +52,9 @@ export function makeShareable(value) {
88
52
  return NativeReanimatedModule.makeShareable(value);
89
53
  }
90
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
+ }
91
58
  return new Promise((resolve, reject) => {
92
59
  return NativeReanimatedModule.getViewProp(viewTag, propName, (result) => {
93
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
+ }