react-native 0.66.0-rc.4 → 0.67.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 (447) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
  5. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  6. package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
  7. package/Libraries/Animated/components/AnimatedText.js +3 -3
  8. package/Libraries/Animated/components/AnimatedView.js +1 -3
  9. package/Libraries/Animated/createAnimatedComponent.js +3 -34
  10. package/Libraries/Components/Button.js +3 -0
  11. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  13. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollView.js +17 -16
  15. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  16. package/Libraries/Components/View/View.js +1 -1
  17. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  18. package/Libraries/Core/ExceptionsManager.js +45 -80
  19. package/Libraries/Core/ExtendedError.js +0 -1
  20. package/Libraries/Core/ReactNativeVersion.js +2 -2
  21. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  22. package/Libraries/Core/setUpGlobals.js +2 -4
  23. package/Libraries/Core/setUpTimers.js +2 -2
  24. package/Libraries/Image/Image.ios.js +6 -0
  25. package/Libraries/Image/ImageBackground.js +10 -8
  26. package/Libraries/Image/ImageProps.js +28 -0
  27. package/Libraries/Image/RCTImageView.mm +4 -0
  28. package/Libraries/LogBox/Data/LogBoxData.js +18 -19
  29. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  30. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  31. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  32. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  33. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  34. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  35. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  36. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  37. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
  38. package/Libraries/NewAppScreen/components/logo.png +0 -0
  39. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  40. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  41. package/Libraries/Pressability/Pressability.js +13 -13
  42. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  43. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  44. package/Libraries/ReactNative/AppRegistry.js +4 -2
  45. package/Libraries/Renderer/REVISION +1 -1
  46. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
  47. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
  48. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
  51. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
  52. package/Libraries/Share/Share.js +1 -1
  53. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  54. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
  55. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  56. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  57. package/Libraries/Text/TextProps.js +1 -7
  58. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  59. package/Libraries/Utilities/HMRClient.js +1 -1
  60. package/README.md +1 -1
  61. package/React/Base/RCTBridge+Private.h +8 -0
  62. package/React/Base/RCTBridge.h +4 -0
  63. package/React/Base/RCTBridge.m +19 -7
  64. package/React/Base/RCTBridgeModule.h +2 -11
  65. package/React/Base/RCTBundleURLProvider.h +1 -1
  66. package/React/Base/RCTBundleURLProvider.mm +5 -3
  67. package/React/Base/RCTConstants.h +0 -6
  68. package/React/Base/RCTConstants.m +0 -15
  69. package/React/Base/RCTConvert.h +1 -1
  70. package/React/Base/RCTDefines.h +12 -3
  71. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  72. package/React/Base/RCTJSThread.h +29 -0
  73. package/React/Base/RCTJSThread.m +19 -0
  74. package/React/Base/RCTRootView.h +15 -0
  75. package/React/Base/RCTRootView.m +15 -0
  76. package/React/Base/RCTTouchHandler.m +1 -9
  77. package/React/Base/RCTUtils.h +3 -0
  78. package/React/Base/RCTUtils.m +14 -7
  79. package/React/Base/RCTVersion.m +2 -2
  80. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  81. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  82. package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
  83. package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
  84. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  85. package/React/CoreModules/RCTAppearance.mm +3 -1
  86. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  87. package/React/CoreModules/RCTDevSettings.mm +6 -6
  88. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  89. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  90. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  91. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  92. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  93. package/React/CoreModules/RCTRedBox.mm +1 -5
  94. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  95. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  96. package/React/DevSupport/RCTPackagerConnection.mm +9 -5
  97. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
  98. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
  100. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  101. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
  102. package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
  103. package/React/Fabric/RCTScheduler.mm +12 -5
  104. package/React/Fabric/RCTSurfacePresenter.mm +0 -4
  105. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  106. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
  107. package/React/React-RCTFabric.podspec +0 -1
  108. package/React/Views/RCTFont.mm +54 -38
  109. package/React/Views/RCTView.m +1 -6
  110. package/React/Views/RCTViewManager.m +3 -2
  111. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  112. package/React/Views/ScrollView/RCTScrollView.m +5 -15
  113. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
  114. package/React/Views/UIView+React.m +2 -11
  115. package/React-Core.podspec +0 -1
  116. package/ReactAndroid/build.gradle +11 -5
  117. package/ReactAndroid/gradle.properties +1 -1
  118. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  119. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  120. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
  121. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  122. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +7 -0
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -0
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +46 -1
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  127. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  137. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  147. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  162. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  163. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.java +10 -1
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  176. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  177. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  178. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  179. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  180. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  181. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  195. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  196. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +8 -8
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  210. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  211. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  212. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  213. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  214. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  215. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  216. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  217. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  218. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  219. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  220. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  221. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  222. package/ReactCommon/React-Fabric.podspec +9 -1
  223. package/ReactCommon/better/BUCK +0 -6
  224. package/ReactCommon/callinvoker/BUCK +2 -8
  225. package/ReactCommon/cxxreact/BUCK +1 -16
  226. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  227. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  228. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  229. package/ReactCommon/jsi/BUCK +0 -9
  230. package/ReactCommon/jsinspector/BUCK +0 -5
  231. package/ReactCommon/logger/BUCK +0 -5
  232. package/ReactCommon/react/config/BUCK +0 -6
  233. package/ReactCommon/react/debug/BUCK +0 -6
  234. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  235. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  236. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  237. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  238. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  239. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  241. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  242. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  243. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  244. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  245. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  246. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  247. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  248. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  249. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  250. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  251. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  252. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  253. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  254. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  255. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  256. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  257. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  258. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  259. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  261. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  262. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  263. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  264. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  266. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  268. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  269. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  271. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  273. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  275. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  276. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  277. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  278. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  279. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  280. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  281. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  282. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  283. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  284. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  285. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  286. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  287. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  288. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  289. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  290. package/ReactCommon/react/renderer/core/BUCK +2 -6
  291. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  292. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  293. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  294. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  295. package/ReactCommon/react/renderer/core/Props.h +1 -0
  296. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  297. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  298. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  299. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  300. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  301. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  302. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  303. package/ReactCommon/react/renderer/element/BUCK +0 -6
  304. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  305. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  306. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  307. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  308. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  309. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  310. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  311. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  312. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  313. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  314. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  315. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  316. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  317. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  318. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  319. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  320. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  321. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  325. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  326. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  327. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  328. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  330. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  331. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  332. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  333. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  334. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  335. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  336. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  337. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  338. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  339. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  340. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  341. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  342. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  343. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  344. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  345. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  346. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  347. package/ReactCommon/react/test_utils/BUCK +3 -6
  348. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  349. package/ReactCommon/react/utils/BUCK +0 -6
  350. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  351. package/ReactCommon/reactperflogger/BUCK +0 -4
  352. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  353. package/ReactCommon/yoga/BUCK +1 -5
  354. package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.aar → 0.67.0-rc.1/react-native-0.67.0-rc.1.aar} +0 -0
  355. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.md5 +1 -0
  356. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha1 +1 -0
  357. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha256 +1 -0
  358. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.aar.sha512 +1 -0
  359. package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.module → 0.67.0-rc.1/react-native-0.67.0-rc.1.module} +16 -17
  360. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.md5 +1 -0
  361. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha1 +1 -0
  362. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha256 +1 -0
  363. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.module.sha512 +1 -0
  364. package/android/com/facebook/react/react-native/{0.66.0-rc.4/react-native-0.66.0-rc.4.pom → 0.67.0-rc.1/react-native-0.67.0-rc.1.pom} +2 -2
  365. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.md5 +1 -0
  366. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha1 +1 -0
  367. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha256 +1 -0
  368. package/android/com/facebook/react/react-native/0.67.0-rc.1/react-native-0.67.0-rc.1.pom.sha512 +1 -0
  369. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  370. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  371. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  372. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  373. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  374. package/flow/global.js +45 -0
  375. package/index.js +15 -10
  376. package/jest/mockModal.js +31 -0
  377. package/jest/setup.js +5 -3
  378. package/package.json +8 -9
  379. package/react.gradle +53 -18
  380. package/scripts/find-node.sh +13 -0
  381. package/scripts/generate-specs-cli.js +18 -0
  382. package/scripts/ios-configure-glog.sh +4 -0
  383. package/scripts/react-native-xcode.sh +7 -7
  384. package/scripts/react_native_pods.rb +202 -70
  385. package/template/Gemfile +6 -0
  386. package/template/Gemfile.lock +100 -0
  387. package/template/_bundle/config +2 -0
  388. package/template/_flowconfig +1 -1
  389. package/template/_ruby-version +1 -0
  390. package/template/android/app/build.gradle +1 -1
  391. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  392. package/template/android/app/src/main/res/values/styles.xml +1 -0
  393. package/template/android/build.gradle +7 -3
  394. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  395. package/template/android/gradle.properties +1 -1
  396. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  397. package/template/ios/Podfile +0 -1
  398. package/template/package.json +1 -1
  399. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  400. package/third-party-podspecs/glog.podspec +0 -1
  401. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  402. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  403. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  404. package/Libraries/Components/StaticContainer.react.js +0 -51
  405. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  406. package/Libraries/Interaction/InteractionMixin.js +0 -54
  407. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  408. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  409. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  412. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  413. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  414. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  415. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  419. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  420. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  421. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  422. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  430. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  431. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  432. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  433. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.md5 +0 -1
  434. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha1 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha256 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.aar.sha512 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.md5 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha1 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha256 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.module.sha512 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.md5 +0 -1
  442. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha1 +0 -1
  443. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha256 +0 -1
  444. package/android/com/facebook/react/react-native/0.66.0-rc.4/react-native-0.66.0-rc.4.pom.sha512 +0 -1
  445. package/scripts/generate-specs.sh +0 -99
  446. package/template/_editorconfig +0 -3
  447. package/template/_gitattributes +0 -3
