@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.0-rc.1

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 (282) hide show
  1. package/compatibility.json +161 -0
  2. package/harmony/reanimated/BuildProfile.ets +16 -16
  3. package/harmony/reanimated/build-profile.json5 +18 -11
  4. package/harmony/reanimated/oh-package.json5 +12 -11
  5. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
  6. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -86
  7. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -47
  8. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -101
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -51
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -49
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -96
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -33
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -95
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -29
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -9
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -232
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -90
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +897 -870
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -91
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -176
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1376 -971
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +228 -252
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -231
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -109
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -56
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -20
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -70
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -35
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -98
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -135
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +18 -19
  200. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
  201. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
  202. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
  203. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
  204. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
  205. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
  206. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
  207. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
  208. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +5 -1
  209. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
  210. package/harmony/reanimated/src/main/module.json5 +12 -12
  211. package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
  212. package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
  213. package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
  214. package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
  215. package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
  216. package/harmony/reanimated/ts.ts +6 -6
  217. package/harmony/reanimated.har +0 -0
  218. package/package.json +68 -50
  219. package/scripts/deploy.js +191 -0
  220. package/scripts/set-reanimated-version.js +37 -0
  221. package/scripts/update-version.js +119 -0
  222. package/scripts/validate-react-native-version.js +46 -0
  223. package/scripts/validate-worklets-build.js +17 -0
  224. package/scripts/validate-worklets-version.js +79 -0
  225. package/scripts/worklets-version.json +4 -0
  226. package/LICENSE +0 -21
  227. package/README.OpenSource +0 -11
  228. package/README.md +0 -10
  229. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
  230. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
  231. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
  232. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
  233. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
  234. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
  235. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
  236. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
  237. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
  238. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
  239. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
  240. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
  241. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
  242. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
  243. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
  244. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
  245. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
  246. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
  247. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
  248. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
  249. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
  250. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
  251. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
  252. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
  253. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
  254. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
  255. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
  256. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
  257. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
  258. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
  259. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
  260. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
  261. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
  262. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
  263. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
  264. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
  265. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
  266. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
  267. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
  268. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
  269. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
  270. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
  271. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -173
  272. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
  273. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
  274. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -189
  275. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
  276. package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
  277. package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
  278. package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
  279. package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
  280. package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
  281. package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
  282. package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
