react-native-windows 0.74.10 → 0.75.0-preview.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 (327) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Common.vcxproj +8 -0
  3. package/Common/Utilities.cpp +2 -2
  4. package/Directory.Build.targets +5 -0
  5. package/Folly/Folly.vcxproj +10 -2
  6. package/Folly/Folly.vcxproj.filters +0 -7
  7. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  8. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  11. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  13. package/Libraries/Animated/useAnimatedProps.js +56 -28
  14. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  15. package/Libraries/Components/Button.js +10 -5
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  17. package/Libraries/Components/Flyout/Flyout.js +10 -10
  18. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  19. package/Libraries/Components/Pressable/Pressable.js +13 -6
  20. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  21. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  22. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  23. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  24. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  26. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  27. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  29. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  31. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  32. package/Libraries/Components/TextInput/TextInput.js +20 -73
  33. package/Libraries/Components/TextInput/TextInput.windows.js +21 -75
  34. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  35. package/Libraries/Components/Touchable/Touchable.js +2 -2
  36. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  37. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  39. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  40. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  41. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  43. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  44. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  45. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  46. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  47. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  48. package/Libraries/Components/View/View.js +0 -11
  49. package/Libraries/Components/View/View.windows.js +0 -11
  50. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  51. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  52. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  53. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  54. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  55. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  56. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  57. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  58. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  59. package/Libraries/Core/ErrorHandlers.js +116 -0
  60. package/Libraries/Core/ExceptionsManager.js +2 -2
  61. package/Libraries/Core/ReactNativeVersion.js +3 -3
  62. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  63. package/Libraries/Core/setUpPerformance.js +6 -4
  64. package/Libraries/Core/setUpReactDevTools.js +70 -10
  65. package/Libraries/Core/setUpTimers.js +50 -31
  66. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  67. package/Libraries/Image/Image.android.js +23 -13
  68. package/Libraries/Image/Image.d.ts +14 -15
  69. package/Libraries/Image/Image.ios.js +21 -11
  70. package/Libraries/Image/Image.windows.js +21 -11
  71. package/Libraries/Image/ImageProps.js +16 -5
  72. package/Libraries/Image/ImageTypes.flow.js +7 -2
  73. package/Libraries/Image/ImageUtils.js +1 -0
  74. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  75. package/Libraries/Inspector/ElementBox.js +6 -3
  76. package/Libraries/Inspector/ElementProperties.js +1 -1
  77. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  78. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  79. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  80. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  81. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  82. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  83. package/Libraries/LogBox/LogBox.js +29 -12
  84. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  85. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  86. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  88. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  89. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  90. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  92. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  93. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  94. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  95. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  97. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  103. package/Libraries/Network/XMLHttpRequest.js +5 -1
  104. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  105. package/Libraries/Pressability/Pressability.js +3 -51
  106. package/Libraries/Pressability/Pressability.windows.js +3 -51
  107. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  108. package/Libraries/ReactNative/AppRegistry.js +2 -4
  109. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  110. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  111. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  112. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  113. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  114. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  115. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  116. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  117. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  118. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  119. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  120. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  123. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  124. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  125. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  126. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  127. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  128. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  129. package/Libraries/Share/Share.d.ts +16 -10
  130. package/Libraries/Share/Share.js +14 -15
  131. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  132. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  133. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  134. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  135. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  136. package/Libraries/StyleSheet/processFilter.js +132 -0
  137. package/Libraries/StyleSheet/processTransform.js +18 -3
  138. package/Libraries/Text/Text.js +151 -128
  139. package/Libraries/Text/Text.windows.js +144 -127
  140. package/Libraries/Text/TextNativeComponent.js +5 -4
  141. package/Libraries/Text/TextProps.js +6 -6
  142. package/Libraries/Text/TextProps.windows.js +6 -6
  143. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  144. package/Libraries/Types/CodegenTypes.js +3 -0
  145. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  146. package/Libraries/Utilities/Dimensions.js +1 -0
  147. package/Libraries/Utilities/HMRClient.js +36 -8
  148. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  149. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  150. package/Libraries/Utilities/Platform.android.js +4 -4
  151. package/Libraries/Utilities/RCTLog.js +1 -0
  152. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  153. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  154. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  155. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  156. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  157. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  158. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  159. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  160. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  162. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +12 -3
  163. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  165. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  166. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  168. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  169. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  170. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -11
  171. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  172. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  173. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  174. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  175. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  176. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  177. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  178. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  179. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  180. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  181. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  182. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  183. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  184. package/Microsoft.ReactNative/Timer.idl +1 -3
  185. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  186. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  187. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  188. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  189. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  190. package/Microsoft.ReactNative/packages.lock.json +45 -72
  191. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  192. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  193. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  194. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  195. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  196. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  197. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  198. package/PropertySheets/ARM64EC.props +13 -0
  199. package/PropertySheets/Application/ARM64EC.props +13 -0
  200. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  201. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  202. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  203. package/PropertySheets/JSEngine.props +2 -0
  204. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  205. package/README.md +21 -21
  206. package/ReactCommon/ReactCommon.vcxproj +11 -1
  207. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  208. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  209. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  210. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  211. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  224. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  225. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +10 -6
  226. package/Scripts/rnw-dependencies.ps1 +36 -23
  227. package/Shared/HermesRuntimeHolder.cpp +19 -1
  228. package/Shared/HermesRuntimeHolder.h +8 -1
  229. package/Shared/HermesSamplingProfiler.cpp +1 -2
  230. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  231. package/Shared/OInstance.cpp +1 -2
  232. package/Shared/Shared.vcxitems +21 -15
  233. package/Shared/Shared.vcxitems.filters +8 -3
  234. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  235. package/Shared/Threading/BatchingQueueThread.h +2 -2
  236. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  237. package/codegen/NativeAppStateSpec.g.h +8 -8
  238. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  239. package/codegen/NativeDOMSpec.g.h +136 -0
  240. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  241. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  242. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  243. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  244. package/codegen/NativePerformanceSpec.g.h +35 -7
  245. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  246. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  247. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  248. package/codegen/NativeUIManagerSpec.g.h +5 -17
  249. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  250. package/codegen/react/components/rnwcore/Props.h +16 -12
  251. package/codegen/react/components/rnwcore/States.h +0 -26
  252. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  253. package/codegen/rnwcoreJSI.h +1374 -2867
  254. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  255. package/fmt/fmt.vcxproj +10 -2
  256. package/jest/mockComponent.js +7 -0
  257. package/jest/renderer.js +25 -14
  258. package/jest/setup.js +19 -13
  259. package/package.json +29 -27
  260. package/rn-get-polyfills.js +1 -0
  261. package/src/private/core/composeStyles.js +27 -0
  262. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  263. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  264. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  265. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  266. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  267. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  268. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  269. package/src/private/specs/modules/NativeUIManager.js +0 -7
  270. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  271. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  272. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  273. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  274. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  275. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  276. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  277. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  278. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  279. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  280. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  281. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  282. package/src/private/webapis/performance/EventCounts.js +1 -1
  283. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  284. package/src/private/webapis/performance/Performance.js +10 -56
  285. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  286. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  287. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  288. package/src/private/webapis/performance/UserTiming.js +63 -0
  289. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  290. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  291. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  292. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  293. package/stubs/glog/logging.h +1 -0
  294. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  295. package/template/cs-lib/proj/MyLib.csproj +1 -1
  296. package/template/metro.config.js +13 -2
  297. package/templates/cpp-app/template.config.js +1 -1
  298. package/templates/cpp-lib/example/metro.config.js +2 -2
  299. package/templates/cpp-lib/template.config.js +1 -1
  300. package/templates/old/generateWrapper.js +4 -1
  301. package/types/modules/globals.d.ts +4 -0
  302. package/Libraries/Lists/FlatList.windows.js +0 -717
  303. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  304. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  305. package/Libraries/Utilities/LoadingView.js +0 -16
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2375
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  312. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  313. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  314. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  315. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  316. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  317. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  318. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  319. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  320. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  321. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  322. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  323. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  324. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  325. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  326. package/template/metro.devMode.config.js +0 -56
  327. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -52,8 +52,10 @@ const Text: React.AbstractComponent<