@@ -0,0 +1,104 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/animations/LayoutAnimationCallbackWrapper.h>
11
+ #include <react/renderer/core/ReactPrimitives.h>
12
+ #include <react/renderer/mounting/ShadowView.h>
13
+ #include <react/renderer/mounting/ShadowViewMutation.h>
14
+ #include <vector>
15
+
16
+ namespace facebook {
17
+ namespace react {
18
+
19
+ // This corresponds exactly with JS.
20
+ enum class AnimationType {
21
+ None = 0,
22
+ Spring = 1,
23
+ Linear = 2,
24
+ EaseInEaseOut = 4,
25
+ EaseIn = 8,
26
+ EaseOut = 16,
27
+ Keyboard = 32
28
+ };
29
+
30
+ enum class AnimationProperty {
31
+ NotApplicable = 0,
32
+ Opacity = 1,
33
+ ScaleX = 2,
34
+ ScaleY = 4,
35
+ ScaleXY = 8
36
+ };
37
+
38
+ // This corresponds exactly with JS.
39
+ struct AnimationConfig {
40
+ AnimationType animationType = AnimationType::None;
41
+ AnimationProperty animationProperty = AnimationProperty::NotApplicable;
42
+ double duration =
43
+ 0; // these are perhaps better represented as uint64_t, but they
44
+ // come from JS as doubles
45
+ double delay = 0;
46
+ double springDamping = 0;
47
+ double initialVelocity = 0;
48
+ };
49
+
50
+ // This corresponds exactly with JS.
51
+ struct LayoutAnimationConfig {
52
+ double duration; // ms
53
+ AnimationConfig createConfig;
54
+ AnimationConfig updateConfig;
55
+ AnimationConfig deleteConfig;
56
+ };
57
+
58
+ enum class AnimationConfigurationType { Create = 1, Update = 2, Delete = 4 };
59
+
60
+ struct AnimationKeyFrame {
61
+ // The mutation(s) that should be executed once the animation completes.
62
+ // This maybe empty.
63
+ // For CREATE/INSERT this will contain CREATE, INSERT in that order.
64
+ // For REMOVE/DELETE, same.
65
+ std::vector<ShadowViewMutation> finalMutationsForKeyFrame;
66
+
67
+ // The type of animation this is (for configuration purposes)
68
+ AnimationConfigurationType type;
69
+
70
+ // Tag representing the node being animated.
71
+ Tag tag;
72
+
73
+ ShadowView parentView;
74
+
75
+ // ShadowView representing the start and end points of this animation.
76
+ ShadowView viewStart;
77
+ ShadowView viewEnd;
78
+
79
+ // ShadowView representing the previous frame of the animation.
80
+ ShadowView viewPrev;
81
+
82
+ // If an animation interrupts an existing one, the starting state may actually
83
+ // be halfway through the intended transition.
84
+ double initialProgress;
85
+
86
+ bool invalidated{false};
87
+
88
+ // In the case where some mutation conflicts with this keyframe,
89
+ // should we generate final synthetic UPDATE mutations for this keyframe?
90
+ bool generateFinalSyntheticMutations{true};
91
+ };
92
+
93
+ struct LayoutAnimation {
94
+ SurfaceId surfaceId;
95
+ uint64_t startTime;
96
+ bool completed = false;
97
+ LayoutAnimationConfig layoutAnimationConfig;
98
+ LayoutAnimationCallbackWrapper successCallback;
99
+ LayoutAnimationCallbackWrapper failureCallback;
100
+ std::vector<AnimationKeyFrame> keyFrames;
101
+ };
102
+
103
+ } // namespace react
104
+ } // namespace facebook
@@ -51,7 +51,7 @@ static void testShadowNodeTreeLifeCycleLayoutAnimations(
51
51
  auto entropy = seed == 0 ? Entropy() : Entropy(seed);
52
52
 
53
53
  auto eventDispatcher = EventDispatcher::Shared{};
54
- auto contextContainer = std::make_shared<ContextContainer>();
54
+ auto contextContainer = std::make_shared<ContextContainer const>();
55
55
  auto componentDescriptorParameters =
56
56
  ComponentDescriptorParameters{eventDispatcher, contextContainer, nullptr};
57
57
  auto viewComponentDescriptor =
@@ -77,8 +77,8 @@ static void testShadowNodeTreeLifeCycleLayoutAnimations(
77
77
  concreteComponentDescriptorProvider<ViewComponentDescriptor>());
78
78
 
79
79
  // Create Animation Driver
80
- auto animationDriver =
81
- std::make_shared<LayoutAnimationDriver>(runtimeExecutor, nullptr);
80
+ auto animationDriver = std::make_shared<LayoutAnimationDriver>(
81
+ runtimeExecutor, contextContainer, nullptr);
82
82
  animationDriver->setComponentDescriptorRegistry(componentDescriptorRegistry);
83
83
 
84
84
  // Mock animation timers
@@ -0,0 +1,71 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "utils.h"
9
+ #include <math.h>
10
+
11
+ namespace facebook {
12
+ namespace react {
13
+
14
+ std::pair<double, double> calculateAnimationProgress(
15
+ uint64_t now,
16
+ LayoutAnimation const &animation,
17
+ AnimationConfig const &mutationConfig) {
18
+ if (mutationConfig.animationType == AnimationType::None) {
19
+ return {1, 1};
20
+ }
21
+
22
+ uint64_t startTime = animation.startTime;
23
+ uint64_t delay = mutationConfig.delay;
24
+ uint64_t endTime = startTime + delay + mutationConfig.duration;
25
+
26
+ if (now >= endTime) {
27
+ return {1, 1};
28
+ }
29
+ if (now < startTime + delay) {
30
+ return {0, 0};
31
+ }
32
+
33
+ double linearTimeProgression = 1 -
34
+ (double)(endTime - delay - now) / (double)(endTime - animation.startTime);
35
+
36
+ if (mutationConfig.animationType == AnimationType::Linear) {
37
+ return {linearTimeProgression, linearTimeProgression};
38
+ } else if (mutationConfig.animationType == AnimationType::EaseIn) {
39
+ // This is an accelerator-style interpolator.
40
+ // In the future, this parameter (2.0) could be adjusted. This has been the
41
+ // default for Classic RN forever.
42
+ return {linearTimeProgression, pow(linearTimeProgression, 2.0)};
43
+ } else if (mutationConfig.animationType == AnimationType::EaseOut) {
44
+ // This is an decelerator-style interpolator.
45
+ // In the future, this parameter (2.0) could be adjusted. This has been the
46
+ // default for Classic RN forever.
47
+ return {linearTimeProgression, 1.0 - pow(1 - linearTimeProgression, 2.0)};
48
+ } else if (mutationConfig.animationType == AnimationType::EaseInEaseOut) {
49
+ // This is a combination of accelerate+decelerate.
50
+ // The animation starts and ends slowly, and speeds up in the middle.
51
+ return {
52
+ linearTimeProgression,
53
+ cos((linearTimeProgression + 1.0) * M_PI) / 2 + 0.5};
54
+ } else if (mutationConfig.animationType == AnimationType::Spring) {
55
+ // Using mSpringDamping in this equation is not really the exact
56
+ // mathematical springDamping, but a good approximation We need to replace
57
+ // this equation with the right Factor that accounts for damping and
58
+ // friction
59
+ double damping = mutationConfig.springDamping;
60
+ return {
61
+ linearTimeProgression,
62
+ (1 +
63
+ pow(2, -10 * linearTimeProgression) *
64
+ sin((linearTimeProgression - damping / 4) * M_PI * 2 / damping))};
65
+ } else {
66
+ return {linearTimeProgression, linearTimeProgression};
67
+ }
68
+ }
69
+
70
+ } // namespace react
71
+ } // namespace facebook
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/animations/primitives.h>
11
+ #include <react/renderer/mounting/ShadowViewMutation.h>
12
+
13
+ namespace facebook {
14
+ namespace react {
15
+
16
+ static inline bool shouldFirstComeBeforeSecondRemovesOnly(
17
+ ShadowViewMutation const &lhs,
18
+ ShadowViewMutation const &rhs) noexcept {
19
+ // Make sure that removes on the same level are sorted - highest indices must
20
+ // come first.
21
+ return (lhs.type == ShadowViewMutation::Type::Remove &&
22
+ lhs.type == rhs.type) &&
23
+ (lhs.parentShadowView.tag == rhs.parentShadowView.tag) &&
24
+ (lhs.index > rhs.index);
25
+ }
26
+
27
+ static inline bool shouldFirstComeBeforeSecondMutation(
28
+ ShadowViewMutation const &lhs,
29
+ ShadowViewMutation const &rhs) noexcept {
30
+ if (lhs.type != rhs.type) {
31
+ // Deletes always come last
32
+ if (lhs.type == ShadowViewMutation::Type::Delete) {
33
+ return false;
34
+ }
35
+ if (rhs.type == ShadowViewMutation::Type::Delete) {
36
+ return true;
37
+ }
38
+
39
+ // Remove comes before insert
40
+ if (lhs.type == ShadowViewMutation::Type::Remove &&
41
+ rhs.type == ShadowViewMutation::Type::Insert) {
42
+ return true;
43
+ }
44
+ if (rhs.type == ShadowViewMutation::Type::Remove &&
45
+ lhs.type == ShadowViewMutation::Type::Insert) {
46
+ return false;
47
+ }
48
+
49
+ // Create comes before insert
50
+ if (lhs.type == ShadowViewMutation::Type::Create &&
51
+ rhs.type == ShadowViewMutation::Type::Insert) {
52
+ return true;
53
+ }
54
+ if (rhs.type == ShadowViewMutation::Type::Create &&
55
+ lhs.type == ShadowViewMutation::Type::Insert) {
56
+ return false;
57
+ }
58
+ } else {
59
+ // Make sure that removes on the same level are sorted - highest indices
60
+ // must come first.
61
+ if (lhs.type == ShadowViewMutation::Type::Remove &&
62
+ lhs.parentShadowView.tag == rhs.parentShadowView.tag) {
63
+ if (lhs.index > rhs.index) {
64
+ return true;
65
+ } else {
66
+ return false;
67
+ }
68
+ }
69
+ }
70
+
71
+ return false;
72
+ }
73
+
74
+ std::pair<double, double> calculateAnimationProgress(
75
+ uint64_t now,
76
+ LayoutAnimation const &animation,
77
+ AnimationConfig const &mutationConfig);
78
+
79
+ } // namespace react
80
+ } // namespace facebook
@@ -11,7 +11,6 @@
11
11
  #include <memory>
12
12
 
13
13
  #include <folly/Hash.h>
14
- #include <folly/Optional.h>
15
14
  #include <react/renderer/attributedstring/TextAttributes.h>
16
15
  #include <react/renderer/core/Sealable.h>
17
16
  #include <react/renderer/core/ShadowNode.h>
@@ -31,12 +31,6 @@ rn_xplat_cxx_library(
31
31
  ],
32
32
  prefix = "react/renderer/attributedstring",
33
33
  ),
