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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/Common/cpp/Fabric/FabricUtils.cpp +128 -0
  2. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
  3. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
  5. package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
  6. package/Common/cpp/SharedItems/ShareableValue.cpp +18 -0
  7. package/Common/cpp/Tools/Mapper.cpp +23 -4
  8. package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -32
  9. package/Common/cpp/Tools/Scheduler.cpp +4 -0
  10. package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
  11. package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
  12. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
  13. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
  14. package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
  15. package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
  16. package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
  17. package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
  18. package/Common/cpp/headers/Tools/Mapper.h +1 -1
  19. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
  20. package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
  21. package/README.md +4 -0
  22. package/RNReanimated.podspec +22 -11
  23. package/android/CMakeLists.txt +139 -27
  24. package/android/build.gradle +86 -209
  25. package/android/local.properties +1 -0
  26. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
  27. package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
  28. package/android/src/main/cpp/NativeProxy.cpp +178 -33
  29. package/android/src/main/cpp/headers/NativeProxy.h +43 -7
  30. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
  31. package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
  32. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
  33. package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +15 -2
  34. package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
  35. package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
  36. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
  37. package/ios/REAEventDispatcher.m +0 -1
  38. package/ios/REAModule.h +10 -1
  39. package/ios/REAModule.mm +284 -0
  40. package/ios/REANodesManager.h +27 -51
  41. package/ios/{REANodesManager.m → REANodesManager.mm} +91 -223
  42. package/ios/native/NativeProxy.mm +144 -17
  43. package/ios/native/REAInitializer.mm +12 -4
  44. package/ios/native/UIResponder+Reanimated.h +3 -1
  45. package/ios/native/UIResponder+Reanimated.mm +3 -1
  46. package/lib/Animated.js +0 -4
  47. package/lib/createAnimatedComponent.js +30 -169
  48. package/lib/index.js +0 -4
  49. package/lib/reanimated2/Easing.js +0 -42
  50. package/lib/reanimated2/NativeMethods.js +20 -3
  51. package/lib/reanimated2/UpdateProps.js +25 -10
  52. package/lib/reanimated2/core.js +4 -1
  53. package/lib/reanimated2/fabricUtils.js +18 -0
  54. package/lib/reanimated2/globals.d.ts +17 -1
  55. package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
  56. package/lib/reanimated2/hook/utils.js +0 -5
  57. package/lib/reanimated2/interpolateColor.js +5 -2
  58. package/lib/reanimated2/interpolation.js +0 -15
  59. package/lib/reanimated2/js-reanimated/index.js +3 -0
  60. package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
  61. package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
  62. package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
  63. package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
  64. package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
  65. package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
  66. package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
  67. package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
  68. package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
  69. package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
  70. package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
  71. package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
  72. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
  73. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
  74. package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
  75. package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
  76. package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
  77. package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
  78. package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
  79. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
  80. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
  81. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
  82. package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
  83. package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
  84. package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
  85. package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
  86. package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
  87. package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
  88. package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
  89. package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
  90. package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
  91. package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
  92. package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -1
  93. package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
  94. package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
  95. package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
  96. package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
  97. package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
  98. package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
  99. package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
  100. package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
  101. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
  102. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
  103. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
  104. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
  105. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +0 -0
  106. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
  107. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
  108. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
  109. package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
  110. package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
  111. package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
  112. package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
  113. package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
  114. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
  115. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
  116. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
  117. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
  118. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
  119. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
  120. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
  121. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
  122. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
  123. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
  124. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
  125. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
  126. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
  127. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
  128. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
  129. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
  130. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
  131. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
  132. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
  133. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
  134. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
  135. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
  136. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
  137. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
  138. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
  139. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
  140. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
  141. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
  142. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
  143. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
  144. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
  145. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
  146. package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
  147. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
  148. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
  149. package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
  150. package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
  151. package/package.json +7 -5
  152. package/plugin.js +4 -1
  153. package/src/Animated.js +0 -4
  154. package/src/createAnimatedComponent.tsx +37 -197
  155. package/src/reanimated2/Easing.ts +0 -53
  156. package/src/reanimated2/NativeMethods.ts +39 -7
  157. package/src/reanimated2/UpdateProps.ts +38 -19
  158. package/src/reanimated2/commonTypes.ts +4 -1
  159. package/src/reanimated2/component/FlatList.tsx +8 -5
  160. package/src/reanimated2/core.ts +7 -1
  161. package/src/reanimated2/fabricUtils.ts +27 -0
  162. package/src/reanimated2/globals.d.ts +17 -1
  163. package/src/reanimated2/hook/commonTypes.ts +4 -2
  164. package/src/reanimated2/hook/index.ts +1 -1
  165. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  166. package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
  167. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
  168. package/src/reanimated2/hook/utils.ts +2 -11
  169. package/src/reanimated2/interpolateColor.ts +6 -2
  170. package/src/reanimated2/interpolation.ts +1 -26
  171. package/src/reanimated2/js-reanimated/index.ts +5 -0
  172. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  173. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  174. package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
  175. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  176. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  177. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  178. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  179. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  180. package/android/.gradle/7.2/gc.properties +0 -0
  181. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  182. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  183. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  184. package/android/.gradle/checksums/checksums.lock +0 -0
  185. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  186. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  187. package/android/.gradle/vcs-1/gc.properties +0 -0
  188. package/android/react-native-reanimated-64-hermes.aar +0 -0
  189. package/android/react-native-reanimated-64-jsc.aar +0 -0
  190. package/android/react-native-reanimated-65-hermes.aar +0 -0
  191. package/android/react-native-reanimated-65-jsc.aar +0 -0
  192. package/android/react-native-reanimated-66-hermes.aar +0 -0
  193. package/android/react-native-reanimated-66-jsc.aar +0 -0
  194. package/android/react-native-reanimated-67-hermes.aar +0 -0
  195. package/android/react-native-reanimated-67-jsc.aar +0 -0
  196. package/android/react-native-reanimated-68-hermes.aar +0 -0
  197. package/android/react-native-reanimated-68-jsc.aar +0 -0
  198. package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
  199. package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
  200. package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
  201. package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
  202. package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
  203. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
  204. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
  205. package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
  206. package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
  207. package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
  208. package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
  209. package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
  210. package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
  211. package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
  212. package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
  213. package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
  214. package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
  215. package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
  216. package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
  217. package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
  218. package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
  219. package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
  220. package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
  221. package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
  222. package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
  223. package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
  224. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
  225. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
  226. package/ios/Nodes/REAAlwaysNode.h +0 -4
  227. package/ios/Nodes/REAAlwaysNode.m +0 -35
  228. package/ios/Nodes/REABezierNode.h +0 -5
  229. package/ios/Nodes/REABezierNode.m +0 -103
  230. package/ios/Nodes/REABlockNode.h +0 -5
  231. package/ios/Nodes/REABlockNode.m +0 -25
  232. package/ios/Nodes/REACallFuncNode.h +0 -6
  233. package/ios/Nodes/REACallFuncNode.m +0 -69
  234. package/ios/Nodes/REAClockNodes.h +0 -19
  235. package/ios/Nodes/REAClockNodes.m +0 -118
  236. package/ios/Nodes/REAConcatNode.h +0 -5
  237. package/ios/Nodes/REAConcatNode.m +0 -32
  238. package/ios/Nodes/REACondNode.h +0 -5
  239. package/ios/Nodes/REACondNode.m +0 -36
  240. package/ios/Nodes/READebugNode.h +0 -5
  241. package/ios/Nodes/READebugNode.m +0 -30
  242. package/ios/Nodes/REAEventNode.h +0 -8
  243. package/ios/Nodes/REAEventNode.m +0 -35
  244. package/ios/Nodes/REAFunctionNode.h +0 -6
  245. package/ios/Nodes/REAFunctionNode.m +0 -24
  246. package/ios/Nodes/REAJSCallNode.h +0 -5
  247. package/ios/Nodes/REAJSCallNode.m +0 -30
  248. package/ios/Nodes/REANode.h +0 -40
  249. package/ios/Nodes/REANode.m +0 -155
  250. package/ios/Nodes/REAOperatorNode.h +0 -5
  251. package/ios/Nodes/REAOperatorNode.m +0 -114
  252. package/ios/Nodes/REAParamNode.h +0 -10
  253. package/ios/Nodes/REAParamNode.m +0 -79
  254. package/ios/Nodes/REAPropsNode.h +0 -9
  255. package/ios/Nodes/REAPropsNode.m +0 -96
  256. package/ios/Nodes/REASetNode.h +0 -5
  257. package/ios/Nodes/REASetNode.m +0 -34
  258. package/ios/Nodes/REAStyleNode.h +0 -5
  259. package/ios/Nodes/REAStyleNode.m +0 -27
  260. package/ios/Nodes/REATransformNode.h +0 -5
  261. package/ios/Nodes/REATransformNode.m +0 -36
  262. package/ios/Nodes/REAValueNode.h +0 -9
  263. package/ios/Nodes/REAValueNode.m +0 -26
  264. package/ios/REAModule.m +0 -184
  265. package/ios/Transitioning/RCTConvert+REATransition.h +0 -11
  266. package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
  267. package/ios/Transitioning/REAAllTransitions.h +0 -26
  268. package/ios/Transitioning/REAAllTransitions.m +0 -296
  269. package/ios/Transitioning/REATransition.h +0 -64
  270. package/ios/Transitioning/REATransition.m +0 -210
  271. package/ios/Transitioning/REATransitionAnimation.h +0 -17
  272. package/ios/Transitioning/REATransitionAnimation.m +0 -79
  273. package/ios/Transitioning/REATransitionManager.h +0 -9
  274. package/ios/Transitioning/REATransitionManager.m +0 -60
  275. package/ios/Transitioning/REATransitionValues.h +0 -15
  276. package/ios/Transitioning/REATransitionValues.m +0 -25
  277. package/lib/reanimated1/Easing.js +0 -231
  278. package/lib/reanimated1/SpringConfig.js +0 -79
  279. package/lib/reanimated1/Transitioning.js +0 -158
  280. package/lib/reanimated1/animations/Animation.js +0 -32
  281. package/lib/reanimated1/animations/SpringUtils.js +0 -199
  282. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  283. package/lib/reanimated1/animations/decay.js +0 -54
  284. package/lib/reanimated1/animations/spring.js +0 -198
  285. package/lib/reanimated1/animations/timing.js +0 -74
  286. package/lib/reanimated1/base.js +0 -13
  287. package/lib/reanimated1/core/AnimatedAlways.js +0 -33
  288. package/lib/reanimated1/core/AnimatedBezier.js +0 -150
  289. package/lib/reanimated1/core/AnimatedBlock.js +0 -52
  290. package/lib/reanimated1/core/AnimatedCall.js +0 -55
  291. package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
  292. package/lib/reanimated1/core/AnimatedClock.js +0 -90
  293. package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
  294. package/lib/reanimated1/core/AnimatedCode.js +0 -32
  295. package/lib/reanimated1/core/AnimatedConcat.js +0 -32
  296. package/lib/reanimated1/core/AnimatedCond.js +0 -57
  297. package/lib/reanimated1/core/AnimatedDebug.js +0 -62
  298. package/lib/reanimated1/core/AnimatedEvent.js +0 -126
  299. package/lib/reanimated1/core/AnimatedFunction.js +0 -55
  300. package/lib/reanimated1/core/AnimatedNode.js +0 -223
  301. package/lib/reanimated1/core/AnimatedOperator.js +0 -103
  302. package/lib/reanimated1/core/AnimatedParam.js +0 -88
  303. package/lib/reanimated1/core/AnimatedProps.js +0 -108
  304. package/lib/reanimated1/core/AnimatedSet.js +0 -38
  305. package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
  306. package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
  307. package/lib/reanimated1/core/AnimatedStyle.js +0 -78
  308. package/lib/reanimated1/core/AnimatedTransform.js +0 -78
  309. package/lib/reanimated1/core/AnimatedValue.js +0 -38
  310. package/lib/reanimated1/core/Core.test.js +0 -30
  311. package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
  312. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  313. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  314. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  315. package/lib/reanimated1/derived/acc.js +0 -11
  316. package/lib/reanimated1/derived/color.js +0 -47
  317. package/lib/reanimated1/derived/diff.js +0 -16
  318. package/lib/reanimated1/derived/diffClamp.js +0 -11
  319. package/lib/reanimated1/derived/evaluateOnce.js +0 -35
  320. package/lib/reanimated1/derived/index.js +0 -8
  321. package/lib/reanimated1/derived/interpolate.js +0 -152
  322. package/lib/reanimated1/derived/interpolateColors.js +0 -62
  323. package/lib/reanimated1/derived/onChange.js +0 -14
  324. package/lib/reanimated1/derived/useCode.js +0 -41
  325. package/lib/reanimated1/index.js +0 -53
  326. package/lib/reanimated1/operators.js +0 -35
  327. package/lib/reanimated1/useValue.js +0 -10
  328. package/lib/reanimated1/val.js +0 -3
  329. package/lib/types/react-native-reanimated-tests.d.ts +0 -1
  330. package/src/reanimated1/Easing.js +0 -231
  331. package/src/reanimated1/SpringConfig.js +0 -79
  332. package/src/reanimated1/Transitioning.js +0 -158
  333. package/src/reanimated1/animations/Animation.js +0 -32
  334. package/src/reanimated1/animations/SpringUtils.js +0 -199
  335. package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  336. package/src/reanimated1/animations/decay.js +0 -54
  337. package/src/reanimated1/animations/spring.js +0 -198
  338. package/src/reanimated1/animations/timing.js +0 -74
  339. package/src/reanimated1/base.js +0 -13
  340. package/src/reanimated1/core/AnimatedAlways.js +0 -33
  341. package/src/reanimated1/core/AnimatedBezier.js +0 -150
  342. package/src/reanimated1/core/AnimatedBlock.js +0 -52
  343. package/src/reanimated1/core/AnimatedCall.js +0 -55
  344. package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
  345. package/src/reanimated1/core/AnimatedClock.js +0 -90
  346. package/src/reanimated1/core/AnimatedClockTest.js +0 -22
  347. package/src/reanimated1/core/AnimatedCode.js +0 -32
  348. package/src/reanimated1/core/AnimatedConcat.js +0 -32
  349. package/src/reanimated1/core/AnimatedCond.js +0 -57
  350. package/src/reanimated1/core/AnimatedDebug.js +0 -62
  351. package/src/reanimated1/core/AnimatedEvent.js +0 -126
  352. package/src/reanimated1/core/AnimatedFunction.js +0 -55
  353. package/src/reanimated1/core/AnimatedNode.js +0 -223
  354. package/src/reanimated1/core/AnimatedOperator.js +0 -103
  355. package/src/reanimated1/core/AnimatedParam.js +0 -88
  356. package/src/reanimated1/core/AnimatedProps.js +0 -108
  357. package/src/reanimated1/core/AnimatedSet.js +0 -38
  358. package/src/reanimated1/core/AnimatedStartClock.js +0 -30
  359. package/src/reanimated1/core/AnimatedStopClock.js +0 -30
  360. package/src/reanimated1/core/AnimatedStyle.js +0 -78
  361. package/src/reanimated1/core/AnimatedTransform.js +0 -78
  362. package/src/reanimated1/core/AnimatedValue.js +0 -38
  363. package/src/reanimated1/core/Core.test.js +0 -30
  364. package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
  365. package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  366. package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  367. package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  368. package/src/reanimated1/derived/acc.js +0 -11
  369. package/src/reanimated1/derived/color.js +0 -47
  370. package/src/reanimated1/derived/diff.js +0 -16
  371. package/src/reanimated1/derived/diffClamp.js +0 -11
  372. package/src/reanimated1/derived/evaluateOnce.js +0 -35
  373. package/src/reanimated1/derived/index.js +0 -8
  374. package/src/reanimated1/derived/interpolate.js +0 -152
  375. package/src/reanimated1/derived/interpolateColors.js +0 -62
  376. package/src/reanimated1/derived/onChange.js +0 -14
  377. package/src/reanimated1/derived/useCode.js +0 -41
  378. package/src/reanimated1/index.js +0 -53
  379. package/src/reanimated1/operators.js +0 -35
  380. package/src/reanimated1/useValue.js +0 -10
  381. package/src/reanimated1/val.js +0 -3