52
52
  'aria-setsize': ariaSetsize, // Windows
53
53
  'aria-selected': ariaSelected,
54
54
  ellipsizeMode,
55
+ disabled,
55
56
  id,
56
57
  nativeID,
58
+ numberOfLines,
57
59
  onLongPress,
58
60
  onPress,
59
61
  onPressIn,
@@ -65,34 +67,47 @@ const Text: React.AbstractComponent<
65
67
  onResponderTerminationRequest,
66
68
  onStartShouldSetResponder,
67
69
  pressRetentionOffset,
70
+ selectable,
71
+ selectionColor,
68
72
  suppressHighlighting,
73
+ style,
69
74
  ...restProps
70
75
  } = props;
71
76
 
72
77
  const [isHighlighted, setHighlighted] = useState(false);
73
78
 
74
- let _accessibilityState;
79
+ const _accessibilityLabel = ariaLabel ?? accessibilityLabel;
80
+
81
+ let _accessibilityState: ?TextProps['accessibilityState'] =
82
+ accessibilityState;
75
83
  if (
76
- accessibilityState != null ||
77
84
  ariaBusy != null ||
78
85
  ariaChecked != null ||
79
86
  ariaDisabled != null ||
80
87
  ariaExpanded != null ||
81
88
  ariaSelected != null
82
89
  ) {
83
- _accessibilityState = {
84
- busy: ariaBusy ?? accessibilityState?.busy,
85
- checked: ariaChecked ?? accessibilityState?.checked,
86
- disabled: ariaDisabled ?? accessibilityState?.disabled,
87
- expanded: ariaExpanded ?? accessibilityState?.expanded,
88
- selected: ariaSelected ?? accessibilityState?.selected,
89
- };
90
+ if (_accessibilityState != null) {
91
+ _accessibilityState = {
92
+ busy: ariaBusy ?? _accessibilityState.busy,
93
+ checked: ariaChecked ?? _accessibilityState.checked,
94
+ disabled: ariaDisabled ?? _accessibilityState.disabled,
95
+ expanded: ariaExpanded ?? _accessibilityState.expanded,
96
+ selected: ariaSelected ?? _accessibilityState.selected,
97
+ };
98
+ } else {
99
+ _accessibilityState = {
100
+ busy: ariaBusy,
101
+ checked: ariaChecked,
102
+ disabled: ariaDisabled,
103
+ expanded: ariaExpanded,
104
+ selected: ariaSelected,
105
+ };
106
+ }
90
107
  }
