@react-native-ohos/react-native-reanimated 4.0.0-rc.1 → 4.0.2-beta.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 (235) hide show
  1. package/compatibility.json +161 -161
  2. package/harmony/reanimated/BuildProfile.ets +16 -16
  3. package/harmony/reanimated/build-profile.json5 +18 -18
  4. package/harmony/reanimated/hvigorfile.ts +4 -4
  5. package/harmony/reanimated/index.ets +4 -4
  6. package/harmony/reanimated/oh-package-lock.json5 +39 -0
  7. package/harmony/reanimated/oh-package.json5 +12 -12
  8. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +65 -62
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -93
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -44
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -110
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1376
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -228
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
  200. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
  201. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
  202. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
  203. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +233 -230
  204. package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
  205. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
  206. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
  207. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
  208. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
  209. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
  210. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
  211. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
  212. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
  213. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
  214. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
  215. package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
  216. package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
  217. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +51 -51
  218. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
  219. package/harmony/reanimated/src/main/module.json5 +12 -12
  220. package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
  221. package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
  222. package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
  223. package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
  224. package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
  225. package/harmony/reanimated/ts.ts +6 -6
  226. package/harmony/reanimated.har +0 -0
  227. package/package.json +70 -68
  228. package/scripts/deploy.js +191 -191
  229. package/scripts/set-reanimated-version.js +37 -37
  230. package/scripts/update-version.js +119 -119
  231. package/scripts/validate-react-native-version.js +46 -46
  232. package/scripts/validate-worklets-build.js +17 -17
  233. package/scripts/validate-worklets-version.js +84 -79
  234. package/scripts/worklets-version.json +4 -4
  235. package/src/index.ts +9 -9
