react-native-windows 0.74.11 → 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 (336) 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 +14 -70
  33. package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
  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/CompositionViewComponentView.cpp +1 -4
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  162. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  163. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
  164. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
  165. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
  166. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  168. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  169. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  170. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  171. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  172. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  173. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  174. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
  175. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  179. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  180. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  181. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  182. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  183. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  184. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  185. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  186. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  187. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  188. package/Microsoft.ReactNative/Timer.idl +1 -3
  189. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  190. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  191. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  192. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  193. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  194. package/Microsoft.ReactNative/packages.lock.json +45 -72
  195. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  196. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  197. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  198. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  199. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  200. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  201. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  202. package/PropertySheets/ARM64EC.props +13 -0
  203. package/PropertySheets/Application/ARM64EC.props +13 -0
  204. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  205. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  206. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  207. package/PropertySheets/JSEngine.props +2 -0
  208. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  209. package/README.md +21 -21
  210. package/ReactCommon/ReactCommon.vcxproj +11 -1
  211. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  224. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  225. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  226. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  227. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  228. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  229. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
  230. package/Scripts/rnw-dependencies.ps1 +36 -23
  231. package/Shared/HermesRuntimeHolder.cpp +19 -1
  232. package/Shared/HermesRuntimeHolder.h +8 -1
  233. package/Shared/HermesSamplingProfiler.cpp +1 -2
  234. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  235. package/Shared/OInstance.cpp +1 -2
  236. package/Shared/Shared.vcxitems +21 -15
  237. package/Shared/Shared.vcxitems.filters +8 -3
  238. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  239. package/Shared/Threading/BatchingQueueThread.h +2 -2
  240. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  241. package/codegen/NativeAppStateSpec.g.h +8 -8
  242. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  243. package/codegen/NativeDOMSpec.g.h +136 -0
  244. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  245. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  246. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  247. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  248. package/codegen/NativePerformanceSpec.g.h +35 -7
  249. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  250. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  251. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  252. package/codegen/NativeUIManagerSpec.g.h +5 -17
  253. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  254. package/codegen/react/components/rnwcore/Props.h +16 -12
  255. package/codegen/react/components/rnwcore/States.h +0 -26
  256. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  257. package/codegen/rnwcoreJSI.h +1374 -2867
  258. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  259. package/fmt/fmt.vcxproj +10 -2
  260. package/jest/mockComponent.js +7 -0
  261. package/jest/renderer.js +25 -14
  262. package/jest/setup.js +19 -13
  263. package/package.json +29 -27
  264. package/rn-get-polyfills.js +1 -0
  265. package/src/private/core/composeStyles.js +27 -0
  266. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  267. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  268. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  269. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  270. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  271. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  272. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  273. package/src/private/specs/modules/NativeUIManager.js +0 -7
  274. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  275. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  276. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  277. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  278. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  279. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  280. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  281. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  282. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  283. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  284. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  285. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  286. package/src/private/webapis/performance/EventCounts.js +1 -1
  287. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  288. package/src/private/webapis/performance/Performance.js +10 -56
  289. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  290. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  291. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  292. package/src/private/webapis/performance/UserTiming.js +63 -0
  293. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  294. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  295. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  296. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  297. package/stubs/glog/logging.h +1 -0
  298. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  299. package/template/cs-lib/proj/MyLib.csproj +1 -1
  300. package/template/metro.config.js +13 -2
  301. package/templates/cpp-app/template.config.js +1 -1
  302. package/templates/cpp-lib/example/metro.config.js +2 -2
  303. package/templates/cpp-lib/template.config.js +1 -1
  304. package/templates/old/generateWrapper.js +4 -1
  305. package/types/modules/globals.d.ts +4 -0
  306. package/Libraries/Lists/FlatList.windows.js +0 -717
  307. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  308. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  309. package/Libraries/Utilities/LoadingView.js +0 -16
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  312. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  313. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  314. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
  315. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
  316. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
  317. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  318. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
  319. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
  320. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
  321. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  322. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  323. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  324. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  325. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  326. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  327. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  328. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  329. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  330. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  331. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  332. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  333. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  334. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  335. package/template/metro.devMode.config.js +0 -56
  336. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -26,6 +26,7 @@ let hmrUnavailableReason: string | null = null;
26
26
  let currentCompileErrorMessage: string | null = null;
