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
package/plugin.js CHANGED
@@ -65,12 +65,15 @@ const globals = new Set([
65
65
  'Map',
66
66
  'Set',
67
67
  '_log',
68
- '_updateProps',
68
+ '_updatePropsPaper',
69
+ '_updatePropsFabric',
70
+ '_removeShadowNodeFromRegistry',
69
71
  'RegExp',
70
72
  'Error',
71
73
  'global',
72
74
  '_measure',
73
75
  '_scrollTo',
76
+ '_dispatchCommand',
74
77
  '_setGestureState',
75
78
  '_getCurrentTime',
76
79
  '_eventTimestamp',
@@ -331,7 +334,7 @@ function makeWorkletName(t, fun) {
331
334
  return '_f'; // fallback for ArrowFunctionExpression and unnamed FunctionExpression
332
335
  }
333
336
 
334
- function makeWorklet(t, fun, fileName) {
337
+ function makeWorklet(t, fun, state) {
335
338
  // Returns a new FunctionExpression which is a workletized version of provided
336
339
  // FunctionDeclaration, FunctionExpression, ArrowFunctionExpression or ObjectMethod.
337
340
 
@@ -358,7 +361,7 @@ function makeWorklet(t, fun, fileName) {
358
361
  '\n(' + (t.isObjectMethod(fun) ? 'function ' : '') + fun.toString() + '\n)';
359
362
 
360
363
  const transformed = transformSync(code, {
361
- filename: fileName,
364
+ filename: state.file.opts.filename,
362
365
  presets: ['@babel/preset-typescript'],
363
366
  plugins: [
364
367
  '@babel/plugin-transform-shorthand-properties',
@@ -445,11 +448,17 @@ function makeWorklet(t, fun, fileName) {
445
448
  );
446
449
  const workletHash = hash(funString);
447
450
 
451
+ let location = state.file.opts.filename;
452
+ if (state.opts.relativeSourceLocation) {
453
+ const path = require('path');
454
+ location = path.relative(state.cwd, location);
455
+ }
456
+
448
457
  const loc = fun && fun.node && fun.node.loc && fun.node.loc.start;
449
458
  if (loc) {
450
459
  const { line, column } = loc;
451
460
  if (typeof line === 'number' && typeof column === 'number') {
452
- fileName = `${fileName} (${line}:${column})`;
461
+ location = `${location} (${line}:${column})`;
453
462
  }
454
463
  }
455
464
 
@@ -490,7 +499,7 @@ function makeWorklet(t, fun, fileName) {
490
499
  t.identifier('__location'),
491
500
  false
492
501
  ),
493
- t.stringLiteral(fileName)
502
+ t.stringLiteral(location)
494
503
  )
495
504
  ),
496
505
  ];
@@ -511,18 +520,6 @@ function makeWorklet(t, fun, fileName) {
511
520
  );
512
521
  }
513
522
 
514
- statements.push(
515
- t.expressionStatement(
516
- t.callExpression(
517
- t.memberExpression(
518
- t.identifier('global'),
519
- t.identifier('__reanimatedWorkletInit'),
520
- false
521
- ),
522
- [privateFunctionId]
523
- )
524
- )
525
- );
526
523
  statements.push(t.returnStatement(privateFunctionId));
527
524
 
528
525
  const newFun = t.functionExpression(fun.id, [], t.blockStatement(statements));
@@ -530,7 +527,7 @@ function makeWorklet(t, fun, fileName) {
530
527
  return newFun;
531
528
  }
532
529
 
533
- function processWorkletFunction(t, fun, fileName) {
530
+ function processWorkletFunction(t, fun, state) {
534
531
  // Replaces FunctionDeclaration, FunctionExpression or ArrowFunctionExpression
535
532
  // with a workletized version of itself.
536
533
 
@@ -538,7 +535,7 @@ function processWorkletFunction(t, fun, fileName) {
538
535
  return;
539
536
  }
540
537
 
541
- const newFun = makeWorklet(t, fun, fileName);
538
+ const newFun = makeWorklet(t, fun, state);
542
539
 
543
540
  const replacement = t.callExpression(newFun, []);
544
541
 
@@ -558,14 +555,14 @@ function processWorkletFunction(t, fun, fileName) {
558
555
  );
559
556
  }
560
557
 
561
- function processWorkletObjectMethod(t, path, fileName) {
558
+ function processWorkletObjectMethod(t, path, state) {
562
559
  // Replaces ObjectMethod with a workletized version of itself.
563
560
 
564
561
  if (!t.isFunctionParent(path)) {
565
562
  return;
566
563
  }
567
564
 
568
- const newFun = makeWorklet(t, path, fileName);
565
+ const newFun = makeWorklet(t, path, state);
569
566
 
570
567
  const replacement = t.objectProperty(
571
568
  t.identifier(path.node.key.name),
@@ -575,7 +572,7 @@ function processWorkletObjectMethod(t, path, fileName) {
575
572
  path.replaceWith(replacement);
576
573
  }
577
574
 
578
- function processIfWorkletNode(t, fun, fileName) {
575
+ function processIfWorkletNode(t, fun, state) {
579
576
  fun.traverse({
580
577
  DirectiveLiteral(path) {
581
578
  const value = path.node.value;
@@ -593,14 +590,14 @@ function processIfWorkletNode(t, fun, fileName) {
593
590
  directive.value.value === 'worklet'
594
591
  )
595
592
  ) {
596
- processWorkletFunction(t, fun, fileName);
593
+ processWorkletFunction(t, fun, state);
597
594
  }
598
595
  }
599
596
  },
600
597
  });
601
598
  }
602
599
 
603
- function processIfGestureHandlerEventCallbackFunctionNode(t, fun, fileName) {
600
+ function processIfGestureHandlerEventCallbackFunctionNode(t, fun, state) {
604
601
  // Auto-workletizes React Native Gesture Handler callback functions.
605
602
  // Detects `Gesture.Tap().onEnd(<fun>)` or similar, but skips `something.onEnd(<fun>)`.
606
603
  // Supports method chaining as well, e.g. `Gesture.Tap().onStart(<fun1>).onUpdate(<fun2>).onEnd(<fun3>)`.
@@ -653,7 +650,7 @@ function processIfGestureHandlerEventCallbackFunctionNode(t, fun, fileName) {
653
650
  t.isCallExpression(fun.parent) &&
654
651
  isGestureObjectEventCallbackMethod(t, fun.parent.callee)
655
652
  ) {
656
- processWorkletFunction(t, fun, fileName);
653
+ processWorkletFunction(t, fun, state);
657
654
  }
658
655
  }
659
656
 
@@ -709,7 +706,7 @@ function isGestureObject(t, node) {
709
706
  );
710
707
  }
711
708
 
712
- function processWorklets(t, path, fileName) {
709
+ function processWorklets(t, path, state) {
713
710
  const name =
714
711
  path.node.callee.type === 'MemberExpression'
715
712
  ? path.node.callee.property.name
@@ -721,17 +718,17 @@ function processWorklets(t, path, fileName) {
721
718
  const properties = path.get('arguments.0.properties');
722
719
  for (const property of properties) {
723
720
  if (t.isObjectMethod(property)) {
724
- processWorkletObjectMethod(t, property, fileName);
721
+ processWorkletObjectMethod(t, property, state);
725
722
  } else {
726
723
  const value = property.get('value');
727
- processWorkletFunction(t, value, fileName);
724
+ processWorkletFunction(t, value, state);
728
725
  }
729
726
  }
730
727
  } else {
731
728
  const indexes = functionArgsToWorkletize.get(name);
732
729
  if (Array.isArray(indexes)) {
733
730
  indexes.forEach((index) => {
734
- processWorkletFunction(t, path.get(`arguments.${index}`), fileName);
731
+ processWorkletFunction(t, path.get(`arguments.${index}`), state);
735
732
  });
736
733
  }
737
734
  }
@@ -776,14 +773,13 @@ module.exports = function ({ types: t }) {
776
773
  visitor: {
777
774
  CallExpression: {
778
775
  enter(path, state) {
779
- processWorklets(t, path, state.file.opts.filename);
776
+ processWorklets(t, path, state);
780
777
  },
781
778
  },
782
779
  'FunctionDeclaration|FunctionExpression|ArrowFunctionExpression': {
783
780
  enter(path, state) {
784
- const fileName = state.file.opts.filename;
785
- processIfWorkletNode(t, path, fileName);
786
- processIfGestureHandlerEventCallbackFunctionNode(t, path, fileName);
781
+ processIfWorkletNode(t, path, state);
782
+ processIfGestureHandlerEventCallbackFunctionNode(t, path, state);
787
783
  },
788
784
  },
789
785
  },
@@ -498,10 +498,17 @@ declare module 'react-native-reanimated' {
498
498
  interval: number;
499
499
  };
500
500
 
501
+ export type AnimatedSensor = {
502
+ sensor: SensorValue3D | SensorValueRotation | null;
503
+ unregister: () => void;
504
+ isAvailable: boolean;
505
+ config: SensorConfig;
506
+ };
507
+
501
508
  export function useAnimatedSensor(
502
509
  sensorType: SensorType,
503
510
  userConfig?: SensorConfig
504
- );
511
+ ): AnimatedSensor;
505
512
 
506
513
  export interface ExitAnimationsValues {
507
514
  currentOriginX: number;
@@ -614,14 +621,19 @@ declare module 'react-native-reanimated' {
614
621
  callback?: AnimationCallback
615
622
  ): number;
616
623
  export function cancelAnimation<T>(sharedValue: SharedValue<T>): void;
617
- export function withDelay<T extends AnimatableValue>(delayMS: number, delayedAnimation: T): T;
624
+ export function withDelay<T extends AnimatableValue>(
625
+ delayMS: number,
626
+ delayedAnimation: T
627
+ ): T;
618
628
  export function withRepeat<T extends AnimatableValue>(
619
629
  animation: T,
620
630
  numberOfReps?: number,
621
631
  reverse?: boolean,
622
632
  callback?: AnimationCallback
623
633
  ): T;
624
- export function withSequence<T extends AnimatableValue>(...animations: [T, ...T[]]): T;
634
+ export function withSequence<T extends AnimatableValue>(
635
+ ...animations: [T, ...T[]]
636
+ ): T;
625
637
 
626
638
  // reanimated2 functions
627
639
  export function runOnUI<A extends any[], R>(
package/src/Animated.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
- ]);
@@ -78,7 +78,6 @@ let NATIVE_THREAD_PROPS_WHITELIST: Record<string, boolean> = {
78
78
  borderTopLeftRadius: true,
79
79
  borderTopRightRadius: true,
80
80
  borderTopStartRadius: true,
81
- opacity: true,
82
81
  elevation: true,
83
82
  fontSize: true,
84
83
  lineHeight: true,
@@ -1,19 +1,8 @@
1
1
  import React, { Component, ComponentType, MutableRefObject, Ref } from 'react';
2
2
  import { findNodeHandle, Platform, StyleSheet } from 'react-native';
3
- import ReanimatedEventEmitter from './ReanimatedEventEmitter';
4
-
5
- // @ts-ignore JS file
6
- import AnimatedEvent from './reanimated1/core/AnimatedEvent';
7
- // @ts-ignore JS file
8
- import AnimatedNode from './reanimated1/core/AnimatedNode';
9
- // @ts-ignore JS file
10
- import AnimatedValue from './reanimated1/core/AnimatedValue';
11
- // @ts-ignore JS file
12
- import { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';
13
3
  import WorkletEventHandler from './reanimated2/WorkletEventHandler';
14
4
  import setAndForwardRef from './setAndForwardRef';
15
5
  import './reanimated2/layoutReanimation/LayoutAnimationRepository';
16
-
17
6
  import invariant from 'invariant';
18
7
  import { adaptViewConfig } from './ConfigHelper';
19
8
  import { RNRenderer } from './reanimated2/platform-specific/RNRenderer';
@@ -38,44 +27,22 @@ import {
38
27
  EntryExitAnimationFunction,
39
28
  ILayoutAnimationBuilder,
40
29
  } from './reanimated2/layoutReanimation';
41
- import { SharedValue, StyleProps } from './reanimated2/commonTypes';
30
+ import {
31
+ SharedValue,
32
+ StyleProps,
33
+ ShadowNodeWrapper,
34
+ } from './reanimated2/commonTypes';
42
35
  import {
43
36
  ViewDescriptorsSet,
44
37
  ViewRefSet,
45
38
  } from './reanimated2/ViewDescriptorsSet';
46
-
47
- const NODE_MAPPING = new Map();
48
-
49
- interface ListenerData {
50
- viewTag: number;
51
- props: StyleProps;
52
- }
53
-
54
- function listener(data: ListenerData) {
55
- const component = NODE_MAPPING.get(data.viewTag);
56
- component && component._updateFromNative(data.props);
57
- }
39
+ import { getShadowNodeWrapperFromRef } from './reanimated2/fabricUtils';
58
40
 
59
41
  function dummyListener() {
60
42
  // empty listener we use to assign to listener properties for which animated
61
43
  // event is used.
62
44
  }
63
45
 
64
- function hasAnimatedNodes(value: unknown): boolean {
65
- if (value instanceof AnimatedNode) {
66
- return true;
67
- }
68
- if (Array.isArray(value)) {
69
- return value.some((item) => hasAnimatedNodes(item));
70
- }
71
- if (value && typeof value === 'object') {
72
- return Object.keys(value).some((key) =>
73
- hasAnimatedNodes((value as Record<string, unknown>)[key])
74
- );
75
- }
76
- return false;
77
- }
78
-
79
46
  type NestedArray<T> = T | NestedArray<T>[];
80
47
  function flattenArray<T>(array: NestedArray<T>): T[] {
81
48
  if (!Array.isArray(array)) {
@@ -166,14 +133,6 @@ export interface InitialComponentProps extends Record<string, unknown> {
166
133
  collapsable?: boolean;
167
134
  }
168
135
 
169
- interface PropsAnimated {
170
- __onEvaluate: () => StyleProps;
171
- __detach: () => void;
172
- __getValue: () => StyleProps;
173
- update: () => void;
174
- setNativeView: (view: Component) => void;
175
- }
176
-
177
136
  export default function createAnimatedComponent(
178
137
  Component: ComponentType<InitialComponentProps>,
179
138
  options?: Options<InitialComponentProps>
@@ -188,7 +147,6 @@ export default function createAnimatedComponent(
188
147
  class AnimatedComponent extends React.Component<
189
148
  AnimatedComponentProps<InitialComponentProps>
190
149
  > {
191
- _invokeAnimatedPropsCallbackOnMount = false;
192
150
  _styles: StyleProps[] | null = null;
193
151
  _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;
194
152
  _viewTag = -1;
@@ -196,13 +154,11 @@ export default function createAnimatedComponent(
196
154
  animatedStyle: { value: StyleProps } = { value: {} };
197
155
  initialStyle = {};
198
156
  sv: SharedValue<null | Record<string, unknown>> | null;
199
- _propsAnimated?: PropsAnimated;
200
157
  _component: ComponentRef | null = null;
201
158
  static displayName: string;
202
159
 
203
160
  constructor(props: AnimatedComponentProps<InitialComponentProps>) {
204
161
  super(props);
205
- this._attachProps(this.props);
206
162
  if (isJest()) {
207
163
  this.animatedStyle = { value: {} };
208
164
  }
@@ -210,43 +166,21 @@ export default function createAnimatedComponent(
210
166
  }
211
167
 
212
168
  componentWillUnmount() {
213
- this._detachPropUpdater();
214
- this._propsAnimated && this._propsAnimated.__detach();
215
169
  this._detachNativeEvents();
216
170
  this._detachStyles();
217
171
  this.sv = null;
218
172
  }
219
173
 
220
174
  componentDidMount() {
221
- if (this._invokeAnimatedPropsCallbackOnMount) {
222
- this._invokeAnimatedPropsCallbackOnMount = false;
223
- this._animatedPropsCallback();
224
- }
225
-
226
- this._propsAnimated &&
227
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
228
- this._propsAnimated.setNativeView(this._component!);
229
175
  this._attachNativeEvents();
230
- this._attachPropUpdater();
231
176
  this._attachAnimatedStyles();
232
177
  }
233
178
 
234
- _getEventViewRef() {
235
- // Make sure to get the scrollable node for components that implement
236
- // `ScrollResponder.Mixin`.
237
- return this._component?.getScrollableNode
238
- ? this._component.getScrollableNode()
239
- : this._component;
240
- }
241
-
242
179
  _attachNativeEvents() {
243
- const node = this._getEventViewRef();
244
- const viewTag = findNodeHandle(options?.setNativeProps ? this : node);
180
+ const viewTag = findNodeHandle(this);
245
181
  for (const key in this.props) {
246
182
  const prop = this.props[key];
247
- if (prop instanceof AnimatedEvent) {
248
- (prop as AnimatedEvent).attachEvent(node, key);
249
- } else if (
183
+ if (
250
184
  has('current', prop) &&
251
185
  prop.current instanceof WorkletEventHandler
252
186
  ) {
@@ -256,13 +190,9 @@ export default function createAnimatedComponent(
256
190
  }
257
191
 
258
192
  _detachNativeEvents() {
259
- const node = this._getEventViewRef();
260
-
261
193
  for (const key in this.props) {
262
194
  const prop = this.props[key];
263
- if (prop instanceof AnimatedEvent) {
264
- (prop as AnimatedEvent).detachEvent(node, key);
265
- } else if (
195
+ if (
266
196
  has('current', prop) &&
267
197
  prop.current instanceof WorkletEventHandler
268
198
  ) {
@@ -285,22 +215,24 @@ export default function createAnimatedComponent(
285
215
  if (this.props.animatedProps?.viewDescriptors) {
286
216
  this.props.animatedProps.viewDescriptors.remove(this._viewTag);
287
217
  }
218
+ if (global._IS_FABRIC) {
219
+ const shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
220
+ runOnUI(() => {
221
+ 'worklet';
222
+ _removeShadowNodeFromRegistry(shadowNodeWrapper);
223
+ })();
224
+ }
288
225
  }
289
226
  }
290
227
 
291
228
  _reattachNativeEvents(
292
229
  prevProps: AnimatedComponentProps<InitialComponentProps>
293
230
  ) {
294
- const node = this._getEventViewRef();
295
- const attached = new Set();
296
- const nextEvts = new Set();
297
231
  let viewTag: number | undefined;
298
232
 
299
233
  for (const key in this.props) {
300
234
  const prop = this.props[key];
301
- if (prop instanceof AnimatedEvent) {
302
- nextEvts.add((prop as AnimatedEvent).__nodeID);
303
- } else if (
235
+ if (
304
236
  has('current', prop) &&
305
237
  prop.current instanceof WorkletEventHandler
306
238
  ) {
@@ -311,15 +243,7 @@ export default function createAnimatedComponent(
311
243
  }
312
244
  for (const key in prevProps) {
313
245
  const prop = this.props[key];
314
- if (prop instanceof AnimatedEvent) {
315
- if (!nextEvts.has((prop as AnimatedEvent).__nodeID)) {
316
- // event was in prev props but not in current props, we detach
317
- (prop as AnimatedEvent).detachEvent(node, key);
318
- } else {
319
- // event was in prev and is still in current props
320
- attached.add((prop as AnimatedEvent).__nodeID);
321
- }
322
- } else if (
246
+ if (
323
247
  has('current', prop) &&
324
248
  prop.current instanceof WorkletEventHandler &&
325
249
  prop.current.reattachNeeded
@@ -331,12 +255,6 @@ export default function createAnimatedComponent(
331
255
  for (const key in this.props) {
332
256
  const prop = this.props[key];
333
257
  if (
334
- prop instanceof AnimatedEvent &&
335
- !attached.has((prop as AnimatedEvent).__nodeID)
336
- ) {
337
- // not yet attached
338
- (prop as AnimatedEvent).attachEvent(node, key);
339
- } else if (
340
258
  has('current', prop) &&
341
259
  prop.current instanceof WorkletEventHandler &&
342
260
  prop.current.reattachNeeded
@@ -348,49 +266,6 @@ export default function createAnimatedComponent(
348
266
  }
349
267
  }
350
268
 
351
- // The system is best designed when setNativeProps is implemented. It is
352
- // able to avoid re-rendering and directly set the attributes that changed.
353
- // However, setNativeProps can only be implemented on native components
354
- // If you want to animate a composite component, you need to re-render it.
355
- // In this case, we have a fallback that uses forceUpdate.
356
- _animatedPropsCallback = () => {
357
- if (this._component == null) {
358
- // AnimatedProps is created in will-mount because it's used in render.
359
- // But this callback may be invoked before mount in async mode,
360
- // In which case we should defer the setNativeProps() call.
361
- // React may throw away uncommitted work in async mode,
362
- // So a deferred call won't always be invoked.
363
- this._invokeAnimatedPropsCallbackOnMount = true;
364
- } else if (typeof this._component.setNativeProps !== 'function') {
365
- this.forceUpdate();
366
- } else {
367
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
368
- this._component.setNativeProps(this._propsAnimated!.__getValue());
369
- }
370
- };
371
-
372
- _attachProps(nextProps: StyleProps) {
373
- const oldPropsAnimated = this._propsAnimated;
374
-
375
- this._propsAnimated = createOrReusePropsNode(
376
- nextProps,
377
- this._animatedPropsCallback,
378
- oldPropsAnimated
379
- );
380
- // If prop node has been reused we don't need to call into "__detach"
381
- if (oldPropsAnimated !== this._propsAnimated) {
382
- // When you call detach, it removes the element from the parent list
383
- // of children. If it goes to 0, then the parent also detaches itself
384
- // and so on.
385
- // An optimization is to attach the new elements and THEN detach the old
386
- // ones instead of detaching and THEN attaching.
387
- // This way the intermediate state isn't to go to 0 and trigger
388
- // this expensive recursive detaching to then re-attach everything on
389
- // the very next operation.
390
- oldPropsAnimated && oldPropsAnimated.__detach();
391
- }
392
- }
393
-
394
269
  _updateFromNative(props: StyleProps) {
395
270
  if (options?.setNativeProps) {
396
271
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -401,14 +276,6 @@ export default function createAnimatedComponent(
401
276
  }
402
277
  }
403
278
 
404
- _attachPropUpdater() {
405
- const viewTag = findNodeHandle(this);
406
- NODE_MAPPING.set(viewTag, this);
407
- if (NODE_MAPPING.size === 1) {
408
- ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);
409
- }
410
- }
411
-
412
279
  _attachAnimatedStyles() {
413
280
  const styles = this.props.style
414
281
  ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))
@@ -421,9 +288,11 @@ export default function createAnimatedComponent(
421
288
 
422
289
  let viewTag: number | null;
423
290
  let viewName: string | null;
291
+ let shadowNodeWrapper: ShadowNodeWrapper | null = null;
424
292
  if (Platform.OS === 'web') {
425
293
  viewTag = findNodeHandle(this);
426
294
  viewName = null;
295
+ shadowNodeWrapper = null;
427
296
  } else {
428
297
  // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx
429
298
  const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);
@@ -445,6 +314,10 @@ export default function createAnimatedComponent(
445
314
  if (hasReanimated2Props && hostInstance?.viewConfig) {
446
315
  adaptViewConfig(hostInstance.viewConfig);
447
316
  }
317
+
318
+ if (global._IS_FABRIC) {
319
+ shadowNodeWrapper = getShadowNodeWrapperFromRef(this);
320
+ }
448
321
  }
449
322
  this._viewTag = viewTag as number;
450
323
 
@@ -470,7 +343,11 @@ export default function createAnimatedComponent(
470
343
  }
471
344
 
472
345
  styles.forEach((style) => {
473
- style.viewDescriptors.add({ tag: viewTag, name: viewName });
346
+ style.viewDescriptors.add({
347
+ tag: viewTag,
348
+ name: viewName,
349
+ shadowNodeWrapper,
350
+ });
474
351
  if (isJest()) {
475
352
  /**
476
353
  * We need to connect Jest's TestObject instance whose contains just props object
@@ -501,27 +378,16 @@ export default function createAnimatedComponent(
501
378
  tag: viewTag!,
502
379
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
503
380
  name: viewName!,
381
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
382
+ shadowNodeWrapper: shadowNodeWrapper!,
504
383
  });
505
384
  }
506
385
  }
507
386
 
508
- _detachPropUpdater() {
509
- const viewTag = findNodeHandle(this);
510
- NODE_MAPPING.delete(viewTag);
511
- if (NODE_MAPPING.size === 0) {
512
- ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');
513
- }
514
- }
515
-
516
387
  componentDidUpdate(
517
388
  prevProps: AnimatedComponentProps<InitialComponentProps>
518
389
  ) {
519
- this._attachProps(this.props);
520
390
  this._reattachNativeEvents(prevProps);
521
-
522
- this._propsAnimated &&
523
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
524
- this._propsAnimated.setNativeView(this._component!);
525
391
  this._attachAnimatedStyles();
526
392
  }
527
393
 
@@ -578,21 +444,6 @@ export default function createAnimatedComponent(
578
444
  },
579
445
  });
580
446
 
581
- _filterNonAnimatedStyle(inputStyle: StyleProps) {
582
- const style: StyleProps = {};
583
- for (const key in inputStyle) {
584
- const value = inputStyle[key];
585
- if (!hasAnimatedNodes(value)) {
586
- style[key] = value;
587
- } else if (value instanceof AnimatedValue) {
588
- // if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order
589
- // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.
590
- style[key] = value._startingValue;
591
- }
592
- }
593
- return style;
594
- }
595
-
596
447
  _filterNonAnimatedProps(
597
448
  inputProps: AnimatedComponentProps<InitialComponentProps>
598
449
  ): Record<string, unknown> {
@@ -617,9 +468,7 @@ export default function createAnimatedComponent(
617
468
  return style;
618
469
  }
619
470
  });
620
- props[key] = this._filterNonAnimatedStyle(
621
- StyleSheet.flatten(processedStyle)
622
- );
471
+ props[key] = StyleSheet.flatten(processedStyle);
623
472
  } else if (key === 'animatedProps') {
624
473
  const animatedProp = inputProps.animatedProps as Partial<
625
474
  AnimatedComponentProps<AnimatedProps>
@@ -630,12 +479,6 @@ export default function createAnimatedComponent(
630
479
  animatedProp.viewsRef?.add(this);
631
480
  });
632
481
  }
633
- } else if (value instanceof AnimatedEvent) {
634
- // we cannot filter out event listeners completely as some components
635
- // rely on having a callback registered in order to generate events
636
- // alltogether. Therefore we provide a dummy callback here to allow
637
- // native event dispatcher to hijack events.
638
- props[key] = dummyListener;
639
482
  } else if (
640
483
  has('current', value) &&
641
484
  value.current instanceof WorkletEventHandler
@@ -651,14 +494,11 @@ export default function createAnimatedComponent(
651
494
  } else {
652
495
  props[key] = dummyListener;
653
496
  }
654
- } else if (!(value instanceof AnimatedNode)) {
655
- if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {
656
- props[key] = value;
657
- }
658
- } else if (value instanceof AnimatedValue) {
659
- // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order
660
- // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.
661
- props[key] = (value as AnimatedValue)._startingValue;
497
+ } else if (
498
+ key !== 'onGestureHandlerStateChange' ||
499
+ !isChromeDebugger()
500
+ ) {
501
+ props[key] = value;
662
502
  }
663
503
  }
664
504
  return props;