91
108
 
92
- const _disabled =
93
- restProps.disabled != null
94
- ? restProps.disabled
95
- : _accessibilityState?.disabled;
109
+ const _accessibilityStateDisabled = _accessibilityState?.disabled;
110
+ const _disabled = disabled ?? _accessibilityStateDisabled;
96
111
 
97
112
  const nativeTextAccessibilityState =
98
113
  _disabled !== _accessibilityState?.disabled
@@ -106,46 +121,47 @@ const Text: React.AbstractComponent<
106
121
  _disabled !== true;
107
122
 
108
123
  const initialized = useLazyInitialization(isPressable);
109
- const config = useMemo(
110
- () =>
111
- initialized
112
- ? {
113
- disabled: !isPressable,
114
- pressRectOffset: pressRetentionOffset,
115
- onLongPress,
116
- onPress,
117
- onPressIn(event: PressEvent) {
118
- // Updating isHighlighted causes unnecessary re-renders for platforms that don't use it
119
- // in the best case, and cause issues with text selection in the worst case. Forcing
120
- // the isHighlighted prop to false on all platforms except iOS.
121
- setHighlighted(
122
- (suppressHighlighting == null || !suppressHighlighting) &&
123
- Platform.OS === 'ios',
124
- );
125
- onPressIn?.(event);
126
- },
127
- onPressOut(event: PressEvent) {
128
- setHighlighted(false);
129
- onPressOut?.(event);
130
- },
131
- onResponderTerminationRequest_DEPRECATED:
132
- onResponderTerminationRequest,
133
- onStartShouldSetResponder_DEPRECATED: onStartShouldSetResponder,
134
- }
135
- : null,
136
- [
137
- initialized,
138
- isPressable,
139
- pressRetentionOffset,
124
+ const config = useMemo(() => {
125
+ if (!initialized) {
126
+ return null;
127
+ }
128
+
129
+ let _onPressIn = onPressIn;
130
+ let _onPressOut = onPressOut;
131
+
132
+ // Updating isHighlighted causes unnecessary re-renders for platforms that don't use it
133
+ // in the best case, and cause issues with text selection in the worst case. Forcing
134
+ // the isHighlighted prop to false on all platforms except iOS.
135
+ if (Platform.OS === 'ios') {
136
+ _onPressIn = (event: PressEvent) => {
137
+ setHighlighted(suppressHighlighting == null || !suppressHighlighting);
138
+ onPressIn?.(event);
139
+ };
140
+
141
+ _onPressOut = (event: PressEvent) => {
142
+ setHighlighted(false);
143
+ onPressOut?.(event);
144
+ };
145
+ }
146
+
147
+ return {
148
+ disabled: !isPressable,
149
+ pressRectOffset: pressRetentionOffset,
140
150
  onLongPress,
141
151
  onPress,
142
- onPressIn,
143
- onPressOut,
144
- onResponderTerminationRequest,
145
- onStartShouldSetResponder,
146
- suppressHighlighting,
147
- ],
148
- );
152
+ onPressIn: _onPressIn,
153
+ onPressOut: _onPressOut,
154
+ };
155
+ }, [
156
+ initialized,
157
+ isPressable,
158
+ pressRetentionOffset,
159
+ onLongPress,
160
+ onPress,
161
+ onPressIn,
162
+ onPressOut,
163
+ suppressHighlighting,
164
+ ]);
149
165
 