@@ -1,101 +1,113 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
-
3
- #include <reanimated/Fabric/ReanimatedCommitHook.h>
4
- #include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
5
- #include <reanimated/Fabric/ShadowTreeCloner.h>
6
-
7
- #include <react/renderer/core/ComponentDescriptor.h>
8
-
9
- #include <unordered_map>
10
- #include <vector>
11
-
12
- using namespace facebook::react;
13
-
14
- namespace reanimated {
15
-
16
- ReanimatedCommitHook::ReanimatedCommitHook(
17
- const std::shared_ptr<PropsRegistry> &propsRegistry,
18
- const std::shared_ptr<UIManager> &uiManager,
19
- const std::shared_ptr<LayoutAnimationsProxy> &layoutAnimationsProxy)
20
- : propsRegistry_(propsRegistry),
21
- uiManager_(uiManager),
22
- layoutAnimationsProxy_(layoutAnimationsProxy) {
23
- uiManager_->registerCommitHook(*this);
24
- }
25
-
26
- ReanimatedCommitHook::~ReanimatedCommitHook() noexcept {
27
- uiManager_->unregisterCommitHook(*this);
28
- }
29
-
30
- void ReanimatedCommitHook::maybeInitializeLayoutAnimations(
31
- SurfaceId surfaceId) {
32
- auto lock = std::unique_lock<std::mutex>(mutex_);
33
- if (surfaceId > currentMaxSurfaceId_) {
34
- // when a new surfaceId is observed we call setMountingOverrideDelegate
35
- // for all yet unseen surfaces
36
- uiManager_->getShadowTreeRegistry().enumerate(
37
- [strongThis = shared_from_this()](
38
- const ShadowTree &shadowTree, bool &stop) {
39
- // Executed synchronously.
40
- if (shadowTree.getSurfaceId() <= strongThis->currentMaxSurfaceId_) {
41
- // the set function actually adds our delegate to a list, so we
42
- // shouldn't invoke it twice for the same surface
43
- return;
44
- }
45
- shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(
46
- strongThis->layoutAnimationsProxy_);
47
- });
48
- currentMaxSurfaceId_ = surfaceId;
49
- }
50
- }
51
-
52
- RootShadowNode::Unshared ReanimatedCommitHook::shadowTreeWillCommit(
53
- ShadowTree const &,
54
- RootShadowNode::Shared const &,
55
- RootShadowNode::Unshared const &newRootShadowNode) noexcept {
56
- maybeInitializeLayoutAnimations(newRootShadowNode->getSurfaceId());
57
-
58
- auto reaShadowNode =
59
- std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(
60
- newRootShadowNode);
61
-
62
- if (reaShadowNode->hasReanimatedCommitTrait()) {
63
- // ShadowTree commited by Reanimated, no need to apply updates from
64
- // PropsRegistry
65
- reaShadowNode->unsetReanimatedCommitTrait();
66
- reaShadowNode->setReanimatedMountTrait();
67
- return newRootShadowNode;
68
- }
69
-
70
- // ShadowTree not commited by Reanimated, apply updates from PropsRegistry
71
- reaShadowNode->unsetReanimatedMountTrait();
72
- RootShadowNode::Unshared rootNode = newRootShadowNode;
73
- PropsMap propsMap;
74
-
75
- {
76
- auto lock = propsRegistry_->createLock();
77
-
78
- propsRegistry_->for_each(
79
- [&](const ShadowNodeFamily &family, const folly::dynamic &props) {
80
- propsMap[&family].emplace_back(props);
81
- });
82
-
83
- rootNode = cloneShadowTreeWithNewProps(*rootNode, propsMap);
84
-
85
- // If the commit comes from React Native then pause commits from
86
- // Reanimated since the ShadowTree to be committed by Reanimated may not
87
- // include the new changes from React Native yet and all changes of animated
88
- // props will be applied in ReanimatedCommitHook by iterating over
89
- // PropsRegistry.
90
- // This is very important, since if we didn't pause Reanimated commits,
91
- // it could lead to RN commits being delayed until the animation is finished
92
- // (very bad).
93
- propsRegistry_->pauseReanimatedCommits();
94
- }
95
-
96
- return rootNode;
97
- }
98
-
99
- } // namespace reanimated
100
-
101
- #endif // RCT_NEW_ARCH_ENABLED
1
+ #include <reanimated/Fabric/ReanimatedCommitHook.h>
2
+ #include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
3
+ #include <reanimated/Fabric/ShadowTreeCloner.h>
4
+ #include <reanimated/Tools/FeatureFlags.h>
5
+ #include <reanimated/Tools/ReanimatedSystraceSection.h>
6
+
7
+ #include <react/renderer/core/ComponentDescriptor.h>
8
+
9
+ #include <memory>
10
+ #include <unordered_map>
11
+ #include <vector>
12
+
13
+ using namespace facebook::react;
14
+
15
+ namespace reanimated {
16
+
17
+ ReanimatedCommitHook::ReanimatedCommitHook(
18
+ const std::shared_ptr<UIManager> &uiManager,
19
+ const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
20
+ const std::shared_ptr<LayoutAnimationsProxyCommon> &layoutAnimationsProxy)
21
+ : uiManager_(uiManager),
22
+ updatesRegistryManager_(updatesRegistryManager),
23
+ layoutAnimationsProxy_(layoutAnimationsProxy) {
24
+ uiManager_->registerCommitHook(*this);
25
+ }
26
+
27
+ ReanimatedCommitHook::~ReanimatedCommitHook() noexcept {
28
+ uiManager_->unregisterCommitHook(*this);
29
+ }
30
+
31
+ void ReanimatedCommitHook::maybeInitializeLayoutAnimations(SurfaceId surfaceId) {
32
+ auto lock = std::unique_lock<std::mutex>(mutex_);
33
+ if (surfaceId > currentMaxSurfaceId_) {
34
+ // when a new surfaceId is observed we call setMountingOverrideDelegate
35
+ // for all yet unseen surfaces
36
+ uiManager_->getShadowTreeRegistry().enumerate([strongThis = shared_from_this()](
37
+ const ShadowTree &shadowTree, bool &stop) {
38
+ // Executed synchronously.
39
+ if (shadowTree.getSurfaceId() <= strongThis->currentMaxSurfaceId_) {
40
+ // the set function actually adds our delegate to a list, so we
41
+ // shouldn't invoke it twice for the same surface
42
+ return;
43
+ }
44
+ // TODO: We should consider registering a new instance of proxy for each surface.
45
+ // The current approach will encounter problems on platforms where it is more common to have multiple surfaces.
46
+ strongThis->layoutAnimationsProxy_->startSurface(shadowTree.getSurfaceId());
47
+ shadowTree.getMountingCoordinator()->setMountingOverrideDelegate(strongThis->layoutAnimationsProxy_);
48
+ });
49
+ currentMaxSurfaceId_ = surfaceId;
50
+ }
51
+ }
52
+
53
+ RootShadowNode::Unshared ReanimatedCommitHook::shadowTreeWillCommit(
54
+ ShadowTree const &,
55
+ RootShadowNode::Shared const &,
56
+ RootShadowNode::Unshared const &newRootShadowNode
57
+ #if REACT_NATIVE_MINOR_VERSION >= 80
58
+ ,
59
+ const ShadowTreeCommitOptions &commitOptions
60
+ #endif
61
+ ) noexcept {
62
+ ReanimatedSystraceSection s("ReanimatedCommitHook::shadowTreeWillCommit");
63
+
64
+ maybeInitializeLayoutAnimations(newRootShadowNode->getSurfaceId());
65
+
66
+ auto reaShadowNode = std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(newRootShadowNode);
67
+
68
+ if (reaShadowNode->hasReanimatedCommitTrait()) {
69
+ // ShadowTree commited by Reanimated, no need to apply updates from
70
+ // the updates registry manager
71
+ reaShadowNode->unsetReanimatedCommitTrait();
72
+ reaShadowNode->setReanimatedMountTrait();
73
+ return newRootShadowNode;
74
+ }
75
+
76
+ #if REACT_NATIVE_MINOR_VERSION >= 80
77
+ if constexpr (StaticFeatureFlags::getFlag("USE_COMMIT_HOOK_ONLY_FOR_REACT_COMMITS")) {
78
+ // State updates are based on the currently committed ShadowTree,
79
+ // which means that all animation changes are already included.
80
+ // Therefore, there's no need to reapply styles from the props map.
81
+ if (commitOptions.source != ShadowTreeCommitSource::React) {
82
+ return newRootShadowNode;
83
+ }
84
+ }
85
+ #endif
86
+
87
+ // ShadowTree not commited by Reanimated, apply updates from the updates
88
+ // registry manager
89
+ reaShadowNode->unsetReanimatedMountTrait();
90
+ RootShadowNode::Unshared rootNode = newRootShadowNode;
91
+
92
+ {
93
+ auto lock = updatesRegistryManager_->lock();
94
+
95
+ PropsMap propsMap = updatesRegistryManager_->collectProps();
96
+ updatesRegistryManager_->cancelCommitAfterPause();
97
+
98
+ rootNode = cloneShadowTreeWithNewProps(*rootNode, propsMap);
99
+ // If the commit comes from React Native then pause commits from
100
+ // Reanimated since the ShadowTree to be committed by Reanimated may not
101
+ // include the new changes from React Native yet and all changes of animated
102
+ // props will be applied in ReanimatedCommitHook by UpdatesRegistryManager
103
+ // This is very important, since if we didn't pause Reanimated commits,
104
+ // it could lead to RN commits being delayed until the animation is finished
105
+ // (very bad). We don't pause Reanimated commits for state updates coming
106
+ // from React Native as this would break sticky header animations.
107
+ updatesRegistryManager_->pauseReanimatedCommits();
108
+ }
109
+
110
+ return rootNode;
111
+ }
112
+
113
+ } // namespace reanimated
@@ -1,51 +1,49 @@
1
- #pragma once
2
- #ifdef RCT_NEW_ARCH_ENABLED
3
-
4
- #include <reanimated/Fabric/PropsRegistry.h>
5
- #include <reanimated/LayoutAnimations/LayoutAnimationsProxy.h>
6
-
7
- #include <react/renderer/uimanager/UIManagerCommitHook.h>
8
-
9
- #include <memory>
10
-
11
- using namespace facebook::react;
12
-
13
- namespace reanimated {
14
-
15
- class ReanimatedCommitHook
16
- : public UIManagerCommitHook,
17
- public std::enable_shared_from_this<ReanimatedCommitHook> {
18
- public:
19
- ReanimatedCommitHook(
20
- const std::shared_ptr<PropsRegistry> &propsRegistry,
21
- const std::shared_ptr<UIManager> &uiManager,
22
- const std::shared_ptr<LayoutAnimationsProxy> &layoutAnimationsProxy);
23
-
24
- ~ReanimatedCommitHook() noexcept override;
25
-
26
- void commitHookWasRegistered(UIManager const &) noexcept override {}
27
-
28
- void commitHookWasUnregistered(UIManager const &) noexcept override {}
29
-
30
- void maybeInitializeLayoutAnimations(SurfaceId surfaceId);
31
-
32
- RootShadowNode::Unshared shadowTreeWillCommit(
33
- ShadowTree const &shadowTree,
34
- RootShadowNode::Shared const &oldRootShadowNode,
35
- RootShadowNode::Unshared const &newRootShadowNode) noexcept override;
36
-
37
- private:
38
- std::shared_ptr<PropsRegistry> propsRegistry_;
39
-
40
- std::shared_ptr<UIManager> uiManager_;
41
-
42
- std::shared_ptr<LayoutAnimationsProxy> layoutAnimationsProxy_;
43
-
44
- SurfaceId currentMaxSurfaceId_ = -1;
45
-
46
- std::mutex mutex_; // Protects `currentMaxSurfaceId_`.
47
- };
48
-
49
- } // namespace reanimated
50
-
51
- #endif // RCT_NEW_ARCH_ENABLED
1
+ #pragma once
2
+
3
+ #include <reanimated/Fabric/updates/UpdatesRegistryManager.h>
4
+ #include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
5
+
6
+ #include <react/renderer/uimanager/UIManagerCommitHook.h>
7
+
8
+ #include <memory>
9
+
10
+ using namespace facebook::react;
11
+
12
+ namespace reanimated {
13
+
14
+ class ReanimatedCommitHook : public UIManagerCommitHook, public std::enable_shared_from_this<ReanimatedCommitHook> {
15
+ public:
16
+ ReanimatedCommitHook(
17
+ const std::shared_ptr<UIManager> &uiManager,
18
+ const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
19
+ const std::shared_ptr<LayoutAnimationsProxyCommon> &layoutAnimationsProxy);
20
+
21
+ ~ReanimatedCommitHook() noexcept override;
22
+
23
+ void commitHookWasRegistered(UIManager const &) noexcept override {}
24
+
25
+ void commitHookWasUnregistered(UIManager const &) noexcept override {}
26
+
27
+ void maybeInitializeLayoutAnimations(SurfaceId surfaceId);
28
+
29
+ RootShadowNode::Unshared shadowTreeWillCommit(
30
+ ShadowTree const &shadowTree,
31
+ RootShadowNode::Shared const &oldRootShadowNode,
32
+ RootShadowNode::Unshared const &newRootShadowNode
33
+ #if REACT_NATIVE_MINOR_VERSION >= 80
34
+ ,
35
+ const ShadowTreeCommitOptions &commitOptions
36
+ #endif
37
+ ) noexcept override;
38
+
39
+ private:
40
+ std::shared_ptr<UIManager> uiManager_;
41
+ std::shared_ptr<UpdatesRegistryManager> updatesRegistryManager_;
42
+ std::shared_ptr<LayoutAnimationsProxyCommon> layoutAnimationsProxy_;
43
+
44
+ SurfaceId currentMaxSurfaceId_ = -1;
45
+
46
+ std::mutex mutex_; // Protects `currentMaxSurfaceId_`.
47
+ };
48
+
49
+ } // namespace reanimated
@@ -1,49 +1,46 @@
1
- #pragma once
2
- #ifdef RCT_NEW_ARCH_ENABLED
3
-
4
- #include <react/renderer/core/ShadowNode.h>
5
-
6
- using namespace facebook::react;
7
-
8
- namespace reanimated {
9
-
10
- // We use this trait to mark that a commit was created by Reanimated.
11
- // Traits are copied when nodes are cloned, so this information
12
- // won't be lost unless someone explicitly overrides it.
13
- // We need this information to skip unnecessary updates in
14
- // the commit hook.
15
- // Currently RN traits go up to 10, so hopefully
16
- // the arbitrarily chosen numbers 27 and 28 will be safe :)
17
-
18
- // We have to use 2 traits, because we want to distinguish reanimated
19
- // commits both in the commit hook and mount hook. If we only had one trait
20
- // and didn't remove it in the commit hook, then any node that would clone
21
- // this node would also have our commit trait, rendering this trait useless.
22
- constexpr ShadowNodeTraits::Trait ReanimatedCommitTrait{1 << 27};
23
- constexpr ShadowNodeTraits::Trait ReanimatedMountTrait{1 << 28};
24
-
25
- class ReanimatedCommitShadowNode : public ShadowNode {
26
- public:
27
- inline void setReanimatedCommitTrait() {
28
- traits_.set(ReanimatedCommitTrait);
29
- }
30
- inline void unsetReanimatedCommitTrait() {
31
- traits_.unset(ReanimatedCommitTrait);
32
- }
33
- inline bool hasReanimatedCommitTrait() {
34
- return traits_.check(ReanimatedCommitTrait);
35
- }
36
- inline void setReanimatedMountTrait() {
37
- traits_.set(ReanimatedMountTrait);
38
- }
39
- inline void unsetReanimatedMountTrait() {
40
- traits_.unset(ReanimatedMountTrait);
41
- }
42
- inline bool hasReanimatedMountTrait() {
43
- return traits_.check(ReanimatedMountTrait);
44
- }
45
- };
46
-
47
- } // namespace reanimated
48
-
49
- #endif // RCT_NEW_ARCH_ENABLED
1
+ #pragma once
2
+
3
+ #include <react/renderer/core/ShadowNode.h>
4
+
5
+ using namespace facebook::react;
6
+
7
+ namespace reanimated {
8
+
9
+ // We use this trait to mark that a commit was created by Reanimated.
10
+ // Traits are copied when nodes are cloned, so this information
11
+ // won't be lost unless someone explicitly overrides it.
12
+ // We need this information to skip unnecessary updates in
13
+ // the commit hook.
14
+ // Currently RN traits go up to 10, so hopefully
15
+ // the arbitrarily chosen numbers 27 and 28 will be safe :)
16
+
17
+ // We have to use 2 traits, because we want to distinguish reanimated
18
+ // commits both in the commit hook and mount hook. If we only had one trait
19
+ // and didn't remove it in the commit hook, then any node that would clone
20
+ // this node would also have our commit trait, rendering this trait useless.
21
+ constexpr ShadowNodeTraits::Trait ReanimatedCommitTrait{1 << 27};
22
+ constexpr ShadowNodeTraits::Trait ReanimatedMountTrait{1 << 28};
23
+
24
+ class ReanimatedCommitShadowNode : public ShadowNode {
25
+ public:
26
+ inline void setReanimatedCommitTrait() {
27
+ traits_.set(ReanimatedCommitTrait);
28
+ }
29
+ inline void unsetReanimatedCommitTrait() {
30
+ traits_.unset(ReanimatedCommitTrait);
31
+ }
32
+ inline bool hasReanimatedCommitTrait() {
33
+ return traits_.check(ReanimatedCommitTrait);
34
+ }
35
+ inline void setReanimatedMountTrait() {
36
+ traits_.set(ReanimatedMountTrait);
37
+ }
38
+ inline void unsetReanimatedMountTrait() {
39
+ traits_.unset(ReanimatedMountTrait);
40
+ }
41
+ inline bool hasReanimatedMountTrait() {
42
+ return traits_.check(ReanimatedMountTrait);
43
+ }
44
+ };
45
+
46
+ } // namespace reanimated
@@ -1,96 +1,56 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
-
3
- #include <glog/logging.h>
4
- #include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
5
- #include <reanimated/Fabric/ReanimatedMountHook.h>
6
-
7
- namespace reanimated {
8
-
9
- ReanimatedMountHook::ReanimatedMountHook(
10
- const std::shared_ptr<PropsRegistry> &propsRegistry,
11
- const std::shared_ptr<UIManager> &uiManager)
12
- : propsRegistry_(propsRegistry), uiManager_(uiManager) {
13
- uiManager_->registerMountHook(*this);
14
- }
15
-
16
- ReanimatedMountHook::~ReanimatedMountHook() noexcept {
17
- uiManager_->unregisterMountHook(*this);
18
- }
19
-
20
- void ReanimatedMountHook::shadowTreeDidMount(
21
- const RootShadowNode::Shared &rootShadowNode,
22
- double) noexcept {
23
- auto reaShadowNode =
24
- std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(
25
- std::const_pointer_cast<RootShadowNode>(rootShadowNode));
26
-
27
- if (reaShadowNode->hasReanimatedMountTrait()) {
28
- // We mark reanimated commits with ReanimatedMountTrait. We don't want other
29
- // shadow nodes to use this trait, but since this rootShadowNode is Shared,
30
- // we don't have that guarantee. That's why we also unset this trait in the
31
- // commit hook. We remove it here mainly for the sake of cleanliness.
32
- reaShadowNode->unsetReanimatedMountTrait();
33
- return;
34
- }
35
-
36
- {
37
- auto lock = propsRegistry_->createLock();
38
- propsRegistry_->handleNodeRemovals(*rootShadowNode);
39
-
40
- // When commit from React Native has finished, we reset the skip commit flag
41
- // in order to allow Reanimated to commit its tree
42
- propsRegistry_->unpauseReanimatedCommits();
43
- if (!propsRegistry_->shouldCommitAfterPause()) {
44
- return;
45
- }
46
- }
47
-
48
- try {
49
- const auto &shadowTreeRegistry = uiManager_->getShadowTreeRegistry();
50
- shadowTreeRegistry.visit(
51
- rootShadowNode->getSurfaceId(), [=](ShadowTree const &shadowTree) {
52
- shadowTree.commit(
53
- [=](RootShadowNode const &oldRootShadowNode)
54
- -> RootShadowNode::Unshared {
55
- PropsMap propsMap;
56
-
57
- RootShadowNode::Unshared rootNode =
58
- std::static_pointer_cast<RootShadowNode>(
59
- oldRootShadowNode.ShadowNode::clone({}));
60
-
61
- if (rootNode) {
62
- auto lock = propsRegistry_->createLock();
63
-
64
- if (!propsRegistry_->isEmpty()) {
65
- propsRegistry_->for_each([&](const ShadowNodeFamily &family,
66
- const folly::dynamic &props) {
67
- propsMap[&family].emplace_back(props);
68
- });
69
-
70
- rootNode = cloneShadowTreeWithNewProps(oldRootShadowNode, propsMap);
71
- }
72
- }
73
-
74
- if (rootNode) {
75
- auto reaShadowNode =
76
- std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(
77
- rootNode);
78
- reaShadowNode->setReanimatedCommitTrait();
79
- }
80
-
81
- return rootNode;
82
- },
83
- {/* .enableStateReconciliation = */
84
- false,
85
- /* .mountSynchronously = */ true});
86
- });
87
- } catch (const std::exception &e) {
88
- LOG(ERROR) << "ReanimatedMountHook::shadowTreeDidMount error: " << e.what();
89
- } catch (...) {
90
- LOG(ERROR) << "ReanimatedMountHook::shadowTreeDidMount unknown error";
91
- }
92
- }
93
-
94
- } // namespace reanimated
95
-
96
- #endif // RCT_NEW_ARCH_ENABLED
1
+ #include <reanimated/Fabric/ReanimatedCommitShadowNode.h>
2
+ #include <reanimated/Fabric/ReanimatedMountHook.h>
3
+ #include <reanimated/Tools/ReanimatedSystraceSection.h>
4
+
5
+ #include <memory>
6
+
7
+ namespace reanimated {
8
+
9
+ ReanimatedMountHook::ReanimatedMountHook(
10
+ const std::shared_ptr<UIManager> &uiManager,
11
+ const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
12
+ const std::function<void()> &requestFlush)
13
+ : uiManager_(uiManager), updatesRegistryManager_(updatesRegistryManager), requestFlush_(requestFlush) {
14
+ uiManager_->registerMountHook(*this);
15
+ }
16
+
17
+ ReanimatedMountHook::~ReanimatedMountHook() noexcept {
18
+ uiManager_->unregisterMountHook(*this);
19
+ }
20
+
21
+ void ReanimatedMountHook::shadowTreeDidMount(
22
+ const RootShadowNode::Shared &rootShadowNode,
23
+ #if REACT_NATIVE_MINOR_VERSION >= 81
24
+ HighResTimeStamp
25
+ #else
26
+ double
27
+ #endif // REACT_NATIVE_MINOR_VERSION >= 81
28
+ ) noexcept {
29
+ ReanimatedSystraceSection s("ReanimatedMountHook::shadowTreeDidMount");
30
+
31
+ auto reaShadowNode = std::reinterpret_pointer_cast<ReanimatedCommitShadowNode>(
32
+ std::const_pointer_cast<RootShadowNode>(rootShadowNode));
33
+
34
+ if (reaShadowNode->hasReanimatedMountTrait()) {
35
+ // We mark reanimated commits with ReanimatedMountTrait. We don't want other
36
+ // shadow nodes to use this trait, but since this rootShadowNode is Shared,
37
+ // we don't have that guarantee. That's why we also unset this trait in the
38
+ // commit hook. We remove it here mainly for the sake of cleanliness.
39
+ reaShadowNode->unsetReanimatedMountTrait();
40
+ return;
41
+ }
42
+
43
+ {
44
+ auto lock = updatesRegistryManager_->lock();
45
+ updatesRegistryManager_->handleNodeRemovals(*rootShadowNode);
46
+
47
+ // When commit from React Native has finished, we reset the skip commit flag
48
+ // in order to allow Reanimated to commit its tree
49
+ updatesRegistryManager_->unpauseReanimatedCommits();
50
+ if (updatesRegistryManager_->shouldCommitAfterPause()) {
51
+ requestFlush_();
52
+ }
53
+ }
54
+ }
55
+
56
+ } // namespace reanimated
@@ -1,33 +1,37 @@
1
- #pragma once
2
- #ifdef RCT_NEW_ARCH_ENABLED
3
-
4
- #include <reanimated/Fabric/PropsRegistry.h>
5
- #include <reanimated/Fabric/ShadowTreeCloner.h>
6
-
7
- #include <react/renderer/uimanager/UIManagerMountHook.h>
8
-
9
- #include <memory>
10
-
11
- namespace reanimated {
12
-
13
- using namespace facebook::react;
14
-
15
- class ReanimatedMountHook : public UIManagerMountHook {
16
- public:
17
- ReanimatedMountHook(
18
- const std::shared_ptr<PropsRegistry> &propsRegistry,
19
- const std::shared_ptr<UIManager> &uiManager);
20
- ~ReanimatedMountHook() noexcept override;
21
-
22
- void shadowTreeDidMount(
23
- RootShadowNode::Shared const &rootShadowNode,
24
- double mountTime) noexcept override;
25
-
26
- private:
27
- const std::shared_ptr<PropsRegistry> propsRegistry_;
28
- const std::shared_ptr<UIManager> uiManager_;
29
- };
30
-
31
- } // namespace reanimated
32
-
33
- #endif // RCT_NEW_ARCH_ENABLED
1
+ #pragma once
2
+
3
+ #include <reanimated/Fabric/ShadowTreeCloner.h>
4
+ #include <reanimated/Fabric/updates/UpdatesRegistryManager.h>
5
+
6
+ #include <react/renderer/uimanager/UIManagerMountHook.h>
7
+
8
+ #include <memory>
9
+
10
+ namespace reanimated {
11
+
12
+ using namespace facebook::react;
13
+
14
+ class ReanimatedMountHook : public UIManagerMountHook {
15
+ public:
16
+ ReanimatedMountHook(
17
+ const std::shared_ptr<UIManager> &uiManager,
18
+ const std::shared_ptr<UpdatesRegistryManager> &updatesRegistryManager,
19
+ const std::function<void()> &requestFlush);
20
+ ~ReanimatedMountHook() noexcept override;
21
+
22
+ void shadowTreeDidMount(
23
+ RootShadowNode::Shared const &rootShadowNode,
24
+ #if REACT_NATIVE_MINOR_VERSION >= 81
25
+ HighResTimeStamp mountTime
26
+ #else
27
+ double mountTime
28
+ #endif // REACT_NATIVE_MINOR_VERSION >= 81
29
+ ) noexcept override;
30
+
31
+ private:
32
+ const std::shared_ptr<UIManager> uiManager_;
33
+ const std::shared_ptr<UpdatesRegistryManager> updatesRegistryManager_;
34
+ const std::function<void()> requestFlush_;
35
+ };
36
+
37
+ } // namespace reanimated