34
- compiler_flags = [
35
- "-fexceptions",
36
- "-frtti",
37
- "-std=c++17",
38
- "-Wall",
39
- ],
40
34
  fbandroid_deps = [
41
35
  react_native_xplat_target("react/renderer/mapbuffer:mapbuffer"),
42
36
  ],
@@ -21,13 +21,15 @@ bool ParagraphAttributes::operator==(const ParagraphAttributes &rhs) const {
21
21
  ellipsizeMode,
22
22
  textBreakStrategy,
23
23
  adjustsFontSizeToFit,
24
- includeFontPadding) ==
24
+ includeFontPadding,
25
+ android_hyphenationFrequency) ==
25
26
  std::tie(
26
27
  rhs.maximumNumberOfLines,
27
28
  rhs.ellipsizeMode,
28
29
  rhs.textBreakStrategy,
29
30
  rhs.adjustsFontSizeToFit,
30
- rhs.includeFontPadding) &&
31
+ rhs.includeFontPadding,
32
+ rhs.android_hyphenationFrequency) &&
31
33
  floatEquality(minimumFontSize, rhs.minimumFontSize) &&
32
34
  floatEquality(maximumFontSize, rhs.maximumFontSize);
33
35
  }
@@ -47,7 +49,9 @@ SharedDebugStringConvertibleList ParagraphAttributes::getDebugProps() const {
47
49
  debugStringConvertibleItem("adjustsFontSizeToFit", adjustsFontSizeToFit),
48
50
  debugStringConvertibleItem("minimumFontSize", minimumFontSize),
49
51
  debugStringConvertibleItem("maximumFontSize", maximumFontSize),
50
- debugStringConvertibleItem("includeFontPadding", includeFontPadding)};
52
+ debugStringConvertibleItem("includeFontPadding", includeFontPadding),
53
+ debugStringConvertibleItem(
54
+ "android_hyphenationFrequency", android_hyphenationFrequency)};
51
55
  }