150
166
  const eventHandlers = usePressability(config);
151
167
  const eventHandlersForText = useMemo(
@@ -179,8 +195,13 @@ const Text: React.AbstractComponent<
179
195
  },
180
196
  onClick: eventHandlers.onClick,
181
197
  onResponderTerminationRequest:
182
- eventHandlers.onResponderTerminationRequest,
183
- onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,
198
+ onResponderTerminationRequest != null
199
+ ? onResponderTerminationRequest
200
+ : eventHandlers.onResponderTerminationRequest,
201
+ onStartShouldSetResponder:
202
+ onStartShouldSetResponder != null
203
+ ? onStartShouldSetResponder
204
+ : eventHandlers.onStartShouldSetResponder,
184
205
  },
185
206
  [
186
207
  eventHandlers,
@@ -188,96 +209,99 @@ const Text: React.AbstractComponent<
188
209
  onResponderMove,
189
210
  onResponderRelease,
190
211
  onResponderTerminate,
212
+ onResponderTerminationRequest,
213
+ onStartShouldSetResponder,
191
214
  ],
192
215
  );
193
216
 
194
217
  // TODO: Move this processing to the view configuration.
195
- const selectionColor =
196
- restProps.selectionColor == null
197
- ? null
198
- : processColor(restProps.selectionColor);
199
-
200
- let style = restProps.style;
218
+ const _selectionColor =
219
+ selectionColor == null ? null : processColor(selectionColor);
201
220
 
221
+ let _style = style;
202
222
  if (__DEV__) {
203
223
  if (PressabilityDebug.isEnabled() && onPress != null) {
204
- style = [restProps.style, {color: 'magenta'}];
224
+ _style = [style, {color: 'magenta'}];
205
225
  }
206
226
  }
207
227
 
