react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec

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 (616) 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 +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -12,6 +12,7 @@
12
12
  #include <react/renderer/core/LayoutConstraints.h>
13
13
  #include <react/renderer/core/LayoutContext.h>
14
14
  #include <react/renderer/core/ReactPrimitives.h>
15
+ #include <react/utils/ContextContainer.h>
15
16
 
16
17
  namespace facebook {
17
18
  namespace react {
@@ -33,7 +34,7 @@ class UIManager;
33
34
  * ensure the logical consistency of some methods (e.g. calling `stop` for
34
35
  * non-running surface will crash).
35
36
  */
36
- class SurfaceHandler final {
37
+ class SurfaceHandler {
37
38
  public:
38
39
  /*
39
40
  * Represents a status of the `SurfaceHandler` instance.
@@ -61,7 +62,7 @@ class SurfaceHandler final {
61
62
  * Can be constructed anytime with a `moduleName` and a `surfaceId`.
62
63
  */
63
64
  SurfaceHandler(std::string const &moduleName, SurfaceId surfaceId) noexcept;
64
- ~SurfaceHandler() noexcept;
65
+ virtual ~SurfaceHandler() noexcept;
65
66
 
66
67
  /*
67
68
  * Movable-only.
@@ -73,6 +74,12 @@ class SurfaceHandler final {
73
74
 
74
75
  #pragma mark - Surface Life-Cycle Management
75
76
 
77
+ /*
78
+ * Must be called before surface is started.
79
+ */
80
+ void setContextContainer(
81
+ ContextContainer::Shared contextContainer) const noexcept;
82
+
76
83
  /*
77
84
  * Returns a momentum value of the status.
78
85
  */
@@ -88,10 +95,10 @@ class SurfaceHandler final {
88
95
  void stop() const noexcept;
89
96
 
90
97
  /*
91
- * Sets (and gets) the runnnig mode.
98
+ * Sets (and gets) the running mode.
92
99
  * The running mode can be changed anytime (even for `Unregistered` surface).
93
100
  */
94
- void setDisplayMode(DisplayMode displayMode) const noexcept;
101
+ virtual void setDisplayMode(DisplayMode displayMode) const noexcept;
95
102
  DisplayMode getDisplayMode() const noexcept;
96
103
 
97
104
  #pragma mark - Accessors
@@ -171,6 +178,7 @@ class SurfaceHandler final {
171
178
  folly::dynamic props{};
172
179
  LayoutConstraints layoutConstraints{};
173
180
  LayoutContext layoutContext{};
181
+ ContextContainer::Shared contextContainer{};
174
182
  };
175
183
 
176
184
  /*
@@ -24,6 +24,7 @@ void SurfaceManager::startSurface(
24
24
  {
25
25
  std::unique_lock<better::shared_mutex> lock(mutex_);
26
26
  auto surfaceHandler = SurfaceHandler{moduleName, surfaceId};
27
+ surfaceHandler.setContextContainer(scheduler_.getContextContainer());
27
28
  registry_.emplace(surfaceId, std::move(surfaceHandler));
28
29
  }
29
30
 
@@ -35,6 +35,8 @@ NSAttributedString *RCTNSAttributedStringFromAttributedStringBox(
35
35
  facebook::react::AttributedStringBox RCTAttributedStringBoxFromNSAttributedString(
36
36
  NSAttributedString *nsAttributedString);
37
37
 
38
+ NSString *RCTNSStringFromStringApplyingTextTransform(NSString *string, facebook::react::TextTransform textTransform);
39
+
38
40
  @interface RCTWeakEventEmitterWrapper : NSObject
39
41
  @property (nonatomic, assign) facebook::react::SharedEventEmitter eventEmitter;
40
42
  @end
@@ -288,6 +288,9 @@ NSDictionary<NSAttributedStringKey, id> *RCTNSTextAttributesFromTextAttributes(T
288
288
  case AccessibilityRole::Tab:
289
289
  attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tab");
290
290
  break;
291
+ case AccessibilityRole::TabBar:
292
+ attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tabbar");
293
+ break;
291
294
  case AccessibilityRole::Tablist:
292
295
  attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tablist");
293
296
  break;
@@ -332,6 +335,11 @@ NSAttributedString *RCTNSAttributedStringFromAttributedString(const AttributedSt
332
335
  } else {
333
336
  NSString *string = [NSString stringWithCString:fragment.string.c_str() encoding:NSUTF8StringEncoding];
334
337
 
338
+ if (fragment.textAttributes.textTransform.hasValue()) {
339
+ auto textTransform = fragment.textAttributes.textTransform.value();
340
+ string = RCTNSStringFromStringApplyingTextTransform(string, textTransform);
341
+ }
342
+
335
343
  nsAttributedStringFragment = [[NSMutableAttributedString alloc]
336
344
  initWithString:string
337
345
  attributes:RCTNSTextAttributesFromTextAttributes(fragment.textAttributes)];
@@ -370,3 +378,17 @@ AttributedStringBox RCTAttributedStringBoxFromNSAttributedString(NSAttributedStr
370
378
  {
371
379
  return nsAttributedString.length ? AttributedStringBox{wrapManagedObject(nsAttributedString)} : AttributedStringBox{};
372
380
  }
381
+
382
+ NSString *RCTNSStringFromStringApplyingTextTransform(NSString *string, TextTransform textTransform)
383
+ {
384
+ switch (textTransform) {
385
+ case TextTransform::Uppercase:
386
+ return [string uppercaseString];
387
+ case TextTransform::Lowercase:
388
+ return [string lowercaseString];
389
+ case TextTransform::Capitalize:
390
+ return [string capitalizedString];
391
+ default:
392
+ return string;
393
+ }
394
+ }
@@ -50,11 +50,11 @@ rn_xplat_cxx_library(
50
50
  tests = [":tests"],
51
51
  visibility = ["PUBLIC"],
52
52
  deps = [
53
- "fbsource//xplat/fbsystrace:fbsystrace",
54
- "fbsource//xplat/folly:headers_only",
55
- "fbsource//xplat/folly:memory",
56
- "fbsource//xplat/folly:molly",
57
53
  "//third-party/glog:glog",
54
+ "//xplat/fbsystrace:fbsystrace",
55
+ "//xplat/folly:headers_only",
56
+ "//xplat/folly:memory",
57
+ "//xplat/folly:molly",
58
58
  react_native_xplat_target("react/utils:utils"),
59
59
  react_native_xplat_target("react/renderer/debug:debug"),
60
60
  react_native_xplat_target("react/renderer/core:core"),
@@ -77,8 +77,8 @@ fb_xplat_cxx_test(
77
77
  contacts = ["oncall+react_native@xmail.facebook.com"],
78
78
  platforms = (ANDROID, APPLE, CXX),
79
79
  deps = [
80
- "fbsource//xplat/folly:molly",
81
- "fbsource//xplat/third-party/gmock:gtest",
82
80
  ":timeline",
81
+ "//xplat/folly:molly",
82
+ "//xplat/third-party/gmock:gtest",
83
83
  ],
84
84
  )
@@ -8,6 +8,7 @@
8
8
  #include "UIManager.h"
9
9
 
10
10
  #include <react/debug/react_native_assert.h>
11
+ #include <react/renderer/core/PropsParserContext.h>
11
12
  #include <react/renderer/core/ShadowNodeFragment.h>
12
13
  #include <react/renderer/debug/SystraceSection.h>
13
14
  #include <react/renderer/graphics/Geometry.h>
@@ -29,9 +30,11 @@ static std::unique_ptr<LeakChecker> constructLeakCheckerIfNeeded(
29
30
 
30
31
  UIManager::UIManager(
31
32
  RuntimeExecutor const &runtimeExecutor,
32
- BackgroundExecutor const &backgroundExecutor)
33
+ BackgroundExecutor const &backgroundExecutor,
34
+ ContextContainer::Shared contextContainer)
33
35
  : runtimeExecutor_(runtimeExecutor),
34
36
  backgroundExecutor_(backgroundExecutor),
37
+ contextContainer_(contextContainer),
35
38
  leakChecker_(constructLeakCheckerIfNeeded(runtimeExecutor)) {}
36
39
 
37
40
  UIManager::~UIManager() {
@@ -51,10 +54,13 @@ SharedShadowNode UIManager::createNode(
51
54
  auto fallbackDescriptor =
52
55
  componentDescriptorRegistry_->getFallbackComponentDescriptor();
53
56
 
57
+ PropsParserContext propsParserContext{surfaceId, *contextContainer_.get()};
58
+
54
59
  auto const fragment = ShadowNodeFamilyFragment{tag, surfaceId, nullptr};
55
60
  auto family =
56
61
  componentDescriptor.createFamily(fragment, std::move(eventTarget));
57
- auto const props = componentDescriptor.cloneProps(nullptr, rawProps);
62
+ auto const props =
63
+ componentDescriptor.cloneProps(propsParserContext, nullptr, rawProps);
58
64
  auto const state =
59
65
  componentDescriptor.createInitialState(ShadowNodeFragment{props}, family);
60
66
 
@@ -65,16 +71,17 @@ SharedShadowNode UIManager::createNode(
65
71
  fallbackDescriptor->getComponentHandle() ==
66
72
  componentDescriptor.getComponentHandle()
67
73
  ? componentDescriptor.cloneProps(
68
- props, RawProps(folly::dynamic::object("name", name)))
74
+ propsParserContext,
75
+ props,
76
+ RawProps(folly::dynamic::object("name", name)))
69
77
  : props,
70
78
  /* .children = */ ShadowNodeFragment::childrenPlaceholder(),
71
79
  /* .state = */ state,
72
80
  },
73
81
  family);
74
82
 
75
- auto delegate = delegate_.load();
76
- if (delegate) {
77
- delegate->uiManagerDidCreateShadowNode(*shadowNode.get());
83
+ if (delegate_) {
84
+ delegate_->uiManagerDidCreateShadowNode(*shadowNode.get());
78
85
  }
79
86
  if (leakChecker_) {
80
87
  leakChecker_->uiManagerDidCreateShadowNodeFamily(family);
@@ -89,20 +96,22 @@ SharedShadowNode UIManager::cloneNode(
89
96
  const RawProps *rawProps) const {
90
97
  SystraceSection s("UIManager::cloneNode");
91
98
 
99
+ PropsParserContext propsParserContext{
100
+ shadowNode->getFamily().getSurfaceId(), *contextContainer_.get()};
101
+
92
102
  auto &componentDescriptor = shadowNode->getComponentDescriptor();
93
103
  auto clonedShadowNode = componentDescriptor.cloneShadowNode(
94
104
  *shadowNode,
95
105
  {
96
106
  /* .props = */
97
107
  rawProps ? componentDescriptor.cloneProps(
98
- shadowNode->getProps(), *rawProps)
108
+ propsParserContext, shadowNode->getProps(), *rawProps)
99
109
  : ShadowNodeFragment::propsPlaceholder(),
100
110
  /* .children = */ children,
101
111
  });
102
112
 
103
- auto delegate = delegate_.load();
104
- if (delegate) {
105
- delegate->uiManagerDidCloneShadowNode(
113
+ if (delegate_) {
114
+ delegate_->uiManagerDidCloneShadowNode(
106
115
  *shadowNode.get(), *clonedShadowNode.get());
107
116
  }
108
117
 
@@ -142,9 +151,8 @@ void UIManager::setIsJSResponder(
142
151
  ShadowNode::Shared const &shadowNode,
143
152
  bool isJSResponder,
144
153
  bool blockNativeResponder) const {
145
- auto delegate = delegate_.load();
146
- if (delegate) {
147
- delegate->uiManagerDidSetIsJSResponder(
154
+ if (delegate_) {
155
+ delegate_->uiManagerDidSetIsJSResponder(
148
156
  shadowNode, isJSResponder, blockNativeResponder);
149
157
  }
150
158
  }
@@ -160,6 +168,7 @@ void UIManager::startSurface(
160
168
  shadowTreeRegistry_.add(std::move(shadowTree));
161
169
 
162
170
  runtimeExecutor_([=](jsi::Runtime &runtime) {
171
+ SystraceSection s("UIManager::startSurface::onRuntime");
163
172
  auto uiManagerBinding = UIManagerBinding::getBinding(runtime);
164
173
  if (!uiManagerBinding) {
165
174
  return;
@@ -325,18 +334,16 @@ void UIManager::dispatchCommand(
325
334
  const ShadowNode::Shared &shadowNode,
326
335
  std::string const &commandName,
327
336
  folly::dynamic const args) const {
328
- auto delegate = delegate_.load();
329
- if (delegate) {
330
- delegate->uiManagerDidDispatchCommand(shadowNode, commandName, args);
337
+ if (delegate_) {
338
+ delegate_->uiManagerDidDispatchCommand(shadowNode, commandName, args);
331
339
  }
332
340
  }
333
341
 
334
342
  void UIManager::sendAccessibilityEvent(
335
343
  const ShadowNode::Shared &shadowNode,
336
344
  std::string const &eventType) {
337
- auto delegate = delegate_.load();
338
- if (delegate) {
339
- delegate->uiManagerDidSendAccessibilityEvent(shadowNode, eventType);
345
+ if (delegate_) {
346
+ delegate_->uiManagerDidSendAccessibilityEvent(shadowNode, eventType);
340
347
  }
341
348
  }
342
349
 
@@ -345,9 +352,8 @@ void UIManager::configureNextLayoutAnimation(
345
352
  RawValue const &config,
346
353
  jsi::Value const &successCallback,
347
354
  jsi::Value const &failureCallback) const {
348
- auto animationDelegate = animationDelegate_.load();
349
- if (animationDelegate) {
350
- animationDelegate->uiManagerDidConfigureNextLayoutAnimation(
355
+ if (animationDelegate_) {
356
+ animationDelegate_->uiManagerDidConfigureNextLayoutAnimation(
351
357
  runtime,
352
358
  config,
353
359
  std::move(successCallback),
@@ -423,9 +429,8 @@ void UIManager::shadowTreeDidFinishTransaction(
423
429
  MountingCoordinator::Shared const &mountingCoordinator) const {
424
430
  SystraceSection s("UIManager::shadowTreeDidFinishTransaction");
425
431
 
426
- auto delegate = delegate_.load();
427
- if (delegate) {
428
- delegate->uiManagerDidFinishTransaction(mountingCoordinator);
432
+ if (delegate_) {
433
+ delegate_->uiManagerDidFinishTransaction(mountingCoordinator);
429
434
  }
430
435
  }
431
436
 
@@ -436,15 +441,14 @@ void UIManager::setAnimationDelegate(UIManagerAnimationDelegate *delegate) {
436
441
  }
437
442
 
438
443
  void UIManager::stopSurfaceForAnimationDelegate(SurfaceId surfaceId) const {
439
- auto animationDelegate = animationDelegate_.load();
440
- if (animationDelegate) {
441
- animationDelegate->stopSurface(surfaceId);
444
+ if (animationDelegate_ != nullptr) {
445
+ animationDelegate_->stopSurface(surfaceId);
442
446
  }
443
447
  }
444
448
 
445
449
  void UIManager::animationTick() {
446
- auto animationDelegate = animationDelegate_.load();
447
- if (animationDelegate && animationDelegate->shouldAnimateFrame()) {
450
+ if (animationDelegate_ != nullptr &&
451
+ animationDelegate_->shouldAnimateFrame()) {
448
452
  shadowTreeRegistry_.enumerate(
449
453
  [&](ShadowTree const &shadowTree, bool &stop) {
450
454
  shadowTree.notifyDelegatesOfUpdates();
@@ -23,6 +23,7 @@
23
23
  #include <react/renderer/uimanager/UIManagerAnimationDelegate.h>
24
24
  #include <react/renderer/uimanager/UIManagerDelegate.h>
25
25
  #include <react/renderer/uimanager/primitives.h>
26
+ #include <react/utils/ContextContainer.h>
26
27
 
27
28
  namespace facebook::react {
28
29
 
@@ -33,7 +34,8 @@ class UIManager final : public ShadowTreeDelegate {
33
34
  public:
34
35
  UIManager(
35
36
  RuntimeExecutor const &runtimeExecutor,
36
- BackgroundExecutor const &backgroundExecutor);
37
+ BackgroundExecutor const &backgroundExecutor,
38
+ ContextContainer::Shared contextContainer);
37
39
 
38
40
  ~UIManager();
39
41
 
@@ -184,11 +186,12 @@ class UIManager final : public ShadowTreeDelegate {
184
186
  ShadowTreeRegistry const &getShadowTreeRegistry() const;
185
187
 
186
188
  SharedComponentDescriptorRegistry componentDescriptorRegistry_;
187
- std::atomic<UIManagerDelegate *> delegate_;
188
- std::atomic<UIManagerAnimationDelegate *> animationDelegate_{nullptr};
189
+ UIManagerDelegate *delegate_;
190
+ UIManagerAnimationDelegate *animationDelegate_{nullptr};
189
191
  RuntimeExecutor const runtimeExecutor_{};
190
192
  ShadowTreeRegistry shadowTreeRegistry_{};
191
193
  BackgroundExecutor const backgroundExecutor_{};
194
+ ContextContainer::Shared contextContainer_;
192
195
 
193
196
  mutable better::shared_mutex commitHookMutex_;
194
197
  mutable std::vector<UIManagerCommitHook const *> commitHooks_;
@@ -16,7 +16,7 @@ namespace facebook::react {
16
16
 
17
17
  class UIManagerAnimationDelegate {
18
18
  public:
19
- virtual ~UIManagerAnimationDelegate(){};
19
+ virtual ~UIManagerAnimationDelegate() = default;
20
20
 
21
21
  /*
22
22
  * Configure a LayoutAnimation.
@@ -106,10 +106,6 @@ void UIManagerBinding::attach(std::shared_ptr<UIManager> const &uiManager) {
106
106
  uiManager_ = uiManager;
107
107
  }
108
108
 
109
- void UIManagerBinding::setEnableAsyncMeasure(bool enable) {
110
- enableAsyncMeasure_ = enable;
111
- }
112
-
113
109
  static jsi::Value callMethodOfModule(
114
110
  jsi::Runtime &runtime,
115
111
  std::string const &moduleName,
@@ -133,12 +129,40 @@ static jsi::Value callMethodOfModule(
133
129
  return jsi::Value::undefined();
134
130
  }
135
131
 
132
+ jsi::Value UIManagerBinding::getInspectorDataForInstance(
133
+ jsi::Runtime &runtime,
134
+ SharedEventEmitter eventEmitter) const {
135
+ auto eventTarget = eventEmitter->eventTarget_;
136
+ EventEmitter::DispatchMutex().lock();
137
+
138
+ if (!runtime.global().hasProperty(runtime, "__fbBatchedBridge") ||
139
+ !eventTarget) {
140
+ return jsi::Value::undefined();
141
+ }
142
+
143
+ eventTarget->retain(runtime);
144
+ auto instanceHandle = eventTarget->getInstanceHandle(runtime);
145
+ eventTarget->release(runtime);
146
+ EventEmitter::DispatchMutex().unlock();
147
+
148
+ if (instanceHandle.isUndefined()) {
149
+ return jsi::Value::undefined();
150
+ }
151
+
152
+ return callMethodOfModule(
153
+ runtime,
154
+ "ReactFabric",
155
+ "getInspectorDataForInstance",
156
+ {std::move(instanceHandle)});
157
+ }
158
+
136
159
  void UIManagerBinding::startSurface(
137
160
  jsi::Runtime &runtime,
138
161
  SurfaceId surfaceId,
139
162
  std::string const &moduleName,
140
163
  folly::dynamic const &initalProps,
141
164
  DisplayMode displayMode) const {
165
+ SystraceSection s("UIManagerBinding::startSurface");
142
166
  folly::dynamic parameters = folly::dynamic::object();
143
167
  parameters["rootTag"] = surfaceId;
144
168
  parameters["initialProps"] = initalProps;
@@ -172,6 +196,7 @@ void UIManagerBinding::setSurfaceProps(
172
196
  std::string const &moduleName,
173
197
  folly::dynamic const &initalProps,
174
198
  DisplayMode displayMode) const {
199
+ SystraceSection s("UIManagerBinding::setSurfaceProps");
175
200
  folly::dynamic parameters = folly::dynamic::object();
176
201
  parameters["rootTag"] = surfaceId;
177
202
  parameters["initialProps"] = initalProps;
@@ -271,6 +296,7 @@ jsi::Value UIManagerBinding::get(
271
296
  jsi::Runtime &runtime,
272
297
  jsi::PropNameID const &name) {
273
298
  auto methodName = name.utf8(runtime);
299
+ SystraceSection s("UIManagerBinding::get", "name", methodName);
274
300
 
275
301
  // Convert shared_ptr<UIManager> to a raw ptr
276
302
  // Why? Because:
@@ -639,44 +665,33 @@ jsi::Value UIManagerBinding::get(
639
665
  runtime,
640
666
  name,
641
667
  4,
642
- [this, uiManager](
668
+ [uiManager](
643
669
  jsi::Runtime &runtime,
644
670
  jsi::Value const &thisValue,
645
671
  jsi::Value const *arguments,
646
672
  size_t count) noexcept -> jsi::Value {
647
- auto shadowNode = shadowNodeFromValue(runtime, arguments[0]);
648
- auto ancestorShadowNode = shadowNodeFromValue(runtime, arguments[1]);
649
- auto onFail = std::make_shared<jsi::Function>(
650
- arguments[2].getObject(runtime).getFunction(runtime));
651
- auto onSuccess = std::make_shared<jsi::Function>(
652
- arguments[3].getObject(runtime).getFunction(runtime));
653
- executeMeasure(
673
+ auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
674
+ *shadowNodeFromValue(runtime, arguments[0]),
675
+ shadowNodeFromValue(runtime, arguments[1]).get(),
676
+ {/* .includeTransform = */ false});
677
+
678
+ if (layoutMetrics == EmptyLayoutMetrics) {
679
+ auto onFailFunction =
680
+ arguments[2].getObject(runtime).getFunction(runtime);
681
+ onFailFunction.call(runtime);
682
+ return jsi::Value::undefined();
683
+ }
684
+
685
+ auto onSuccessFunction =
686
+ arguments[3].getObject(runtime).getFunction(runtime);
687
+ auto frame = layoutMetrics.frame;
688
+
689
+ onSuccessFunction.call(
654
690
  runtime,
655
- [uiManager,
656
- shadowNode = std::move(shadowNode),
657
- ancestorShadowNode = std::move(ancestorShadowNode),
658
- onFail = std::move(onFail),
659
- onSuccess =
660
- std::move(onSuccess)](jsi::Runtime &runtime) noexcept {
661
- auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
662
- *shadowNode,
663
- ancestorShadowNode.get(),
664
- {/* .includeTransform = */ false});
665
-
666
- if (layoutMetrics == EmptyLayoutMetrics) {
667
- onFail->call(runtime);
668
- return;
669
- }
670
-
671
- auto frame = layoutMetrics.frame;
672
-
673
- onSuccess->call(
674
- runtime,
675
- {jsi::Value{runtime, (double)frame.origin.x},
676
- jsi::Value{runtime, (double)frame.origin.y},
677
- jsi::Value{runtime, (double)frame.size.width},
678
- jsi::Value{runtime, (double)frame.size.height}});
679
- });
691
+ {jsi::Value{runtime, (double)frame.origin.x},
692
+ jsi::Value{runtime, (double)frame.origin.y},
693
+ jsi::Value{runtime, (double)frame.size.width},
694
+ jsi::Value{runtime, (double)frame.size.height}});
680
695
  return jsi::Value::undefined();
681
696
  });
682
697
  }
@@ -686,45 +701,39 @@ jsi::Value UIManagerBinding::get(
686
701
  runtime,
687
702
  name,
688
703
  2,
689
- [this, uiManager](
704
+ [uiManager](
690
705
  jsi::Runtime &runtime,
691
706
  jsi::Value const &thisValue,
692
707
  jsi::Value const *arguments,
693
708
  size_t count) noexcept -> jsi::Value {
694
- auto onSuccess = std::make_shared<jsi::Function>(
695
- arguments[1].getObject(runtime).getFunction(runtime));
696
- executeMeasure(
709
+ auto shadowNode = shadowNodeFromValue(runtime, arguments[0]);
710
+ auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
711
+ *shadowNode, nullptr, {/* .includeTransform = */ true});
712
+ auto onSuccessFunction =
713
+ arguments[1].getObject(runtime).getFunction(runtime);
714
+
715
+ if (layoutMetrics == EmptyLayoutMetrics) {
716
+ onSuccessFunction.call(runtime, {0, 0, 0, 0, 0, 0});
717
+ return jsi::Value::undefined();
718
+ }
719
+ auto newestCloneOfShadowNode =
720
+ uiManager->getNewestCloneOfShadowNode(*shadowNode);
721
+
722
+ auto layoutableShadowNode = traitCast<LayoutableShadowNode const *>(
723
+ newestCloneOfShadowNode.get());
724
+ Point originRelativeToParent = layoutableShadowNode
725
+ ? layoutableShadowNode->getLayoutMetrics().frame.origin
726
+ : Point();
727
+
728
+ auto frame = layoutMetrics.frame;
729
+ onSuccessFunction.call(
697
730
  runtime,
698
- [uiManager,
699
- shadowNode = shadowNodeFromValue(runtime, arguments[0]),
700
- onSuccess = std::move(onSuccess)](jsi::Runtime &runtime) {
701
- auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
702
- *shadowNode, nullptr, {/* .includeTransform = */ true});
703
-
704
- if (layoutMetrics == EmptyLayoutMetrics) {
705
- onSuccess->call(runtime, {0, 0, 0, 0, 0, 0});
706
- return;
707
- }
708
- auto newestCloneOfShadowNode =
709
- uiManager->getNewestCloneOfShadowNode(*shadowNode);
710
-
711
- auto layoutableShadowNode =
712
- traitCast<LayoutableShadowNode const *>(
713
- newestCloneOfShadowNode.get());
714
- Point originRelativeToParent = layoutableShadowNode
715
- ? layoutableShadowNode->getLayoutMetrics().frame.origin
716
- : Point();
717
-
718
- auto frame = layoutMetrics.frame;
719
- onSuccess->call(
720
- runtime,
721
- {jsi::Value{runtime, (double)originRelativeToParent.x},
722
- jsi::Value{runtime, (double)originRelativeToParent.y},
723
- jsi::Value{runtime, (double)frame.size.width},
724
- jsi::Value{runtime, (double)frame.size.height},
725
- jsi::Value{runtime, (double)frame.origin.x},
726
- jsi::Value{runtime, (double)frame.origin.y}});
727
- });
731
+ {jsi::Value{runtime, (double)originRelativeToParent.x},
732
+ jsi::Value{runtime, (double)originRelativeToParent.y},
733
+ jsi::Value{runtime, (double)frame.size.width},
734
+ jsi::Value{runtime, (double)frame.size.height},
735
+ jsi::Value{runtime, (double)frame.origin.x},
736
+ jsi::Value{runtime, (double)frame.origin.y}});
728
737
  return jsi::Value::undefined();
729
738
  });
730
739
  }
@@ -734,38 +743,32 @@ jsi::Value UIManagerBinding::get(
734
743
  runtime,
735
744
  name,
736
745
  2,
737
- [this, uiManager](
746
+ [uiManager](
738
747
  jsi::Runtime &runtime,
739
748
  jsi::Value const &thisValue,
740
749
  jsi::Value const *arguments,
741
750
  size_t count) noexcept -> jsi::Value {
742
- auto onSuccess = std::make_shared<jsi::Function>(
743
- arguments[1].getObject(runtime).getFunction(runtime));
744
- executeMeasure(
751
+ auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
752
+ *shadowNodeFromValue(runtime, arguments[0]),
753
+ nullptr,
754
+ {/* .includeTransform = */ true,
755
+ /* includeViewportOffset = */ true});
756
+
757
+ auto onSuccessFunction =
758
+ arguments[1].getObject(runtime).getFunction(runtime);
759
+
760
+ if (layoutMetrics == EmptyLayoutMetrics) {
761
+ onSuccessFunction.call(runtime, {0, 0, 0, 0});
762
+ return jsi::Value::undefined();
763
+ }
764
+
765
+ auto frame = layoutMetrics.frame;
766
+ onSuccessFunction.call(
745
767
  runtime,
746
- [uiManager,
747
- shadowNode = shadowNodeFromValue(runtime, arguments[0]),
748
- onSuccess =
749
- std::move(onSuccess)](jsi::Runtime &runtime) noexcept {
750
- auto layoutMetrics = uiManager->getRelativeLayoutMetrics(
751
- *shadowNode,
752
- nullptr,
753
- {/* .includeTransform = */ true,
754
- /* includeViewportOffset = */ true});
755
-
756
- if (layoutMetrics == EmptyLayoutMetrics) {
757
- onSuccess->call(runtime, {0, 0, 0, 0});
758
- return;
759
- }
760
-
761
- auto frame = layoutMetrics.frame;
762
- onSuccess->call(
763
- runtime,
764
- {jsi::Value{runtime, (double)frame.origin.x},
765
- jsi::Value{runtime, (double)frame.origin.y},
766
- jsi::Value{runtime, (double)frame.size.width},
767
- jsi::Value{runtime, (double)frame.size.height}});
768
- });
768
+ {jsi::Value{runtime, (double)frame.origin.x},
769
+ jsi::Value{runtime, (double)frame.origin.y},
770
+ jsi::Value{runtime, (double)frame.size.width},
771
+ jsi::Value{runtime, (double)frame.size.height}});
769
772
  return jsi::Value::undefined();
770
773
  });
771
774
  }
@@ -833,14 +836,4 @@ jsi::Value UIManagerBinding::get(
833
836
  return jsi::Value::undefined();
834
837
  }
835
838
 
836
- void UIManagerBinding::executeMeasure(
837
- jsi::Runtime &runtime,
838
- std::function<void(jsi::Runtime &)> &&callback) const noexcept {
839
- if (enableAsyncMeasure_) {
840
- runtimeExecutor_(std::move(callback));
841
- } else {
842
- callback(runtime);
843
- }
844
- }
845
-
846
839
  } // namespace facebook::react
@@ -49,8 +49,6 @@ class UIManagerBinding : public jsi::HostObject {
49
49
  */
50
50
  void attach(std::shared_ptr<UIManager> const &uiManager);
51
51
 
52
- void setEnableAsyncMeasure(bool enable);
53
-
54
52
  /*
55
53
  * Starts React Native Surface with given id, moduleName, and props.
56
54
  * Thread synchronization must be enforced externally.
@@ -74,6 +72,10 @@ class UIManagerBinding : public jsi::HostObject {
74
72
  folly::dynamic const &props,
75
73
  DisplayMode displayMode) const;
76
74
 
75
+ jsi::Value getInspectorDataForInstance(
76
+ jsi::Runtime &runtime,
77
+ SharedEventEmitter eventEmitter) const;
78
+
77
79
  /*
78
80
  * Stops React Native Surface with given id.
79
81
  * Thread synchronization must be enforced externally.
@@ -106,15 +108,10 @@ class UIManagerBinding : public jsi::HostObject {
106
108
  jsi::Value get(jsi::Runtime &runtime, jsi::PropNameID const &name) override;
107
109
 
108
110
  private:
109
- void executeMeasure(
110
- jsi::Runtime &runtime,
111
- std::function<void(jsi::Runtime &)> &&callback) const noexcept;
112
-
113
111
  std::shared_ptr<UIManager> uiManager_;
114
112
  std::unique_ptr<EventHandler const> eventHandler_;
115
113
  mutable ReactEventPriority currentEventPriority_;
116
114
 
117
- bool enableAsyncMeasure_;
118
115
  RuntimeExecutor runtimeExecutor_;
119
116
  };
120
117