52
56
  #endif
53
57
 
@@ -42,7 +42,10 @@ class ParagraphAttributes : public DebugStringConvertible {
42
42
  */
43
43
  EllipsizeMode ellipsizeMode{};
44
44
 
45
- TextBreakStrategy textBreakStrategy{};
45
+ /*
46
+ * (Android only) Break strategy for breaking paragraphs into lines.
47
+ */
48
+ TextBreakStrategy textBreakStrategy{TextBreakStrategy::HighQuality};
46
49
 
47
50
  /*
48
51
  * Enables font size adjustment to fit constrained boundaries.
@@ -55,6 +58,12 @@ class ParagraphAttributes : public DebugStringConvertible {
55
58
  */
56
59
  bool includeFontPadding{true};
57
60
 
61
+ /*
62
+ * (Android only) Frequency of automatic hyphenation to use when determining
63
+ * word breaks.
64
+ */
65
+ HyphenationFrequency android_hyphenationFrequency{};
66
+
58
67
  /*
59
68
  * In case of font size adjustment enabled, defines minimum and maximum
60
69
  * font sizes.
@@ -89,7 +98,8 @@ struct hash<facebook::react::ParagraphAttributes> {
89
98
  attributes.adjustsFontSizeToFit,
90
99
  attributes.minimumFontSize,
91
100
  attributes.maximumFontSize,
92
- attributes.includeFontPadding);
101
+ attributes.includeFontPadding,
102
+ attributes.android_hyphenationFrequency);
93
103
  }
94
104
  };
95
105
  } // namespace std
@@ -10,8 +10,8 @@
10
10
  #include <functional>
11
11
  #include <limits>
12
12
 
13
+ #include <better/optional.h>
13
14
  #include <folly/Hash.h>
14
- #include <folly/Optional.h>
15
15
  #include <react/renderer/attributedstring/primitives.h>
16
16
  #include <react/renderer/core/LayoutPrimitives.h>
17
17
  #include <react/renderer/core/ReactPrimitives.h>
@@ -96,7 +96,7 @@ inline std::string toString(const TextBreakStrategy &textBreakStrategy) {
96
96
 
97
97
  LOG(ERROR) << "Unsupported TextBreakStrategy value";
98
98
  react_native_assert(false);
99
- return "simple";
99
+ return "highQuality";
100
100
  }
101
101
 
102
102
  inline void fromRawValue(
@@ -116,14 +116,14 @@ inline void fromRawValue(
116
116
  // sane default
117
117
  LOG(ERROR) << "Unsupported TextBreakStrategy value: " << string;
118
118
  react_native_assert(false);
119
- result = TextBreakStrategy::Simple;
119
+ result = TextBreakStrategy::HighQuality;
120
120
  }
121
121
  return;
122
122
  }
123
123
 
124
124
  LOG(ERROR) << "Unsupported TextBreakStrategy type";
125
125
  react_native_assert(false);
126
- result = TextBreakStrategy::Simple;
126
+ result = TextBreakStrategy::HighQuality;
127
127
  }
128
128
 
129
129
  inline void fromRawValue(
@@ -712,6 +712,48 @@ inline void fromRawValue(
712
712
  result = AccessibilityRole::None;
713
713
  }
714
714
 
715
+ inline std::string toString(const HyphenationFrequency &hyphenationFrequency) {
716
+ switch (hyphenationFrequency) {
717
+ case HyphenationFrequency::None:
718
+ return "none";
719
+ case HyphenationFrequency::Normal:
720
+ return "normal";
721
+ case HyphenationFrequency::Full:
722
+ return "full";
723
+ }
724
+
725
+ LOG(ERROR) << "Unsupported HyphenationFrequency value";
726
+ react_native_assert(false);
727
+ return "none";
728
+ }
729
+
730
+ inline void fromRawValue(
731
+ const PropsParserContext &context,
732
+ const RawValue &value,
733
+ HyphenationFrequency &result) {
734
+ react_native_assert(value.hasType<std::string>());
735
+ if (value.hasType<std::string>()) {
736
+ auto string = (std::string)value;
737
+ if (string == "none") {
738
+ result = HyphenationFrequency::None;
739
+ } else if (string == "normal") {
740
+ result = HyphenationFrequency::Normal;
741
+ } else if (string == "full") {
742
+ result = HyphenationFrequency::Full;
743
+ } else {
744
+ // sane default
745
+ LOG(ERROR) << "Unsupported HyphenationFrequency value: " << string;
746
+ react_native_assert(false);
747
+ result = HyphenationFrequency::None;
748
+ }
749
+ return;
750
+ }
751
+
752
+ LOG(ERROR) << "Unsupported HyphenationFrequency type";
753
+ react_native_assert(false);
754
+ result = HyphenationFrequency::None;
755
+ }
756
+
715
757
  inline ParagraphAttributes convertRawProp(
716
758
  const PropsParserContext &context,
717
759
  RawProps const &rawProps,
@@ -761,6 +803,12 @@ inline ParagraphAttributes convertRawProp(
761
803
  "includeFontPadding",
762
804
  sourceParagraphAttributes.includeFontPadding,
763
805
  defaultParagraphAttributes.includeFontPadding);
806
+ paragraphAttributes.android_hyphenationFrequency = convertRawProp(
807
+ context,
808
+ rawProps,
809
+ "android_hyphenationFrequency",
810
+ sourceParagraphAttributes.android_hyphenationFrequency,
811
+ defaultParagraphAttributes.android_hyphenationFrequency);
764
812
 
765
813
  return paragraphAttributes;
766
814
  }
@@ -796,6 +844,9 @@ inline folly::dynamic toDynamic(
796
844
  values("textBreakStrategy", toString(paragraphAttributes.textBreakStrategy));
797
845
  values("adjustsFontSizeToFit", paragraphAttributes.adjustsFontSizeToFit);
798
846
  values("includeFontPadding", paragraphAttributes.includeFontPadding);
847
+ values(
848
+ "android_hyphenationFrequency",
849
+ toString(paragraphAttributes.android_hyphenationFrequency));
799
850
 
800
851
  return values;
801
852
  }
@@ -993,6 +1044,7 @@ constexpr static Key PA_KEY_ELLIPSIZE_MODE = 1;
993
1044
  constexpr static Key PA_KEY_TEXT_BREAK_STRATEGY = 2;
994
1045
  constexpr static Key PA_KEY_ADJUST_FONT_SIZE_TO_FIT = 3;
995
1046
  constexpr static Key PA_KEY_INCLUDE_FONT_PADDING = 4;
1047
+ constexpr static Key PA_KEY_HYPHENATION_FREQUENCY = 5;
996
1048
 
997
1049
  inline MapBuffer toMapBuffer(const ParagraphAttributes &paragraphAttributes) {
998
1050
  auto builder = MapBufferBuilder();
@@ -1007,6 +1059,9 @@ inline MapBuffer toMapBuffer(const ParagraphAttributes &paragraphAttributes) {
1007
1059
  PA_KEY_ADJUST_FONT_SIZE_TO_FIT, paragraphAttributes.adjustsFontSizeToFit);
1008
1060
  builder.putBool(
1009
1061
  PA_KEY_INCLUDE_FONT_PADDING, paragraphAttributes.includeFontPadding);
1062
+ builder.putString(
1063
+ PA_KEY_HYPHENATION_FREQUENCY,
1064
+ toString(paragraphAttributes.android_hyphenationFrequency));
1010
1065
 
1011
1066
  return builder.build();
1012
1067
  }
@@ -53,7 +53,11 @@ enum class EllipsizeMode {
53
53
  Middle // Truncate middle of line: "ab...yz".
54
54
  };
55
55
 
56
- enum class TextBreakStrategy { Simple, Balanced, HighQuality };
56
+ enum class TextBreakStrategy {
57
+ Simple, // Simple strategy.
58
+ HighQuality, // High-quality strategy, including hyphenation.
59
+ Balanced // Balances line lengths.
60
+ };
57
61
 
58
62
  enum class TextAlignment {
59
63
  Natural, // Indicates the default alignment for script.
@@ -126,6 +130,12 @@ enum class TextTransform {
126
130
  Unset,
127
131
  };
128
132
 
133
+ enum class HyphenationFrequency {
134
+ None, // No hyphenation.
135
+ Normal, // Less frequent hyphenation.
136
+ Full // Standard amount of hyphenation.
137
+ };
138
+
129
139
  } // namespace react
130
140
  } // namespace facebook
131
141
 
@@ -213,4 +223,11 @@ struct hash<facebook::react::TextTransform> {
213
223
  return hash<int>()(static_cast<int>(v));
214
224
  }
215
225
  };
226
+
227
+ template <>
228
+ struct hash<facebook::react::HyphenationFrequency> {
229
+ size_t operator()(const facebook::react::HyphenationFrequency &v) const {
230
+ return hash<int>()(static_cast<int>(v));
231
+ }
232
+ };
216
233
  } // namespace std
@@ -30,12 +30,6 @@ rn_xplat_cxx_library(
30
30
  ],
31
31
  prefix = "react/renderer/componentregistry",
32
32
  ),
33
- compiler_flags = [
34
- "-fexceptions",
35
- "-frtti",
36
- "-std=c++17",
37
- "-Wall",
38
- ],
39
33
  fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
40
34
  fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
41
35
  force_static = True,
@@ -29,12 +29,6 @@ rn_xplat_cxx_library(
29
29
  ],
30
30
  prefix = "react/renderer/componentregistry/native",
31
31
  ),
32
- compiler_flags = [
33
- "-fexceptions",
34
- "-frtti",
35
- "-std=c++17",
36
- "-Wall",
37
- ],
38
32
  fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
39
33
  fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
40
34
  force_static = True,
@@ -29,12 +29,6 @@ rn_xplat_cxx_library(
29
29
  ],
30
30
  prefix = "react/renderer/components/image",
31
31
  ),
32
- compiler_flags = [
33
- "-fexceptions",
34
- "-frtti",
35
- "-std=c++17",
36
- "-Wall",
37
- ],
38
32
  fbandroid_deps = [
39
33
  react_native_xplat_target("react/renderer/mapbuffer:mapbuffer"),
40
34
  ],
@@ -7,7 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <react/debug/react_native_assert.h>
11
10
  #include <react/renderer/components/image/ImageShadowNode.h>
12
11
  #include <react/renderer/core/ConcreteComponentDescriptor.h>
13
12
  #include <react/renderer/imagemanager/ImageManager.h>
@@ -29,7 +28,6 @@ class ImageComponentDescriptor final
29
28
  void adopt(ShadowNode::Unshared const &shadowNode) const override {
30
29
  ConcreteComponentDescriptor::adopt(shadowNode);
31
30
 
32
- react_native_assert(std::dynamic_pointer_cast<ImageShadowNode>(shadowNode));
33
31
  auto imageShadowNode =
34
32
  std::static_pointer_cast<ImageShadowNode>(shadowNode);
35
33
 
@@ -24,12 +24,6 @@ rn_xplat_cxx_library(
24
24
  ],
25
25
  prefix = "react/renderer/components/inputaccessory",
26
26
  ),
27
- compiler_flags = [
28
- "-fexceptions",
29
- "-frtti",
30
- "-std=c++17",
31
- "-Wall",
32
- ],
33
27
  fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
34
28
  fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
35
29
  force_static = True,
@@ -23,13 +23,9 @@ class InputAccessoryComponentDescriptor final
23
23
  using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
24
24
 
25
25
  void adopt(ShadowNode::Unshared const &shadowNode) const override {
26
- react_native_assert(
27
- std::dynamic_pointer_cast<InputAccessoryShadowNode>(shadowNode));
28
26
  auto concreteShadowNode =
29
27
  std::static_pointer_cast<InputAccessoryShadowNode>(shadowNode);
30
28
 
31
- react_native_assert(std::dynamic_pointer_cast<YogaLayoutableShadowNode>(
32
- concreteShadowNode));
33
29
  auto layoutableShadowNode =
34
30
  std::static_pointer_cast<YogaLayoutableShadowNode>(concreteShadowNode);
35
31
 
@@ -27,12 +27,6 @@ rn_xplat_cxx_library(
27
27
  ],
28
28
  prefix = "react/renderer/components/legacyviewmanagerinterop",
29
29
  ),
30
- compiler_flags = [
31
- "-fexceptions",
32
- "-frtti",
33
- "-std=c++17",
34
- "-Wall",
35
- ],
36
30
  fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
37
31
  fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
38
32
  force_static = True,
@@ -31,12 +31,6 @@ rn_xplat_cxx_library(
31
31
  ],
32
32
  prefix = "react/renderer/components/modal",
33
33
  ),
34
- compiler_flags = [
35
- "-fexceptions",
36
- "-frtti",
37
- "-std=c++17",
38
- "-Wall",
39
- ],
40
34
  fbandroid_deps = [
41
35
  react_native_xplat_target("react/renderer/mapbuffer:mapbuffer"),
42
36
  ],
@@ -8,7 +8,6 @@
8
8
  #pragma once
9
9
 
10
10
  #include <glog/logging.h>
11
- #include <react/debug/react_native_assert.h>
12
11
  #include <react/renderer/components/modal/ModalHostViewShadowNode.h>
13
12
  #include <react/renderer/core/ConcreteComponentDescriptor.h>
14
13
 
@@ -25,13 +24,9 @@ class ModalHostViewComponentDescriptor final
25
24
  using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
26
25
 
27
26
  void adopt(ShadowNode::Unshared const &shadowNode) const override {
28
- react_native_assert(
29
- std::dynamic_pointer_cast<ModalHostViewShadowNode>(shadowNode));
30
27
  auto modalShadowNode =
31
28
  std::static_pointer_cast<ModalHostViewShadowNode>(shadowNode);
32
29
 
33
- react_native_assert(
34
- std::dynamic_pointer_cast<YogaLayoutableShadowNode>(modalShadowNode));
35
30
  auto layoutableShadowNode =
36
31
  std::static_pointer_cast<YogaLayoutableShadowNode>(modalShadowNode);
37
32
 
@@ -32,12 +32,6 @@ rn_xplat_cxx_library(
32
32
  ],
33
33
  prefix = "react/renderer/components/progressbar",
34
34
  ),
35
- compiler_flags = [
36
- "-fexceptions",
37
- "-frtti",
38
- "-std=c++17",
39
- "-Wall",
40
- ],
41
35
  cxx_tests = [":tests"],
42
36
  fbandroid_deps = [
43
37
  react_native_target("jni/react/jni:jni"),