208
- let numberOfLines = restProps.numberOfLines;
209
- if (numberOfLines != null && !(numberOfLines >= 0)) {
210
- console.error(
211
- `'numberOfLines' in <Text> must be a non-negative number, received: ${numberOfLines}. The value will be set to 0.`,
212
- );
213
- numberOfLines = 0;
228
+ let _numberOfLines = numberOfLines;
229
+ if (_numberOfLines != null && !(_numberOfLines >= 0)) {
230
+ if (__DEV__) {
231
+ console.error(
232
+ `'numberOfLines' in <Text> must be a non-negative number, received: ${_numberOfLines}. The value will be set to 0.`,
233
+ );
234
+ }
235
+ _numberOfLines = 0;
214
236
  }
215
237
 
216
- const hasTextAncestor = useContext(TextAncestor);
217
-
218
- const _accessible = Platform.select({
219
- ios: accessible !== false,
220
- windows: accessible !== false,
221
- default: accessible,
222
- });
238
+ let _selectable = selectable;
239
+ const processedStyle = flattenStyle(_style);
240
+ if (processedStyle != null) {
241
+ if (typeof processedStyle.fontWeight === 'number') {
242
+ // $FlowFixMe[cannot-write]
243
+ processedStyle.fontWeight = processedStyle.fontWeight.toString();
244
+ }
223
245
 
224
- // $FlowFixMe[underconstrained-implicit-instantiation]
225
- style = flattenStyle(style);
246
+ if (processedStyle.userSelect != null) {
247
+ _selectable = userSelectToSelectableMap[processedStyle.userSelect];
248
+ // $FlowFixMe[cannot-write]
249
+ delete processedStyle.userSelect;
250
+ }
226
251
 
227
- if (typeof style?.fontWeight === 'number') {
228
- // $FlowFixMe[prop-missing]
229
- // $FlowFixMe[cannot-write]
230
- style.fontWeight = style?.fontWeight.toString();
252
+ if (processedStyle.verticalAlign != null) {
253
+ // $FlowFixMe[cannot-write]
254
+ processedStyle.textAlignVertical =
255
+ verticalAlignToTextAlignVerticalMap[processedStyle.verticalAlign];
256
+ // $FlowFixMe[cannot-write]
257
+ delete processedStyle.verticalAlign;
258
+ }
231
259
  }
232
260
 
233
- let _selectable = restProps.selectable;
234
- if (style?.userSelect != null) {
235
- // $FlowFixMe[invalid-computed-prop]
236
- _selectable = userSelectToSelectableMap[style.userSelect];
237
- // $FlowFixMe[prop-missing]
238
- // $FlowFixMe[cannot-write]
239
- delete style.userSelect;
240
- }
261
+ const _nativeID = id ?? nativeID;
241
262
 
242
- if (style?.verticalAlign != null) {
243
- // $FlowFixMe[prop-missing]
244
- // $FlowFixMe[cannot-write]
245
- style.textAlignVertical =
246
- // $FlowFixMe[invalid-computed-prop]
247
- verticalAlignToTextAlignVerticalMap[style.verticalAlign];
248
- // $FlowFixMe[prop-missing]
249
- // $FlowFixMe[cannot-write]
250
- delete style.verticalAlign;
263
+ // If the disabled prop and accessibilityState.disabled are out of sync but not both in
264
+ // falsy states we need to update the accessibilityState object to use the disabled prop.
265
+ if (
266
+ _disabled !== _accessibilityStateDisabled &&
267
+ ((_disabled != null && _disabled !== false) ||
268
+ (_accessibilityStateDisabled != null &&
269
+ _accessibilityStateDisabled !== false))
270
+ ) {
271
+ _accessibilityState = {..._accessibilityState, disabled: _disabled};
251
272
  }
252
273
 
253
- const _hasOnPressOrOnLongPress =
254
- props.onPress != null || props.onLongPress != null;
274
+ const _accessible = Platform.select({
275
+ ios: accessible !== false,
276
+ android:
277
+ accessible == null ? onPress != null || onLongPress != null : accessible,
278
+ default: accessible !== false,
279
+ });
255
280
 
281
+ const hasTextAncestor = useContext(TextAncestor);
256
282
  if (hasTextAncestor) {
257
283
  return (
258
284
  <NativeVirtualText
259
285
  {...restProps}
260
286
  {...eventHandlersForText}
261
- accessibilityLabel={ariaLabel ?? accessibilityLabel}
287
+ accessibilityLabel={_accessibilityLabel}
288
+ accessibilityState={_accessibilityState}
262
289
  accessibilityLevel={ariaLevel ?? accessibilityLevel} // Windows
263
290
  accessibilityPosInSet={ariaPosinset ?? accessibilityPosInSet} // Windows
264
291
  accessibilitySetSize={ariaSetsize ?? accessibilitySetSize} // Windows
265
- accessibilityState={_accessibilityState}
266
- allowFontScaling={allowFontScaling !== false}
267
- disabled={_disabled}
268
- ellipsizeMode={ellipsizeMode ?? 'tail'}
269
292
  isHighlighted={isHighlighted}
270
293
  isPressable={isPressable}
271
- nativeID={id ?? nativeID}
272
- numberOfLines={numberOfLines}
294
+ nativeID={_nativeID}
295
+ numberOfLines={_numberOfLines}
273
296
  ref={forwardedRef}
274
297
  selectable={_selectable}
275
- selectionColor={selectionColor}
276
- style={style}
298
+ selectionColor={_selectionColor}
299
+ style={processedStyle}
277
300
  />
278
301
  );
302
+ // [Windows] Following else statement forked due to PR #5740
279
303
  } else {
280
- let styleProps: ViewStyleProp = (restProps.style: any);
304
+ let styleProps: ViewStyleProp = (style: any);
281
305
  if (
282
306
  styleProps &&
283
307
  styleProps.borderColor &&
@@ -341,16 +365,12 @@ const Text: React.AbstractComponent<
341
365
  <NativeText
342
366
  {...textPropsLessStyle}
343
367
  {...eventHandlersForText}
344
- accessibilityLabel={ariaLabel ?? accessibilityLabel}
368
+ accessibilityLabel={_accessibilityLabel}
345
369
  accessibilityLevel={ariaLevel ?? accessibilityLevel} // Windows
346
370
  accessibilityPosInSet={ariaPosinset ?? accessibilityPosInSet} // Windows
347
371
  accessibilitySetSize={ariaSetsize ?? accessibilitySetSize} // Windows
348
- accessibilityState={nativeTextAccessibilityState}
349
- accessible={
350
- accessible == null && Platform.OS === 'android'
351
- ? _hasOnPressOrOnLongPress
352
- : _accessible
353
- }
372
+ accessibilityState={_accessibilityState}
373
+ accessible={_accessible}
354
374
  allowFontScaling={allowFontScaling !== false}
355
375
  disabled={_disabled}
356
376
  ellipsizeMode={ellipsizeMode ?? 'tail'}
@@ -359,7 +379,7 @@ const Text: React.AbstractComponent<
359
379
  numberOfLines={numberOfLines}
360
380
  ref={forwardedRef}
361
381
  selectable={_selectable}
362
- selectionColor={selectionColor}
382
+ selectionColor={_selectionColor}
363
383
  style={((rest: any): TextStyleProp)}
364
384
  />
365
385
  </TextAncestor.Provider>
@@ -371,31 +391,28 @@ const Text: React.AbstractComponent<
371
391
  <NativeText
372
392
  {...restProps}
373
393
  {...eventHandlersForText}
374
- accessibilityLabel={ariaLabel ?? accessibilityLabel}
394
+ accessibilityLabel={_accessibilityLabel}
375
395
  accessibilityLevel={ariaLevel ?? accessibilityLevel} // Windows
376
396
  accessibilityPosInSet={ariaPosinset ?? accessibilityPosInSet} // Windows
377
397
  accessibilitySetSize={ariaSetsize ?? accessibilitySetSize} // Windows
378
- accessibilityState={nativeTextAccessibilityState}
379
- accessible={
380
- accessible == null && Platform.OS === 'android'
381
- ? _hasOnPressOrOnLongPress
382
- : _accessible
383
- }
398
+ accessibilityState={_accessibilityState}
399
+ accessible={_accessible}
384
400
  allowFontScaling={allowFontScaling !== false}
385
401
  disabled={_disabled}
386
402
  ellipsizeMode={ellipsizeMode ?? 'tail'}
387
403
  isHighlighted={isHighlighted}
388
- nativeID={id ?? nativeID}
404
+ nativeID={_nativeID}
389
405
  numberOfLines={numberOfLines}
390
406
  ref={forwardedRef}
391
407
  selectable={_selectable}
392
- selectionColor={selectionColor}
393
- style={style}
408
+ selectionColor={_selectionColor}
409
+ style={processedStyle}
394
410
  />
395
411
  </TextAncestor.Provider>
396
412
  );
397
413
  }
398
414
  }
415
+ // [Windows #5740]
399
416
  });