27
27
  let didConnect: boolean = false;
28
28
  let pendingLogs: Array<[LogLevel, $ReadOnlyArray<mixed>]> = [];
29
+ let pendingFuseboxConsoleNotification = false;
29
30
 
30
31
  type LogLevel =
31
32
  | 'trace'
@@ -51,6 +52,7 @@ export type HMRClientNativeInterface = {|
51
52
  isEnabled: boolean,
52
53
  scheme?: string,
53
54
  ): void,
55
+ unstable_notifyFuseboxConsoleEnabled(): void,
54
56
  |};
55
57
 
56
58
  /**
@@ -68,7 +70,7 @@ const HMRClient: HMRClientNativeInterface = {
68
70
  }
69
71
 
70
72
  invariant(hmrClient, 'Expected HMRClient.setup() call at startup.');
71
- const LoadingView = require('./LoadingView');
73
+ const DevLoadingView = require('./DevLoadingView');
72
74
 
73
75
  // We use this for internal logging only.
74
76
  // It doesn't affect the logic.
@@ -79,13 +81,13 @@ const HMRClient: HMRClientNativeInterface = {
79
81
  const hasUpdates = hmrClient.hasPendingUpdates();
80
82
 
81
83
  if (hasUpdates) {
82
- LoadingView.showMessage('Refreshing...', 'refresh');
84
+ DevLoadingView.showMessage('Refreshing...', 'refresh');
83
85
  }
84
86
  try {
85
87
  hmrClient.enable();
86
88
  } finally {
87
89
  if (hasUpdates) {
88
- LoadingView.hide();
90
+ DevLoadingView.hide();
89
91
  }
90
92
  }
91
93
 
@@ -140,6 +142,29 @@ const HMRClient: HMRClientNativeInterface = {
140
142
  }
141
143
  },
142
144
 
145
+ unstable_notifyFuseboxConsoleEnabled() {
146
+ if (!hmrClient) {
147
+ pendingFuseboxConsoleNotification = true;
148
+ return;
149
+ }
150
+ hmrClient.send(
151
+ JSON.stringify({
152
+ type: 'log',
153
+ level: 'info',
154
+ data: [
155
+ '\n' +
156
+ '\x1b[7m' +
157
+ ' \x1b[1mJavaScript logs have moved!\x1b[22m They will now appear in the debugger console. ' +
158
+ 'Tip: Type \x1b[1mj\x1b[22m in the terminal to open the debugger (requires Google Chrome ' +
159
+ 'or Microsoft Edge).' +
160
+ '\x1b[27m' +
161
+ '\n',
162
+ ],
163
+ }),
164
+ );
165
+ pendingFuseboxConsoleNotification = false;
166
+ },
167
+
143
168
  // Called once by the bridge on startup, even if Fast Refresh is off.
144
169
  // It creates the HMR client but doesn't actually set up the socket yet.
145
170
  setup(
@@ -156,7 +181,7 @@ const HMRClient: HMRClientNativeInterface = {
156
181
  invariant(!hmrClient, 'Cannot initialize hmrClient twice');
157
182
 
158
183
  // Moving to top gives errors due to NativeModules not being initialized
159
- const LoadingView = require('./LoadingView');
184
+ const DevLoadingView = require('./DevLoadingView');
160
185
 
161
186
  const serverHost = port !== null && port !== '' ? `${host}:${port}` : host;
162
187
 
@@ -205,7 +230,7 @@ Error: ${e.message}`;
205
230
  didConnect = true;
206
231
 
207
232
  if (client.isEnabled() && !isInitialUpdate) {
208
- LoadingView.showMessage('Refreshing...', 'refresh');
233
+ DevLoadingView.showMessage('Refreshing...', 'refresh');
209
234
  }
210
235
  });
211
236
 
@@ -217,11 +242,11 @@ Error: ${e.message}`;
217
242
  });
218
243
 
219
244
  client.on('update-done', () => {
220
- LoadingView.hide();
245
+ DevLoadingView.hide();
221
246
  });
222
247
 
223
248
  client.on('error', data => {
224
- LoadingView.hide();
249
+ DevLoadingView.hide();
225
250
 
226
251
  if (data.type === 'GraphNotFoundError') {
227
252
  client.close();
@@ -242,7 +267,7 @@ Error: ${e.message}`;
242
267
  });
243
268
 
244
269
  client.on('close', closeEvent => {
245
- LoadingView.hide();
270
+ DevLoadingView.hide();
246
271
 
247
272
  // https://www.rfc-editor.org/rfc/rfc6455.html#section-7.4.1
248
273
  // https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5
@@ -316,6 +341,9 @@ function flushEarlyLogs(client: MetroHMRClient) {
316
341
  pendingLogs.forEach(([level, data]) => {
317
342
  HMRClient.log(level, data);
318
343
  });
344
+ if (pendingFuseboxConsoleNotification) {
345
+ HMRClient.unstable_notifyFuseboxConsoleEnabled();
346
+ }
319
347
  } finally {
320
348
  pendingLogs.length = 0;
321
349
  }
@@ -25,6 +25,7 @@ const HMRClientProdShim: HMRClientNativeInterface = {
25
25
  disable() {},
26
26
  registerBundle() {},
27
27
  log() {},
28
+ unstable_notifyFuseboxConsoleEnabled() {},
28
29
  };
29
30
 
30
31
  module.exports = HMRClientProdShim;
@@ -6,6 +6,6 @@
6
6
  * @flow strict
7
7
  */