@@ -8,6 +8,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
8
8
  import com.facebook.react.ReactApplication;
9
9
  import com.facebook.react.bridge.NativeModule;
10
10
  import com.facebook.react.bridge.ReactApplicationContext;
11
+ import com.facebook.react.bridge.ReadableMap;
11
12
  import com.facebook.react.bridge.ReadableNativeArray;
12
13
  import com.facebook.react.bridge.WritableArray;
13
14
  import com.facebook.react.bridge.WritableMap;
@@ -15,6 +16,7 @@ import com.facebook.react.devsupport.interfaces.DevSupportManager;
15
16
  import com.facebook.react.turbomodule.core.CallInvokerHolderImpl;
16
17
  import com.facebook.react.uimanager.UIManagerModule;
17
18
  import com.facebook.react.uimanager.events.RCTEventEmitter;
19
+ import com.facebook.soloader.SoLoader;
18
20
  import com.swmansion.common.GestureHandlerStateManager;
19
21
  import com.swmansion.reanimated.layoutReanimation.AnimationsManager;
20
22
  import com.swmansion.reanimated.layoutReanimation.LayoutAnimations;
@@ -31,7 +33,7 @@ import java.util.Set;
31
33
  public class NativeProxy {
32
34
 
33
35
  static {
34
- System.loadLibrary("reanimated");
36
+ SoLoader.loadLibrary("reanimated");
35
37
  }
36
38
 
37
39
  @DoNotStrip
@@ -104,9 +106,13 @@ public class NativeProxy {
104
106
  (CallInvokerHolderImpl) context.getCatalystInstance().getJSCallInvokerHolder();
105
107
  LayoutAnimations LayoutAnimations = new LayoutAnimations(context);
106
108
  mScheduler = new Scheduler(context);
109
+
107
110
  mHybridData =
108
111
  initHybrid(
109
- context.getJavaScriptContextHolder().get(), holder, mScheduler, LayoutAnimations);
112
+ context.getJavaScriptContextHolder().get(),
113
+ holder,
114
+ mScheduler,
115
+ LayoutAnimations);
110
116
  mContext = new WeakReference<>(context);
111
117
  prepare(LayoutAnimations);
112
118
  reanimatedSensorContainer = new ReanimatedSensorContainer(mContext);
@@ -135,6 +141,8 @@ public class NativeProxy {
135
141
 
136
142
  public native boolean isAnyHandlerWaitingForEvent(String eventName);
137
143
 
144
+ public native void performOperations();
145
+
138
146
  public Scheduler getScheduler() {
139
147
  return mScheduler;
140
148
  }
@@ -170,6 +178,11 @@ public class NativeProxy {
170
178
  mNodesManager.updateProps(viewTag, props);
171
179
  }
172
180
 
181
+ @DoNotStrip
182
+ private void synchronouslyUpdateUIProps(int viewTag, ReadableMap uiProps) {
183
+ mNodesManager.synchronouslyUpdateUIProps(viewTag, uiProps);
184
+ }
185
+
173
186
  @DoNotStrip
174
187
  private String obtainProp(int viewTag, String propName) {
175
188
  return mNodesManager.obtainProp(viewTag, propName);
@@ -0,0 +1,17 @@
1
+ package com.swmansion.reanimated;
2
+
3
+ import com.facebook.react.bridge.ReactApplicationContext;
4
+ import com.facebook.react.bridge.ReadableMap;
5
+ import com.swmansion.reanimated.NodesManager;
6
+
7
+ class ReaCompatibility {
8
+ public ReaCompatibility(ReactApplicationContext reactApplicationContext) {
9
+
10
+ }
11
+ public void registerFabricEventListener(NodesManager nodeManager) {
12
+
13
+ }
14
+ public void synchronouslyUpdateUIProps(int viewTag, ReadableMap uiProps) {
15
+
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import <RNReanimated/REAModule.h>
4
+ #import <React/RCTFabricSurface.h>
5
+
6
+ @interface REAInitializerRCTFabricSurface : RCTFabricSurface
7
+
8
+ @property REAModule *reaModule;
9
+
10
+ @end
11
+
12
+ #endif // RCT_NEW_ARCH_ENABLED
@@ -0,0 +1,73 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import <React/RCTSurface.h>
4
+ #import <React/RCTSurfaceView.h>
5
+ #import <memory>
6
+
7
+ #import <RNReanimated/REAInitializerRCTFabricSurface.h>
8
+ #import <RNReanimated/REAModule.h>
9
+
10
+ @implementation REAInitializerRCTFabricSurface {
11
+ std::shared_ptr<facebook::react::SurfaceHandler> _surfaceHandler;
12
+ int _tag;
13
+ RCTSurface *_surface;
14
+ }
15
+
16
+ - (instancetype)init
17
+ {
18
+ if (self = [super init]) {
19
+ _tag = -1;
20
+ _surface = [[RCTSurface alloc] init];
21
+ _surfaceHandler = std::make_shared<facebook::react::SurfaceHandler>("REASurface", _tag);
22
+ }
23
+ return self;
24
+ }
25
+
26
+ - (NSNumber *)rootViewTag
27
+ {
28
+ return @(_tag);
29
+ }
30
+
31
+ - (NSInteger)rootTag
32
+ {
33
+ return (NSInteger)_tag;
34
+ }
35
+
36
+ - (void)start
37
+ {
38
+ // this is only needed method, the rest of them is just for prevent null pointer exceptions
39
+ [_reaModule installReanimatedUIManagerBindingAfterReload];
40
+ }
41
+
42
+ - (facebook::react::SurfaceHandler const &)surfaceHandler
43
+ {
44
+ return *_surfaceHandler.get();
45
+ }
46
+
47
+ - (void)setMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize
48
+ {
49
+ }
50
+
51
+ - (void)setMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize viewportOffset:(CGPoint)viewportOffset
52
+ {
53
+ }
54
+
55
+ - (void)stop
56
+ {
57
+ }
58
+
59
+ - (CGSize)sizeThatFitsMinimumSize:(CGSize)minimumSize maximumSize:(CGSize)maximumSize
60
+ {
61
+ CGSize size{0, 0};
62
+ return size;
63
+ }
64
+
65
+ - (nonnull RCTSurfaceView *)view
66
+ {
67
+ // This method should never be called.
68
+ react_native_assert(false);
69
+ }
70
+
71
+ @end
72
+
73
+ #endif // RCT_NEW_ARCH_ENABLED
@@ -1,5 +1,4 @@
1
1
  #import <RNReanimated/REAEventDispatcher.h>
2
- #import <RNReanimated/REAModule.h>
3
2
  #import <React/RCTBridge+Private.h>
4
3
  #import <React/RCTDefines.h>
5
4
 
package/ios/REAModule.h CHANGED
@@ -1,3 +1,8 @@
1
+ #ifdef RCT_NEW_ARCH_ENABLED
2
+ #import <RNReanimated/NewestShadowNodesRegistry.h>
3
+ #import <RNReanimated/ReanimatedUIManagerBinding.h>
4
+ #endif
5
+
1
6
  #import <React/RCTBridgeModule.h>
2
7
  #import <React/RCTEventDispatcher.h>
3
8
  #import <React/RCTEventEmitter.h>
@@ -5,10 +10,14 @@
5
10
  #import <React/RCTUIManagerObserverCoordinator.h>
6
11
  #import <React/RCTUIManagerUtils.h>
7
12
 
8
- #import <RNReanimated/REAValueNode.h>
13
+ #import <RNReanimated/REANodesManager.h>
9
14
 
10
15
  @interface REAModule : RCTEventEmitter <RCTBridgeModule, RCTEventDispatcherObserver, RCTUIManagerObserver>
11
16
 
12
17
  @property (nonatomic, readonly) REANodesManager *nodesManager;
13
18
 
19
+ #ifdef RCT_NEW_ARCH_ENABLED
20
+ - (void)installReanimatedUIManagerBindingAfterReload;
21
+ #endif
22
+
14
23
  @end
@@ -0,0 +1,284 @@
1
+ #import <React/RCTBridge+Private.h>
2
+
3
+ #ifdef RCT_NEW_ARCH_ENABLED
4
+ #import <React/RCTFabricSurface.h>
5
+ #import <React/RCTScheduler.h>
6
+ #import <React/RCTSurface.h>
7
+ #import <React/RCTSurfacePresenter.h>
8
+ #import <React/RCTSurfacePresenterBridgeAdapter.h>
9
+ #import <React/RCTSurfaceView.h>
10
+ #endif
11
+
12
+ #import <RNReanimated/NativeProxy.h>
13
+
14
+ #ifdef RCT_NEW_ARCH_ENABLED
15
+ #import <RNReanimated/NewestShadowNodesRegistry.h>
16
+ #import <RNReanimated/REAInitializerRCTFabricSurface.h>
17
+ #import <RNReanimated/ReanimatedUIManagerBinding.h>
18
+ #endif
19
+
20
+ #import <RNReanimated/REAModule.h>
21
+ #import <RNReanimated/REANodesManager.h>
22
+
23
+ using namespace facebook::react;
24
+ using namespace reanimated;
25
+
26
+ @interface RCTBridge (JSIRuntime)
27
+ - (void *)runtime;
28
+ @end
29
+
30
+ @interface RCTBridge (RCTTurboModule)
31
+ - (std::shared_ptr<facebook::react::CallInvoker>)jsCallInvoker;
32
+ - (void)_tryAndHandleError:(dispatch_block_t)block;
33
+ @end
34
+
35
+ #ifdef RCT_NEW_ARCH_ENABLED
36
+ static __strong REAInitializerRCTFabricSurface *reaSurface;
37
+ #else
38
+ typedef void (^AnimatedOperation)(REANodesManager *nodesManager);
39
+ #endif
40
+
41
+ @implementation REAModule {
42
+ #ifdef RCT_NEW_ARCH_ENABLED
43
+ __weak RCTSurfacePresenter *_surfacePresenter;
44
+ std::shared_ptr<NewestShadowNodesRegistry> newestShadowNodesRegistry;
45
+ std::weak_ptr<NativeReanimatedModule> reanimatedModule_;
46
+ std::shared_ptr<EventListener> eventListener_;
47
+ #else
48
+ NSMutableArray<AnimatedOperation> *_operations;
49
+ #endif
50
+ }
51
+
52
+ RCT_EXPORT_MODULE(ReanimatedModule);
53
+
54
+ - (void)invalidate
55
+ {
56
+ #ifdef RCT_NEW_ARCH_ENABLED
57
+ RCTScheduler *scheduler = [_surfacePresenter scheduler];
58
+ [scheduler removeEventListener:eventListener_];
59
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
60
+ #endif
61
+ [_nodesManager invalidate];
62
+ [super invalidate];
63
+ }
64
+
65
+ - (dispatch_queue_t)methodQueue
66
+ {
67
+ // This module needs to be on the same queue as the UIManager to avoid
68
+ // having to lock `_operations` and `_preOperations` since `uiManagerWillPerformMounting`
69
+ // will be called from that queue.
70
+ return RCTGetUIManagerQueue();
71
+ }
72
+
73
+ #ifdef RCT_NEW_ARCH_ENABLED
74
+
75
+ - (std::shared_ptr<UIManager>)getUIManager
76
+ {
77
+ RCTScheduler *scheduler = [_surfacePresenter scheduler];
78
+ return scheduler.uiManager;
79
+ }
80
+
81
+ - (void)injectReanimatedUIManagerBinding:(jsi::Runtime &)runtime uiManager:(std::shared_ptr<UIManager>)uiManager
82
+ {
83
+ RuntimeExecutor syncRuntimeExecutor = [&](std::function<void(jsi::Runtime & runtime_)> &&callback) {
84
+ callback(runtime);
85
+ };
86
+ ReanimatedUIManagerBinding::createAndInstallIfNeeded(
87
+ runtime, syncRuntimeExecutor, uiManager, newestShadowNodesRegistry);
88
+ }
89
+
90
+ - (void)setUpNativeReanimatedModule:(std::shared_ptr<UIManager>)uiManager
91
+ {
92
+ if (auto reanimatedModule = reanimatedModule_.lock()) {
93
+ reanimatedModule->setUIManager(uiManager);
94
+ reanimatedModule->setNewestShadowNodesRegistry(newestShadowNodesRegistry);
95
+ }
96
+ }
97
+
98
+ - (void)injectDependencies:(jsi::Runtime &)runtime
99
+ {
100
+ auto uiManager = [self getUIManager];
101
+ react_native_assert(uiManager.get() != nil);
102
+ newestShadowNodesRegistry = std::make_shared<NewestShadowNodesRegistry>();
103
+ [self injectReanimatedUIManagerBinding:runtime uiManager:uiManager];
104
+ [self setUpNativeReanimatedModule:uiManager];
105
+ }
106
+
107
+ #pragma mark-- Initialize
108
+
109
+ - (void)installReanimatedUIManagerBindingAfterReload
110
+ {
111
+ // called from REAInitializerRCTFabricSurface::start
112
+ __weak __typeof__(self) weakSelf = self;
113
+ _surfacePresenter = self.bridge.surfacePresenter;
114
+ [_nodesManager setSurfacePresenter:_surfacePresenter];
115
+
116
+ // to avoid deadlock we can't use Executor from React Native
117
+ // but we can create own and use it because initialization is already synchronized
118
+ react_native_assert(self.bridge != nil);
119
+ RCTRuntimeExecutorFromBridge(self.bridge)(^(jsi::Runtime &runtime) {
120
+ if (__typeof__(self) strongSelf = weakSelf) {
121
+ [strongSelf injectDependencies:runtime];
122
+ }
123
+ });
124
+ }
125
+
126
+ - (void)handleJavaScriptDidLoadNotification:(NSNotification *)notification
127
+ {
128
+ _surfacePresenter = self.bridge.surfacePresenter;
129
+ RCTScheduler *scheduler = [_surfacePresenter scheduler];
130
+ __weak __typeof__(self) weakSelf = self;
131
+ _surfacePresenter.runtimeExecutor(^(jsi::Runtime &runtime) {
132
+ __typeof__(self) strongSelf = weakSelf;
133
+ if (strongSelf == nil) {
134
+ return;
135
+ }
136
+ if (auto reanimatedModule = strongSelf->reanimatedModule_.lock()) {
137
+ self->eventListener_ =
138
+ std::make_shared<facebook::react::EventListener>([reanimatedModule](const RawEvent &rawEvent) {
139
+ if (!RCTIsMainQueue()) {
140
+ // event listener called on the JS thread, let's ignore this event
141
+ // as we cannot safely access worklet runtime here
142
+ // and also we don't care about topLayout events
143
+ return false;
144
+ }
145
+ return reanimatedModule->handleRawEvent(rawEvent, CACurrentMediaTime() * 1000);
146
+ });
147
+ [scheduler addEventListener:self->eventListener_];
148
+ }
149
+ });
150
+ }
151
+
152
+ - (void)setBridge:(RCTBridge *)bridge
153
+ {
154
+ [super setBridge:bridge];
155
+
156
+ [[NSNotificationCenter defaultCenter] addObserver:self
157
+ selector:@selector(handleJavaScriptDidLoadNotification:)
158
+ name:RCTJavaScriptDidLoadNotification
159
+ object:nil];
160
+
161
+ [[self.moduleRegistry moduleForName:"EventDispatcher"] addDispatchObserver:self];
162
+ [bridge.uiManager.observerCoordinator addObserver:self];
163
+
164
+ // only within the first loading `self.bridge.surfacePresenter` exists
165
+ // during the reload `self.bridge.surfacePresenter` is null
166
+ _surfacePresenter = self.bridge.surfacePresenter;
167
+ #ifdef DEBUG
168
+ if (reaSurface == nil) {
169
+ // we need only one instance because SurfacePresenter is the same during the application lifetime
170
+ reaSurface = [[REAInitializerRCTFabricSurface alloc] init];
171
+ [_surfacePresenter registerSurface:reaSurface];
172
+ }
173
+ reaSurface.reaModule = self;
174
+ #endif
175
+
176
+ if (_surfacePresenter == nil) {
177
+ // _surfacePresenter will be set in installReanimatedUIManagerBindingAfterReload
178
+ _nodesManager = [[REANodesManager alloc] initWithModule:self bridge:self.bridge surfacePresenter:nil];
179
+ return;
180
+ }
181
+
182
+ _nodesManager = [[REANodesManager alloc] initWithModule:self bridge:self.bridge surfacePresenter:_surfacePresenter];
183
+ }
184
+
185
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
186
+ {
187
+ facebook::jsi::Runtime *jsiRuntime = [self.bridge respondsToSelector:@selector(runtime)]
188
+ ? reinterpret_cast<facebook::jsi::Runtime *>(self.bridge.runtime)
189
+ : nullptr;
190
+
191
+ if (jsiRuntime) {
192
+ // Reanimated
193
+ jsi::Runtime &runtime = *jsiRuntime;
194
+
195
+ auto reanimatedModule = reanimated::createReanimatedModule(self.bridge, self.bridge.jsCallInvoker);
196
+
197
+ auto workletRuntimeValue = runtime.global()
198
+ .getProperty(runtime, "ArrayBuffer")
199
+ .asObject(runtime)
200
+ .asFunction(runtime)
201
+ .callAsConstructor(runtime, {static_cast<double>(sizeof(void *))});
202
+ uintptr_t *workletRuntimeData =
203
+ reinterpret_cast<uintptr_t *>(workletRuntimeValue.getObject(runtime).getArrayBuffer(runtime).data(runtime));
204
+ workletRuntimeData[0] = reinterpret_cast<uintptr_t>(reanimatedModule->runtime.get());
205
+
206
+ runtime.global().setProperty(runtime, "_WORKLET_RUNTIME", workletRuntimeValue);
207
+
208
+ runtime.global().setProperty(runtime, "_IS_FABRIC", true);
209
+
210
+ runtime.global().setProperty(
211
+ runtime,
212
+ jsi::PropNameID::forAscii(runtime, "__reanimatedModuleProxy"),
213
+ jsi::Object::createFromHostObject(runtime, reanimatedModule));
214
+ reanimatedModule_ = reanimatedModule;
215
+ if (_surfacePresenter != nil) {
216
+ // reload, uiManager is null right now, we need to wait for `installReanimatedUIManagerBindingAfterReload`
217
+ [self injectDependencies:runtime];
218
+ }
219
+ }
220
+ return nil;
221
+ }
222
+
223
+ #else
224
+
225
+ RCT_EXPORT_METHOD(installTurboModule)
226
+ {
227
+ // TODO: Move initialization from UIResponder+Reanimated to here
228
+ }
229
+
230
+ - (void)setBridge:(RCTBridge *)bridge
231
+ {
232
+ [super setBridge:bridge];
233
+
234
+ _nodesManager = [[REANodesManager alloc] initWithModule:self uiManager:self.bridge.uiManager];
235
+ _operations = [NSMutableArray new];
236
+
237
+ [bridge.uiManager.observerCoordinator addObserver:self];
238
+ }
239
+
240
+ #pragma mark-- Batch handling
241
+
242
+ - (void)addOperationBlock:(AnimatedOperation)operation
243
+ {
244
+ [_operations addObject:operation];
245
+ }
246
+
247
+ #pragma mark - RCTUIManagerObserver
248
+
249
+ - (void)uiManagerWillPerformMounting:(RCTUIManager *)uiManager
250
+ {
251
+ [_nodesManager maybeFlushUpdateBuffer];
252
+ if (_operations.count == 0) {
253
+ return;
254
+ }
255
+
256
+ NSArray<AnimatedOperation> *operations = _operations;
257
+ _operations = [NSMutableArray new];
258
+
259
+ REANodesManager *nodesManager = _nodesManager;
260
+
261
+ [uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
262
+ for (AnimatedOperation operation in operations) {
263
+ operation(nodesManager);
264
+ }
265
+ [nodesManager operationsBatchDidComplete];
266
+ }];
267
+ }
268
+
269
+ #endif // RCT_NEW_ARCH_ENABLED
270
+
271
+ #pragma mark-- Events
272
+
273
+ - (NSArray<NSString *> *)supportedEvents
274
+ {
275
+ return @[];
276
+ }
277
+
278
+ - (void)eventDispatcherWillDispatchEvent:(id<RCTEvent>)event
279
+ {
280
+ // Events can be dispatched from any queue
281
+ [_nodesManager dispatchEvent:event];
282
+ }
283
+
284
+ @end
@@ -1,14 +1,20 @@
1
- #import <Foundation/Foundation.h>
2
- #import <RNReanimated/REANode.h>
3
1
  #import <React/RCTBridgeModule.h>
4
2
  #import <React/RCTUIManager.h>
5
3
 
4
+ #ifdef RCT_NEW_ARCH_ENABLED
5
+ #import <React/RCTSurfacePresenterStub.h>
6
+ #endif
7
+
6
8
  @class REAModule;
7
9
 
8
10
  typedef void (^REAOnAnimationCallback)(CADisplayLink *displayLink);
9
11
  typedef void (^REANativeAnimationOp)(RCTUIManager *uiManager);
10
12
  typedef void (^REAEventHandler)(NSString *eventName, id<RCTEvent> event);
11
13
 
14
+ #ifdef RCT_NEW_ARCH_ENABLED
15
+ typedef void (^REAPerformOperations)();
16
+ #endif
17
+
12
18
  @interface REANodesManager : NSObject
13
19
 
14
20
  @property (nonatomic, weak, nullable) RCTUIManager *uiManager;
@@ -18,66 +24,36 @@ typedef void (^REAEventHandler)(NSString *eventName, id<RCTEvent> event);
18
24
  @property (nonatomic, nullable) NSSet<NSString *> *uiProps;
19
25
  @property (nonatomic, nullable) NSSet<NSString *> *nativeProps;
20
26
 
21
- - (nonnull instancetype)initWithModule:(REAModule *)reanimatedModule uiManager:(nonnull RCTUIManager *)uiManager;
22
-
23
- - (REANode *_Nullable)findNodeByID:(nonnull REANodeID)nodeID;
24
-
27
+ #ifdef RCT_NEW_ARCH_ENABLED
28
+ - (nonnull instancetype)initWithModule:(REAModule *)reanimatedModule
29
+ bridge:(RCTBridge *)bridge
30
+ surfacePresenter:(id<RCTSurfacePresenterStub>)surfacePresenter;
31
+ #else
32
+ - (instancetype)initWithModule:(REAModule *)reanimatedModule uiManager:(RCTUIManager *)uiManager;
33
+ #endif
25
34
  - (void)invalidate;
26
-
27
35
  - (void)operationsBatchDidComplete;
28
36
 
29
- //
30
-
31
37
  - (void)postOnAnimation:(REAOnAnimationCallback)clb;
32
- - (void)postRunUpdatesAfterAnimation;
33
38
  - (void)registerEventHandler:(REAEventHandler)eventHandler;
34
- - (void)enqueueUpdateViewOnNativeThread:(nonnull NSNumber *)reactTag
35
- viewName:(NSString *)viewName
36
- nativeProps:(NSMutableDictionary *)nativeProps
37
- trySynchronously:(BOOL)trySync;
38
- - (void)getValue:(REANodeID)nodeID callback:(RCTResponseSenderBlock)callback;
39
-
40
- // graph
41
-
42
- - (void)createNode:(nonnull REANodeID)tag config:(NSDictionary<NSString *, id> *__nonnull)config;
43
-
44
- - (void)dropNode:(nonnull REANodeID)tag;
45
-
46
- - (void)connectNodes:(nonnull REANodeID)parentID childID:(nonnull REANodeID)childID;
47
-
48
- - (void)disconnectNodes:(nonnull REANodeID)parentID childID:(nonnull REANodeID)childID;
49
-
50
- - (void)connectNodeToView:(nonnull REANodeID)nodeID
51
- viewTag:(nonnull NSNumber *)viewTag
52
- viewName:(nonnull NSString *)viewName;
53
-
54
- - (void)disconnectNodeFromView:(nonnull REANodeID)nodeID viewTag:(nonnull NSNumber *)viewTag;
55
-
56
- - (void)attachEvent:(nonnull NSNumber *)viewTag
57
- eventName:(nonnull NSString *)eventName
58
- eventNodeID:(nonnull REANodeID)eventNodeID;
59
-
60
- - (void)detachEvent:(nonnull NSNumber *)viewTag
61
- eventName:(nonnull NSString *)eventName
62
- eventNodeID:(nonnull REANodeID)eventNodeID;
63
-
64
- // configuration
39
+ - (void)dispatchEvent:(id<RCTEvent>)event;
65
40
 
41
+ #ifdef RCT_NEW_ARCH_ENABLED
42
+ - (void)setSurfacePresenter:(id<RCTSurfacePresenterStub>)surfacePresenter;
43
+ - (void)registerPerformOperations:(REAPerformOperations)performOperations;
44
+ - (void)synchronouslyUpdateViewOnUIThread:(nonnull NSNumber *)viewTag props:(nonnull NSDictionary *)uiProps;
45
+ #else
66
46
  - (void)configureUiProps:(nonnull NSSet<NSString *> *)uiPropsSet
67
47
  andNativeProps:(nonnull NSSet<NSString *> *)nativePropsSet;
68
-
69
48
  - (void)updateProps:(nonnull NSDictionary *)props
70
49
  ofViewWithTag:(nonnull NSNumber *)viewTag
71
50
  withName:(nonnull NSString *)viewName;
72
-
73
- - (NSString *)obtainProp:(nonnull NSNumber *)viewTag propName:(nonnull NSString *)propName;
74
-
75
- // events
76
-
77
- - (void)dispatchEvent:(id<RCTEvent>)event;
78
-
79
- - (void)setValueForNodeID:(nonnull NSNumber *)nodeID value:(nonnull NSNumber *)newValue;
80
-
81
51
  - (void)maybeFlushUpdateBuffer;
52
+ - (void)enqueueUpdateViewOnNativeThread:(nonnull NSNumber *)reactTag
53
+ viewName:(NSString *)viewName
54
+ nativeProps:(NSMutableDictionary *)nativeProps
55
+ trySynchronously:(BOOL)trySync;
56
+ - (NSString *)obtainProp:(nonnull NSNumber *)viewTag propName:(nonnull NSString *)propName;
57
+ #endif
82
58
 
83
59
  @end