@@ -1,149 +1,149 @@
1
- #include <reanimated/CSS/utils/props.h>
2
-
3
- #include <string>
4
- #include <utility>
5
-
6
- namespace reanimated::css {
7
-
8
- bool isDiscreteProperty(const std::string &propName, const std::string &componentName) {
9
- const auto &interpolators = getComponentInterpolators(componentName);
10
- const auto it = interpolators.find(propName);
11
- if (it == interpolators.end()) {
12
- return false;
13
- }
14
- return it->second->isDiscreteProperty();
15
- }
16
-
17
- bool areArraysDifferentRecursive(const folly::dynamic &oldArray, const folly::dynamic &newArray) {
18
- if (oldArray.size() != newArray.size()) {
19
- return true;
20
- }
21
-
22
- for (size_t i = 0; i < oldArray.size(); i++) {
23
- const auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldArray[i], newArray[i]);
24
-
25
- if (!oldChangedProp.isNull() || !newChangedProp.isNull()) {
26
- return true;
27
- }
28
- }
29
-
30
- return false;
31
- }
32
-
33
- std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
34
- const folly::dynamic &oldProp,
35
- const folly::dynamic &newProp) {
36
- if (!oldProp.isObject() || !newProp.isObject()) {
37
- // Primitive values comparison
38
- if (oldProp != newProp) {
39
- return {oldProp, newProp};
40
- }
41
- return {folly::dynamic(), folly::dynamic()};
42
- }
43
-
44
- if (oldProp.isArray() && newProp.isArray()) {
45
- // Arrays comparison
46
- if (areArraysDifferentRecursive(oldProp, newProp)) {
47
- return {oldProp, newProp};
48
- }
49
- return {folly::dynamic(), folly::dynamic()};
50
- }
51
-
52
- folly::dynamic oldResult = folly::dynamic::object;
53
- folly::dynamic newResult = folly::dynamic::object;
54
- bool oldHasChanges = false;
55
- bool newHasChanges = false;
56
-
57
- // Check for removed properties
58
- for (const auto &item : oldProp.items()) {
59
- const auto &propName = item.first.asString();
60
- if (!newProp.count(propName)) {
61
- const auto &oldValue = item.second;
62
- oldResult[propName] = oldValue;
63
- oldHasChanges = true;
64
- }
65
- }
66
-
67
- // Check for new and changed properties
68
- for (const auto &item : newProp.items()) {
69
- const auto &propName = item.first.asString();
70
- const auto &newValue = item.second;
71
-
72
- if (oldProp.count(propName)) {
73
- const auto &oldValue = oldProp[propName];
74
- auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldValue, newValue);
75
-
76
- if (!oldChangedProp.isNull() && !newChangedProp.isNull()) {
77
- oldResult[propName] = std::move(oldChangedProp);
78
- newResult[propName] = std::move(newChangedProp);
79
- oldHasChanges = true;
80
- newHasChanges = true;
81
- }
82
- } else {
83
- newResult[propName] = newValue;
84
- newHasChanges = true;
85
- }
86
- }
87
-
88
- return {
89
- oldHasChanges ? std::move(oldResult) : folly::dynamic(), newHasChanges ? std::move(newResult) : folly::dynamic()};
90
- }
91
-
92
- std::pair<folly::dynamic, folly::dynamic>
93
- getChangedValueForProp(const folly::dynamic &oldObject, const folly::dynamic &newObject, const std::string &propName) {
94
- const bool oldHasProperty = oldObject.count(propName);
95
- const bool newHasProperty = newObject.count(propName);
96
-
97
- if (oldHasProperty && newHasProperty) {
98
- const auto &oldVal = oldObject[propName];
99
- const auto &newVal = newObject[propName];
100
-
101
- if (oldVal.isObject() && newVal.isObject()) {
102
- return getChangedPropsRecursive(oldVal, newVal);
103
- } else if (oldVal != newVal) {
104
- return {oldVal, newVal};
105
- }
106
-
107
- return {folly::dynamic(), folly::dynamic()};
108
- }
109
-
110
- if (oldHasProperty) {
111
- const auto &oldVal = oldObject[propName];
112
- return {oldVal, folly::dynamic()};
113
- } else if (newHasProperty) {
114
- const auto &newVal = newObject[propName];
115
- return {folly::dynamic(), newVal};
116
- }
117
-
118
- return {folly::dynamic(), folly::dynamic()};
119
- }
120
-
121
- ChangedProps getChangedProps(
122
- const folly::dynamic &oldProps,
123
- const folly::dynamic &newProps,
124
- const PropertyNames &allowedProperties) {
125
- folly::dynamic oldResult = folly::dynamic::object;
126
- folly::dynamic newResult = folly::dynamic::object;
127
- PropertyNames changedPropertyNames;
128
-
129
- for (const auto &propName : allowedProperties) {
130
- auto [oldChangedProp, newChangedProp] = getChangedValueForProp(oldProps, newProps, propName);
131
-
132
- const auto hasOldChangedProp = !oldChangedProp.isNull();
133
- const auto hasNewChangedProp = !newChangedProp.isNull();
134
-
135
- if (hasOldChangedProp) {
136
- oldResult[propName] = std::move(oldChangedProp);
137
- }
138
- if (hasNewChangedProp) {
139
- newResult[propName] = std::move(newChangedProp);
140
- }
141
- if (hasOldChangedProp || hasNewChangedProp) {
142
- changedPropertyNames.push_back(propName);
143
- }
144
- }
145
-
146
- return {std::move(oldResult), std::move(newResult), std::move(changedPropertyNames)};
147
- }
148
-
149
- } // namespace reanimated::css
1
+ #include <reanimated/CSS/utils/props.h>
2
+
3
+ #include <string>
4
+ #include <utility>
5
+
6
+ namespace reanimated::css {
7
+
8
+ bool isDiscreteProperty(const std::string &propName, const std::string &componentName) {
9
+ const auto &interpolators = getComponentInterpolators(componentName);
10
+ const auto it = interpolators.find(propName);
11
+ if (it == interpolators.end()) {
12
+ return false;
13
+ }
14
+ return it->second->isDiscreteProperty();
15
+ }
16
+
17
+ bool areArraysDifferentRecursive(const folly::dynamic &oldArray, const folly::dynamic &newArray) {
18
+ if (oldArray.size() != newArray.size()) {
19
+ return true;
20
+ }
21
+
22
+ for (size_t i = 0; i < oldArray.size(); i++) {
23
+ const auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldArray[i], newArray[i]);
24
+
25
+ if (!oldChangedProp.isNull() || !newChangedProp.isNull()) {
26
+ return true;
27
+ }
28
+ }
29
+
30
+ return false;
31
+ }
32
+
33
+ std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
34
+ const folly::dynamic &oldProp,
35
+ const folly::dynamic &newProp) {
36
+ if (!oldProp.isObject() || !newProp.isObject()) {
37
+ // Primitive values comparison
38
+ if (oldProp != newProp) {
39
+ return {oldProp, newProp};
40
+ }
41
+ return {folly::dynamic(), folly::dynamic()};
42
+ }
43
+
44
+ if (oldProp.isArray() && newProp.isArray()) {
45
+ // Arrays comparison
46
+ if (areArraysDifferentRecursive(oldProp, newProp)) {
47
+ return {oldProp, newProp};
48
+ }
49
+ return {folly::dynamic(), folly::dynamic()};
50
+ }
51
+
52
+ folly::dynamic oldResult = folly::dynamic::object;
53
+ folly::dynamic newResult = folly::dynamic::object;
54
+ bool oldHasChanges = false;
55
+ bool newHasChanges = false;
56
+
57
+ // Check for removed properties
58
+ for (const auto &item : oldProp.items()) {
59
+ const auto &propName = item.first.asString();
60
+ if (!newProp.count(propName)) {
61
+ const auto &oldValue = item.second;
62
+ oldResult[propName] = oldValue;
63
+ oldHasChanges = true;
64
+ }
65
+ }
66
+
67
+ // Check for new and changed properties
68
+ for (const auto &item : newProp.items()) {
69
+ const auto &propName = item.first.asString();
70
+ const auto &newValue = item.second;
71
+
72
+ if (oldProp.count(propName)) {
73
+ const auto &oldValue = oldProp[propName];
74
+ auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldValue, newValue);
75
+
76
+ if (!oldChangedProp.isNull() && !newChangedProp.isNull()) {
77
+ oldResult[propName] = std::move(oldChangedProp);
78
+ newResult[propName] = std::move(newChangedProp);
79
+ oldHasChanges = true;
80
+ newHasChanges = true;
81
+ }
82
+ } else {
83
+ newResult[propName] = newValue;
84
+ newHasChanges = true;
85
+ }
86
+ }
87
+
88
+ return {
89
+ oldHasChanges ? std::move(oldResult) : folly::dynamic(), newHasChanges ? std::move(newResult) : folly::dynamic()};
90
+ }
91
+
92
+ std::pair<folly::dynamic, folly::dynamic>
93
+ getChangedValueForProp(const folly::dynamic &oldObject, const folly::dynamic &newObject, const std::string &propName) {
94
+ const bool oldHasProperty = oldObject.count(propName);
95
+ const bool newHasProperty = newObject.count(propName);
96
+
97
+ if (oldHasProperty && newHasProperty) {
98
+ const auto &oldVal = oldObject[propName];
99
+ const auto &newVal = newObject[propName];
100
+
101
+ if (oldVal.isObject() && newVal.isObject()) {
102
+ return getChangedPropsRecursive(oldVal, newVal);
103
+ } else if (oldVal != newVal) {
104
+ return {oldVal, newVal};
105
+ }
106
+
107
+ return {folly::dynamic(), folly::dynamic()};
108
+ }
109
+
110
+ if (oldHasProperty) {
111
+ const auto &oldVal = oldObject[propName];
112
+ return {oldVal, folly::dynamic()};
113
+ } else if (newHasProperty) {
114
+ const auto &newVal = newObject[propName];
115
+ return {folly::dynamic(), newVal};
116
+ }
117
+
118
+ return {folly::dynamic(), folly::dynamic()};
119
+ }
120
+
121
+ ChangedProps getChangedProps(
122
+ const folly::dynamic &oldProps,
123
+ const folly::dynamic &newProps,
124
+ const PropertyNames &allowedProperties) {
125
+ folly::dynamic oldResult = folly::dynamic::object;
126
+ folly::dynamic newResult = folly::dynamic::object;
127
+ PropertyNames changedPropertyNames;
128
+
129
+ for (const auto &propName : allowedProperties) {
130
+ auto [oldChangedProp, newChangedProp] = getChangedValueForProp(oldProps, newProps, propName);
131
+
132
+ const auto hasOldChangedProp = !oldChangedProp.isNull();
133
+ const auto hasNewChangedProp = !newChangedProp.isNull();
134
+
135
+ if (hasOldChangedProp) {
136
+ oldResult[propName] = std::move(oldChangedProp);
137
+ }
138
+ if (hasNewChangedProp) {
139
+ newResult[propName] = std::move(newChangedProp);
140
+ }
141
+ if (hasOldChangedProp || hasNewChangedProp) {
142
+ changedPropertyNames.push_back(propName);
143
+ }
144
+ }
145
+
146
+ return {std::move(oldResult), std::move(newResult), std::move(changedPropertyNames)};
147
+ }
148
+
149
+ } // namespace reanimated::css
@@ -1,32 +1,32 @@
1
- #pragma once
2
-
3
- #include <reanimated/CSS/InterpolatorRegistry.h>
4
- #include <reanimated/CSS/common/definitions.h>
5
-
6
- #include <memory>
7
- #include <string>
8
- #include <unordered_map>
9
- #include <unordered_set>
10
- #include <utility>
11
-
12
- namespace reanimated::css {
13
-
14
- struct ChangedProps {
15
- const folly::dynamic oldProps;
16
- const folly::dynamic newProps;
17
- const PropertyNames changedPropertyNames;
18
- };
19
-
20
- bool isDiscreteProperty(const std::string &propName, const std::string &componentName);
21
-
22
- // We need to specify it here because there are 2 methods referencing
23
- // each other in the recursion and areArraysDifferentRecursive must be
24
- // aware that getChangedPropsRecursive exists
25
- std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
26
- const folly::dynamic &oldProp,
27
- const folly::dynamic &newProp);
28
-
29
- ChangedProps
30
- getChangedProps(const folly::dynamic &oldProps, const folly::dynamic &newProps, const PropertyNames &allowedProperties);
31
-
32
- } // namespace reanimated::css
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/InterpolatorRegistry.h>
4
+ #include <reanimated/CSS/common/definitions.h>
5
+
6
+ #include <memory>
7
+ #include <string>
8
+ #include <unordered_map>
9
+ #include <unordered_set>
10
+ #include <utility>
11
+
12
+ namespace reanimated::css {
13
+
14
+ struct ChangedProps {
15
+ const folly::dynamic oldProps;
16
+ const folly::dynamic newProps;
17
+ const PropertyNames changedPropertyNames;
18
+ };
19
+
20
+ bool isDiscreteProperty(const std::string &propName, const std::string &componentName);
21
+
22
+ // We need to specify it here because there are 2 methods referencing
23
+ // each other in the recursion and areArraysDifferentRecursive must be
24
+ // aware that getChangedPropsRecursive exists
25
+ std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
26
+ const folly::dynamic &oldProp,
27
+ const folly::dynamic &newProp);
28
+
29
+ ChangedProps
30
+ getChangedProps(const folly::dynamic &oldProps, const folly::dynamic &newProps, const PropertyNames &allowedProperties);
31
+
32
+ } // namespace reanimated::css
@@ -1,113 +1,113 @@
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
+ #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