8
8
 
9
- export * from '../../src/private/specs/modules/NativePlatformConstantsWin';
10
- import NativePlatformConstantsWin from '../../src/private/specs/modules/NativePlatformConstantsWin';
9
+ export * from '../../src/private/specs/modules/NativePlatformConstantsWindows';
10
+ import NativePlatformConstantsWin from '../../src/private/specs/modules/NativePlatformConstantsWindows';
11
11
  export default NativePlatformConstantsWin;
@@ -78,10 +78,10 @@ const Platform: PlatformType = {
78
78
  ? // $FlowFixMe[incompatible-return]
79
79
  spec.android
80
80
  : 'native' in spec
81
- ? // $FlowFixMe[incompatible-return]
82
- spec.native
83
- : // $FlowFixMe[incompatible-return]
84
- spec.default,
81
+ ? // $FlowFixMe[incompatible-return]
82
+ spec.native
83
+ : // $FlowFixMe[incompatible-return]
84
+ spec.default,
85
85
  };
86
86
 
87
87
  module.exports = Platform;
@@ -38,6 +38,7 @@ const RCTLog = {
38
38
 
39
39
  // Log to console regardless of nativeLoggingHook
40
40
  logToConsole(level: string, ...args: Array<mixed>): void {
41
+ // $FlowFixMe[invalid-computed-prop]
41
42
  const logFn = levelsMap[level];
42
43
  invariant(
43
44
  logFn,
@@ -12,20 +12,16 @@
12
12
 
13
13
  import type {ReactTestRenderer as ReactTestRendererType} from 'react-test-renderer';
14
14
 
15
+ import TouchableWithoutFeedback from '../Components/Touchable/TouchableWithoutFeedback';
16
+
15
17
  const Switch = require('../Components/Switch/Switch').default;
16
18
  const TextInput = require('../Components/TextInput/TextInput');
17
19
  const View = require('../Components/View/View');
18
20
  const Text = require('../Text/Text');
19
21
  const {VirtualizedList} = require('@react-native/virtualized-lists');
20
22
  const React = require('react');
21
- const ShallowRenderer = require('react-shallow-renderer');
22
23
  const ReactTestRenderer = require('react-test-renderer');
23
24
 
24
- /* $FlowFixMe[not-a-function] (>=0.125.1 site=react_native_fb) This comment
25
- * suppresses an error found when Flow v0.125.1 was deployed. To see the error,
26
- * delete this comment and run Flow. */
27
- // $FlowFixMe[invalid-constructor]
28
- const shallowRenderer = new ShallowRenderer();
29
25
  export type ReactTestInstance = $PropertyType<ReactTestRendererType, 'root'>;
30
26
  export type Predicate = (node: ReactTestInstance) => boolean;
31
27
  /* $FlowFixMe[value-as-type] (>=0.125.1 site=react_native_fb) This comment
@@ -49,6 +45,9 @@ function byClickable(): Predicate {
49
45
  (node.type === Switch && node.props && node.props.disabled !== true) ||
50
46
  (node.type === View &&
51
47
  node?.props?.onStartShouldSetResponder?.testOnly_pressabilityConfig) ||
48
+ (node.type === TouchableWithoutFeedback &&
49
+ node.props &&
50
+ typeof node.props.onPress === 'function') ||
52
51
  // HACK: Find components that use `Pressability`.
53
52
  node.instance?.state?.pressability != null ||
54
53
  // TODO: Remove this after deleting `Touchable`.
@@ -114,7 +113,7 @@ function expectNoConsoleError() {
114
113
  });
115
114
  }
116
115
 
117
- function expectRendersMatchingSnapshot(
116
+ async function expectRendersMatchingSnapshot(
118
117
  name: string,
119
118
  ComponentProvider: () => React.Element<any>,
120
119
  unmockComponent: () => mixed,
@@ -123,7 +122,9 @@ function expectRendersMatchingSnapshot(
123
122
 
124
123
  jest.resetAllMocks();
125
124
 
126
- instance = ReactTestRenderer.create(<ComponentProvider />);
125
+ await ReactTestRenderer.act(() => {
126
+ instance = ReactTestRenderer.create(<ComponentProvider />);
127
+ });
127
128
  expect(instance).toMatchSnapshot(
128
129
  'should deep render when mocked (please verify output manually)',
129
130
  );
@@ -131,22 +132,9 @@ function expectRendersMatchingSnapshot(
131
132
  jest.resetAllMocks();
132
133
  unmockComponent();
133
134
 
134
- instance = shallowRenderer.render(<ComponentProvider />);
135
- expect(instance).toMatchSnapshot(
136
- `should shallow render as <${name} /> when not mocked`,
137
- );
138
-
139
- jest.resetAllMocks();
140
-
141
- instance = shallowRenderer.render(<ComponentProvider />);
142
- expect(instance).toMatchSnapshot(
143
- `should shallow render as <${name} /> when mocked`,
144
- );
145
-
146
- jest.resetAllMocks();
147
- unmockComponent();
148
-
149
- instance = ReactTestRenderer.create(<ComponentProvider />);
135
+ await ReactTestRenderer.act(() => {
136
+ instance = ReactTestRenderer.create(<ComponentProvider />);
137
+ });
150
138
  expect(instance).toMatchSnapshot(
151
139
  'should deep render when not mocked (please verify output manually)',
152
140
  );
@@ -104,16 +104,21 @@ export function getConfigWithoutViewProps(
104
104
  viewConfig: ViewConfig,
105
105
  propName: string,
106
106
  ): {...} {
107
+ // $FlowFixMe[invalid-computed-prop]
107
108
  if (!viewConfig[propName]) {
108
109
  return {};
109
110
  }
110
111
 
111
- return Object.keys(viewConfig[propName])
112
- .filter(prop => !PlatformBaseViewConfig[propName][prop])
113
- .reduce<{[string]: any}>((obj, prop) => {
114
- obj[prop] = viewConfig[propName][prop];
115
- return obj;
116
- }, {});
112
+ return (
113
+ Object.keys(viewConfig[propName])
114
+ // $FlowFixMe[invalid-computed-prop]
115
+ .filter(prop => !PlatformBaseViewConfig[propName][prop])
116
+ .reduce<{[string]: any}>((obj, prop) => {
117
+ // $FlowFixMe[invalid-computed-prop]
118
+ obj[prop] = viewConfig[propName][prop];
119
+ return obj;
120
+ }, {})
121
+ );
117
122
  }
118
123
 
119
124
  export function stringifyViewConfig(viewConfig: any): string {
@@ -2,15 +2,15 @@
2
2
  'use strict';
3
3
 
4
4
  const React = require('react');
5
- const ReactTestRenderer = require('react-test-renderer');
6
-
5
+ const renderer = require('react-native/jest/renderer');
7
6
  const View = require('../Components/View/View');
8
7
 
9
8
  describe('View', () => {
10
- it('renders basic view', () => {
11
- const component = ReactTestRenderer.create(
9
+ it('renders basic view', async () => {
10
+ expect(
11
+ await renderer.create(
12
12
  <View/>
13
- );
14
- expect(component).toMatchSnapshot();
13
+ ),
14
+ ).toMatchSnapshot();
15
15
  });
16
16
  });
@@ -52,6 +52,7 @@ let rejectionTrackingOptions: $NonMaybeType<Parameters<enable>[0]> = {
52
52
  substitutions: [],
53
53
  },
54
54
  componentStack: [],
55
+ componentStackType: null,
55
56
  stack,
56
57
  category: 'possible_unhandled_promise_rejection',
57
58
  });
@@ -17,7 +17,7 @@
17
17
 
18
18
  #pragma warning(push)
19
19
  #pragma warning(disable : 4127) // conditional expression is constant
20
- #include <folly/container/detail/F14table.h>
20
+ #include <folly/container/detail/F14Table.h>
21
21
  #pragma warning(pop)
22
22
 
23
23
  #include <folly/Memory.h>
@@ -20,21 +20,6 @@ namespace Microsoft.ReactNative
20
20
  [experimental]
21
21
  delegate Object StateUpdateMutation(Object props);
22
22
 
23
- [webhosthidden]
24
- [experimental]
25
- enum EventPriority
26
- {
27
- SynchronousUnbatched,
28
- SynchronousBatched,
29
- AsynchronousUnbatched,
30
- AsynchronousBatched,
31
-
32
- Sync = SynchronousUnbatched,
33
- Work = SynchronousBatched,
34
- Interactive = AsynchronousUnbatched,
35
- Deferred = AsynchronousBatched
36
- };
37
-
38
23
  [flags]
39
24
  [webhosthidden]
40
25
  [experimental]
@@ -55,9 +40,7 @@ namespace Microsoft.ReactNative
55
40
  {
56
41
  Object Data { get; };
57
42
  void UpdateState(Object data);
58
- void UpdateStateWithPriority(Object data, EventPriority priority);
59
43
  void UpdateStateWithMutation(StateUpdateMutation mutation);
60
- void UpdateStateWithMutationAndPriority(StateUpdateMutation mutation, EventPriority priority);
61
44
  };
62
45
 
63
46
  [experimental]
@@ -19,53 +19,11 @@ void AbiComponentState::UpdateState(const winrt::Windows::Foundation::IInspectab
19
19
  m_state->updateState(std::move(state));
20
20
  }
21
21
 
22
- // Verify winrt::Microsoft::ReactNative::EventPriority and facebook::react::EventPriority are in sync
23
- static_assert(
24
- winrt::Microsoft::ReactNative::EventPriority::SynchronousUnbatched ==
25
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::SynchronousUnbatched));
26
- static_assert(
27
- winrt::Microsoft::ReactNative::EventPriority::SynchronousBatched ==
28
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::SynchronousBatched));
29
- static_assert(
30
- winrt::Microsoft::ReactNative::EventPriority::AsynchronousUnbatched ==
31
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::AsynchronousUnbatched));
32
- static_assert(
33
- winrt::Microsoft::ReactNative::EventPriority::AsynchronousBatched ==
34
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::AsynchronousBatched));
35
- static_assert(
36
- winrt::Microsoft::ReactNative::EventPriority::Sync ==
37
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::Sync));
38
- static_assert(
39
- winrt::Microsoft::ReactNative::EventPriority::Work ==
40
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::Work));
41
- static_assert(
42
- winrt::Microsoft::ReactNative::EventPriority::Interactive ==
43
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::Interactive));
44
- static_assert(
45
- winrt::Microsoft::ReactNative::EventPriority::Deferred ==
46
- static_cast<winrt::Microsoft::ReactNative::EventPriority>(facebook::react::EventPriority::Deferred));
47
-
48
- void AbiComponentState::UpdateStateWithPriority(
49
- const winrt::Windows::Foundation::IInspectable &data,
50
- winrt::Microsoft::ReactNative::EventPriority priority) noexcept {
51
- AbiStateData state;
52
- state.userdata = data;
53
- m_state->updateState(std::move(state), static_cast<facebook::react::EventPriority>(priority));
54
- }
55
-
56
22
  void AbiComponentState::UpdateStateWithMutation(
57
23
  const winrt::Microsoft::ReactNative::StateUpdateMutation &mutation) noexcept {
58
- UpdateStateWithMutationAndPriority(mutation, winrt::Microsoft::ReactNative::EventPriority::AsynchronousUnbatched);
59
- }
60
-
61
- void AbiComponentState::UpdateStateWithMutationAndPriority(
62
- const winrt::Microsoft::ReactNative::StateUpdateMutation &mutation,
63
- winrt::Microsoft::ReactNative::EventPriority priority) noexcept {
64
- m_state->updateState(
65
- [mutation](const AbiStateData &oldData) {
66
- return std::make_shared<AbiStateData const>(mutation(oldData.userdata));
67
- },
68
- static_cast<facebook::react::EventPriority>(priority));
24
+ m_state->updateState([mutation](const AbiStateData &oldData) {
25
+ return std::make_shared<AbiStateData const>(mutation(oldData.userdata));
26
+ });
69
27
  }
70
28
 
71
29
  } // namespace Microsoft::ReactNative
@@ -23,13 +23,7 @@ struct AbiComponentState : winrt::implements<AbiComponentState, winrt::Microsoft
23
23
 
24
24
  winrt::Windows::Foundation::IInspectable Data() noexcept;
25
25
  void UpdateState(const winrt::Windows::Foundation::IInspectable &data) noexcept;
26
- void UpdateStateWithPriority(
27
- const winrt::Windows::Foundation::IInspectable &data,
28
- winrt::Microsoft::ReactNative::EventPriority priority) noexcept;
29
26
  void UpdateStateWithMutation(const winrt::Microsoft::ReactNative::StateUpdateMutation &mutation) noexcept;
30
- void UpdateStateWithMutationAndPriority(
31
- const winrt::Microsoft::ReactNative::StateUpdateMutation &mutation,
32
- winrt::Microsoft::ReactNative::EventPriority priority) noexcept;
33
27
 
34
28
  private:
35
29
  std::shared_ptr<facebook::react::ConcreteState<AbiStateData> const> m_state;
@@ -602,8 +602,6 @@ void SetBorderLayerPropertiesCommon(
602
602
  facebook::react::BorderStyle borderStyle) {
603
603
  layer.Offset({anchorOffset.x, anchorOffset.y, 0}, {anchorPoint.x, anchorPoint.y, 0});
604
604
  layer.RelativeSizeWithOffset(size, relativeSizeAdjustment);
605
- layer.as<::Microsoft::ReactNative::Composition::Experimental::IVisualInterop>()->SetClippingPath(nullptr);
606
-
607
605
  if ((textureRect.right - textureRect.left) <= 0 || (textureRect.bottom - textureRect.top) <= 0)
608
606
  return;
609
607
 
@@ -705,8 +703,7 @@ void SetBorderLayerProperties(
705
703
  // if (VisualVersion::IsUseWinCompClippingRegionEnabled())
706
704
  {
707
705
  layer.Offset({anchorOffset.x, anchorOffset.y, 0}, {anchorPoint.x, anchorPoint.y, 0});
708
- layer.RelativeSizeWithOffset(
709
- {textureRect.right - textureRect.left, textureRect.bottom - textureRect.top}, {0.0f, 0.0f});
706
+ layer.Size({textureRect.right - textureRect.left, textureRect.bottom - textureRect.top});
710
707
 
711
708
  layer.Brush(theme->Brush(*borderColor));
712
709
 
@@ -34,7 +34,8 @@ ImageComponentView::WindowsImageResponseObserver::WindowsImageResponseObserver(I
34
34
  m_image.copy_from(&image);
35
35
  }
36
36
 
37
- void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float progress) const {
37
+ void ImageComponentView::WindowsImageResponseObserver::didReceiveProgress(float progress, int64_t loaded, int64_t total)
38
+ const {
38
39
  // TODO progress?
39
40
  }
40
41
 
@@ -45,8 +46,9 @@ void ImageComponentView::WindowsImageResponseObserver::didReceiveImage(
45
46
  [imageResponseImage, image = m_image]() { image->didReceiveImage(imageResponseImage); });
46
47
  }
47
48
 
48
- void ImageComponentView::WindowsImageResponseObserver::didReceiveFailure() const {
49
- m_image->didReceiveFailureFromObserver();
49
+ void ImageComponentView::WindowsImageResponseObserver::didReceiveFailure(
50
+ facebook::react::ImageLoadError const &error) const {
51
+ m_image->didReceiveFailureFromObserver(error);
50
52
  }
51
53
 
52
54
  facebook::react::SharedViewProps ImageComponentView::defaultProps() noexcept {
@@ -92,7 +94,7 @@ void ImageComponentView::didReceiveImage(const std::shared_ptr<ImageResponseImag
92
94
 
93
95
  auto imageEventEmitter = std::static_pointer_cast<facebook::react::ImageEventEmitter const>(m_eventEmitter);
94
96
  if (imageEventEmitter) {
95
- imageEventEmitter->onLoad();
97
+ imageEventEmitter->onLoad(m_state->getData().getImageSource());
96
98
  imageEventEmitter->onLoadEnd();
97
99
  }
98
100
 
@@ -107,10 +109,12 @@ void ImageComponentView::didReceiveImage(const std::shared_ptr<ImageResponseImag
107
109
  ensureDrawingSurface();
108
110
  }
109
111
 
110
- void ImageComponentView::didReceiveFailureFromObserver() noexcept {
112
+ void ImageComponentView::didReceiveFailureFromObserver(const facebook::react::ImageLoadError &error) noexcept {
111
113
  auto imageEventEmitter = std::static_pointer_cast<facebook::react::ImageEventEmitter const>(m_eventEmitter);
112
114
  if (imageEventEmitter) {
113
- imageEventEmitter->onError();
115
+ std::shared_ptr<facebook::react::ImageErrorInfo> errorInfo =
116
+ std::static_pointer_cast<facebook::react::ImageErrorInfo>(error.getError());
117
+ imageEventEmitter->onError(*errorInfo);
114
118
  imageEventEmitter->onLoadEnd();
115
119
  }
116
120
  }
@@ -70,9 +70,9 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
70
70
  struct WindowsImageResponseObserver : facebook::react::ImageResponseObserver {
71
71
  public:
72
72
  WindowsImageResponseObserver(ImageComponentView &image);
73
- void didReceiveProgress(float progress) const override;
74
- void didReceiveImage(facebook::react::ImageResponse const &imageResponse) const override;
75
- void didReceiveFailure() const override;
73
+ void didReceiveProgress(float progress, int64_t loaded, int64_t total) const override;
74
+ void didReceiveImage(const facebook::react::ImageResponse &imageResponse) const override;
75
+ void didReceiveFailure(const facebook::react::ImageLoadError &error) const override;
76
76
 
77
77
  private:
78
78
  winrt::com_ptr<ImageComponentView> m_image;
@@ -84,7 +84,7 @@ struct ImageComponentView : ImageComponentViewT<ImageComponentView, ViewComponen
84
84
  void ImageLoadStart() noexcept;
85
85
  void ImageLoaded() noexcept;
86
86
  void didReceiveImage(const std::shared_ptr<ImageResponseImage> &wicbmp) noexcept;
87
- void didReceiveFailureFromObserver() noexcept;
87
+ void didReceiveFailureFromObserver(const facebook::react::ImageLoadError &error) noexcept;
88
88
  void setStateAndResubscribeImageResponseObserver(
89
89
  facebook::react::ImageShadowNode::ConcreteState::Shared const &state) noexcept;
90
90
  bool themeEffectsImage() const noexcept;
@@ -83,16 +83,6 @@ void ParagraphComponentView::updateState(
83
83
  m_textLayout = nullptr;
84
84
  }
85
85
 
86
- void ParagraphComponentView::updateLayoutMetrics(
87
- facebook::react::LayoutMetrics const &layoutMetrics,
88
- facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
89
- Super::updateLayoutMetrics(layoutMetrics, oldLayoutMetrics);
90
-
91
- if (layoutMetrics.pointScaleFactor != oldLayoutMetrics.pointScaleFactor) {
92
- m_textLayout = nullptr;
93
- }
94
- }
95
-
96
86
  void ParagraphComponentView::FinalizeUpdates(
97
87
  winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept {
98
88
  ensureVisual();
@@ -34,9 +34,6 @@ struct ParagraphComponentView : ParagraphComponentViewT<ParagraphComponentView,
34
34
  void updateProps(facebook::react::Props::Shared const &props, facebook::react::Props::Shared const &oldProps) noexcept
35
35
  override;
36
36
  void updateEventEmitter(facebook::react::EventEmitter::Shared const &eventEmitter) noexcept override;
37
- void updateLayoutMetrics(
38
- facebook::react::LayoutMetrics const &layoutMetrics,
39
- facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept override;
40
37
  void updateState(facebook::react::State::Shared const &state, facebook::react::State::Shared const &oldState) noexcept
41
38
  override;
42
39
  void FinalizeUpdates(winrt::Microsoft::ReactNative::ComponentViewUpdateMask updateMask) noexcept override;