400
417
 
401
418
  Text.displayName = 'Text';
@@ -428,4 +445,4 @@ const verticalAlignToTextAlignVerticalMap = {
428
445
  middle: 'center',
429
446
  };
430
447
 
431
- module.exports = Text;
448
+ module.exports = Text;
@@ -8,13 +8,14 @@
8
8
  * @format
9
9
  */
10
10
 
11
+ import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
12
+ import type {ProcessedColorValue} from '../StyleSheet/processColor';
13
+ import type {PressEvent} from '../Types/CoreEventTypes';
14
+ import type {TextProps} from './TextProps';
15
+
11
16
  import {createViewConfig} from '../NativeComponent/ViewConfig';
12
17
  import UIManager from '../ReactNative/UIManager';
13
18
  import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
14
- import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
15
- import {type ProcessedColorValue} from '../StyleSheet/processColor';
16
- import {type PressEvent} from '../Types/CoreEventTypes';
17
- import {type TextProps} from './TextProps';
18
19
 
19
20
  type NativeTextProps = $ReadOnly<{
20
21
  ...TextProps,
@@ -26,23 +26,23 @@ import type {
26
26
  } from '../Types/CoreEventTypes';
27
27
  import type {Node} from 'react';
28
28
 
29
- export type PressRetentionOffset = $ReadOnly<{|
29
+ export type PressRetentionOffset = $ReadOnly<{
30
30
  top: number,
31
31
  left: number,
32
32
  bottom: number,
33
33
  right: number,
34
- |}>;
34
+ }>;
35
35
 
36
- type PointerEventProps = $ReadOnly<{|
36
+ type PointerEventProps = $ReadOnly<{
37
37
  onPointerEnter?: (event: PointerEvent) => void,
38
38
  onPointerLeave?: (event: PointerEvent) => void,
39
39
  onPointerMove?: (event: PointerEvent) => void,
40
- |}>;
40
+ }>;
41
41
 
42
42
  /**
43
43
  * @see https://reactnative.dev/docs/text#reference
44
44
  */
45
- export type TextProps = $ReadOnly<{|
45
+ export type TextProps = $ReadOnly<{
46
46
  ...PointerEventProps,
47
47
 
48
48
  /**
@@ -265,4 +265,4 @@ export type TextProps = $ReadOnly<{|
265
265
  * See https://reactnative.dev/docs/text.html#linebreakstrategyios
266
266
  */
267
267
  lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
268
- |}>;
268
+ }>;
@@ -26,23 +26,23 @@ import type {
26
26
  } from '../Types/CoreEventTypes';
27
27
  import type {Node} from 'react';
28
28
 
29
- export type PressRetentionOffset = $ReadOnly<{|
29
+ export type PressRetentionOffset = $ReadOnly<{
30
30
  top: number,
31
31
  left: number,
32
32
  bottom: number,
33
33
  right: number,
34
- |}>;
34
+ }>;
35
35
 
36
- type PointerEventProps = $ReadOnly<{|
36
+ type PointerEventProps = $ReadOnly<{
37
37
  onPointerEnter?: (event: PointerEvent) => void,
38
38
  onPointerLeave?: (event: PointerEvent) => void,
39
39
  onPointerMove?: (event: PointerEvent) => void,
40
- |}>;
40
+ }>;
41
41
 
42
42
  /**
43
43
  * @see https://reactnative.dev/docs/text#reference
44
44
  */
45
- export type TextProps = $ReadOnly<{|
45
+ export type TextProps = $ReadOnly<{
46
46
  ...PointerEventProps,
47
47
 
48
48
  /**
@@ -272,4 +272,4 @@ export type TextProps = $ReadOnly<{|
272
272
  * See https://reactnative.dev/docs/text.html#linebreakstrategyios
273
273
  */
274
274
  lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
275
- |}>;
275
+ }>;
@@ -76,7 +76,8 @@ export function getEnforcing<T: TurboModule>(name: string): T {
76
76
  'Verify that a module by this name is registered in the native binary.';
77
77
 
78
78
  if (shouldReportDebugInfo()) {
79
- message += 'Bridgeless mode: ' + (isBridgeless() ? 'true' : 'false') + '. ';
79
+ message +=
80
+ ' Bridgeless mode: ' + (isBridgeless() ? 'true' : 'false') + '. ';
80
81
  message +=
81
82
  'TurboModule interop: ' +
82
83
  (isTurboModuleInteropEnabled() ? 'true' : 'false') +
@@ -10,6 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
+ import type {EventSubscription} from '../vendor/emitter/EventEmitter';
13
14
  import type {SyntheticEvent} from './CoreEventTypes';
14
15
 
15
16
  // Event types
@@ -40,3 +41,5 @@ type DefaultTypes = number | boolean | string | $ReadOnlyArray<string>;
40
41
  //
41
42
  // eslint-disable-next-line no-unused-vars
42
43
  export type WithDefault<Type: DefaultTypes, Value: ?Type | string> = ?Type;
44
+
45
+ export type EventEmitter<T> = (handler: (T) => mixed) => EventSubscription;
@@ -12,23 +12,45 @@ import processColor from '../StyleSheet/processColor';
12
12
  import Appearance from './Appearance';
13
13
  import NativeDevLoadingView from './NativeDevLoadingView';
14
14
 
15
+ const COLOR_SCHEME = {
16
+ dark: {
17
+ refresh: {
18
+ backgroundColor: '#2584e8',
19
+ textColor: '#ffffff',
20
+ },
21
+ load: {
22
+ backgroundColor: '#fafafa',
23
+ textColor: '#242526',
24
+ },
25
+ },
26
+ default: {
27
+ refresh: {
28
+ backgroundColor: '#2584e8',
29
+ textColor: '#ffffff',
30
+ },
31
+ load: {
32
+ backgroundColor: '#404040',
33
+ textColor: '#ffffff',
34
+ },
35
+ },
36
+ };
37
+
15
38
  module.exports = {
16
39
  showMessage(message: string, type: 'load' | 'refresh') {
17
40
  if (NativeDevLoadingView) {
41
+ const colorScheme =
42
+ Appearance.getColorScheme() === 'dark'
43
+ ? COLOR_SCHEME.dark
44
+ : COLOR_SCHEME.default;
45
+
46
+ const colorSet = colorScheme[type];
47
+
18
48
  let backgroundColor;
19
49
  let textColor;
20
50
 
21
- if (type === 'refresh') {
22
- backgroundColor = processColor('#2584e8');
23
- textColor = processColor('#ffffff');
24
- } else if (type === 'load') {
25
- if (Appearance.getColorScheme() === 'dark') {
26
- backgroundColor = processColor('#fafafa');
27
- textColor = processColor('#242526');
28
- } else {
29
- backgroundColor = processColor('#404040');
30
- textColor = processColor('#ffffff');
31
- }
51
+ if (colorSet) {
52
+ backgroundColor = processColor(colorSet.backgroundColor);
53
+ textColor = processColor(colorSet.textColor);
32
54
  }
33
55
 
34
56
  NativeDevLoadingView.showMessage(
@@ -44,6 +44,7 @@ class Dimensions {
44
44
  * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension.
45
45
  */
46
46
  static get(dim: string): DisplayMetrics | DisplayMetricsAndroid {
47
+ // $FlowFixMe[invalid-computed-prop]
47
48
  invariant(dimensions[dim], 'No dimension set for key ' + dim);
48
49
  return dimensions[dim];
49
50
  }