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.
- package/.flowconfig +8 -2
- package/Common/Common.vcxproj +8 -0
- package/Common/Utilities.cpp +2 -2
- package/Directory.Build.targets +5 -0
- package/Folly/Folly.vcxproj +10 -2
- package/Folly/Folly.vcxproj.filters +0 -7
- package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
- package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
- package/Libraries/Animated/AnimatedImplementation.js +2 -0
- package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
- package/Libraries/Animated/createAnimatedComponent.js +10 -4
- package/Libraries/Animated/useAnimatedProps.js +56 -28
- package/Libraries/BatchedBridge/MessageQueue.js +1 -0
- package/Libraries/Components/Button.js +10 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
- package/Libraries/Components/Flyout/Flyout.js +10 -10
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
- package/Libraries/Components/Pressable/Pressable.js +13 -6
- package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
- package/Libraries/Components/ScrollView/ScrollView.js +109 -29
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
- package/Libraries/Components/StatusBar/StatusBar.js +1 -21
- package/Libraries/Components/Switch/Switch.windows.js +2 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
- package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
- package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
- package/Libraries/Components/TextInput/TextInput.js +20 -73
- package/Libraries/Components/TextInput/TextInput.windows.js +21 -75
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
- package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.windows.js +0 -11
- package/Libraries/Components/View/ViewAccessibility.js +4 -4
- package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
- package/Libraries/Components/View/ViewPropTypes.js +7 -0
- package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
- package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
- package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
- package/Libraries/Core/ErrorHandlers.js +116 -0
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +3 -1
- package/Libraries/Core/setUpPerformance.js +6 -4
- package/Libraries/Core/setUpReactDevTools.js +70 -10
- package/Libraries/Core/setUpTimers.js +50 -31
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/Image/Image.android.js +23 -13
- package/Libraries/Image/Image.d.ts +14 -15
- package/Libraries/Image/Image.ios.js +21 -11
- package/Libraries/Image/Image.windows.js +21 -11
- package/Libraries/Image/ImageProps.js +16 -5
- package/Libraries/Image/ImageTypes.flow.js +7 -2
- package/Libraries/Image/ImageUtils.js +1 -0
- package/Libraries/Image/ImageViewNativeComponent.js +2 -1
- package/Libraries/Inspector/ElementBox.js +6 -3
- package/Libraries/Inspector/ElementProperties.js +1 -1
- package/Libraries/Interaction/TouchHistoryMath.js +4 -4
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +39 -29
- package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
- package/Libraries/LogBox/LogBox.js +29 -12
- package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
- package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
- package/Libraries/Network/XMLHttpRequest.js +5 -1
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
- package/Libraries/Pressability/Pressability.js +3 -51
- package/Libraries/Pressability/Pressability.windows.js +3 -51
- package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -4
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
- package/Libraries/ReactNative/FabricUIManager.js +0 -51
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
- package/Libraries/ReactNative/RendererImplementation.js +20 -2
- package/Libraries/ReactNative/UIManager.d.ts +0 -21
- package/Libraries/ReactNative/UIManagerProperties.js +0 -3
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
- package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.d.ts +16 -10
- package/Libraries/Share/Share.js +14 -15
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -10
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
- package/Libraries/StyleSheet/flattenStyle.js +1 -0
- package/Libraries/StyleSheet/processFilter.js +132 -0
- package/Libraries/StyleSheet/processTransform.js +18 -3
- package/Libraries/Text/Text.js +151 -128
- package/Libraries/Text/Text.windows.js +144 -127
- package/Libraries/Text/TextNativeComponent.js +5 -4
- package/Libraries/Text/TextProps.js +6 -6
- package/Libraries/Text/TextProps.windows.js +6 -6
- package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
- package/Libraries/Types/CodegenTypes.js +3 -0
- package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
- package/Libraries/Utilities/Dimensions.js +1 -0
- package/Libraries/Utilities/HMRClient.js +36 -8
- package/Libraries/Utilities/HMRClientProdShim.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
- package/Libraries/Utilities/Platform.android.js +4 -4
- package/Libraries/Utilities/RCTLog.js +1 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
- package/Libraries/__tests__/ViewWindows-test.js +6 -6
- package/Libraries/promiseRejectionTrackingOptions.js +1 -0
- package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
- package/Microsoft.ReactNative/ComponentView.idl +0 -17
- package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
- package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +12 -3
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -11
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
- package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/Timer.idl +1 -3
- package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/packages.lock.json +45 -72
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
- package/PropertySheets/ARM64EC.props +13 -0
- package/PropertySheets/Application/ARM64EC.props +13 -0
- package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +2 -0
- package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
- package/README.md +21 -21
- package/ReactCommon/ReactCommon.vcxproj +11 -1
- package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
- package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +10 -6
- package/Scripts/rnw-dependencies.ps1 +36 -23
- package/Shared/HermesRuntimeHolder.cpp +19 -1
- package/Shared/HermesRuntimeHolder.h +8 -1
- package/Shared/HermesSamplingProfiler.cpp +1 -2
- package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
- package/Shared/OInstance.cpp +1 -2
- package/Shared/Shared.vcxitems +21 -15
- package/Shared/Shared.vcxitems.filters +8 -3
- package/Shared/Threading/BatchingQueueThread.cpp +6 -2
- package/Shared/Threading/BatchingQueueThread.h +2 -2
- package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
- package/codegen/NativeAppStateSpec.g.h +8 -8
- package/codegen/NativeBlobModuleSpec.g.h +0 -10
- package/codegen/NativeDOMSpec.g.h +136 -0
- package/codegen/NativeDevSettingsSpec.g.h +11 -5
- package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
- package/codegen/NativeMicrotasksSpec.g.h +34 -0
- package/codegen/NativePerformanceSpec.g.h +35 -7
- package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
- package/codegen/NativeUIManagerSpec.g.h +5 -17
- package/codegen/react/components/rnwcore/Props.cpp +1 -1
- package/codegen/react/components/rnwcore/Props.h +16 -12
- package/codegen/react/components/rnwcore/States.h +0 -26
- package/codegen/rnwcoreJSI-generated.cpp +688 -463
- package/codegen/rnwcoreJSI.h +1374 -2867
- package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
- package/fmt/fmt.vcxproj +10 -2
- package/jest/mockComponent.js +7 -0
- package/jest/renderer.js +25 -14
- package/jest/setup.js +19 -13
- package/package.json +29 -27
- package/rn-get-polyfills.js +1 -0
- package/src/private/core/composeStyles.js +27 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
- package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
- package/src/private/specs/modules/NativeBlobModule.js +4 -2
- package/src/private/specs/modules/NativeDevSettings.js +1 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
- package/src/private/specs/modules/NativeUIManager.js +0 -7
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
- package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
- package/src/private/webapis/performance/EventCounts.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +9 -9
- package/src/private/webapis/performance/Performance.js +10 -56
- package/src/private/webapis/performance/PerformanceObserver.js +30 -22
- package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
- package/src/private/webapis/performance/UserTiming.js +63 -0
- package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
- package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
- package/stubs/glog/logging.h +1 -0
- package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
- package/template/cs-lib/proj/MyLib.csproj +1 -1
- package/template/metro.config.js +13 -2
- package/templates/cpp-app/template.config.js +1 -1
- package/templates/cpp-lib/example/metro.config.js +2 -2
- package/templates/cpp-lib/template.config.js +1 -1
- package/templates/old/generateWrapper.js +4 -1
- package/types/modules/globals.d.ts +4 -0
- package/Libraries/Lists/FlatList.windows.js +0 -717
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
- package/Libraries/Utilities/LoadingView.ios.js +0 -50
- package/Libraries/Utilities/LoadingView.js +0 -16
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2375
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
- package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
- package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
- package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
- package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
- package/template/metro.devMode.config.js +0 -56
- /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
|
|
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
|
-
|
|
84
|
+
DevLoadingView.showMessage('Refreshing...', 'refresh');
|
|
83
85
|
}
|
|
84
86
|
try {
|
|
85
87
|
hmrClient.enable();
|
|
86
88
|
} finally {
|
|
87
89
|
if (hasUpdates) {
|
|
88
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
245
|
+
DevLoadingView.hide();
|
|
221
246
|
});
|
|
222
247
|
|
|
223
248
|
client.on('error', data => {
|
|
224
|
-
|
|
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
|
-
|
|
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
|
}
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* @flow strict
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
export * from '../../src/private/specs/modules/
|
|
10
|
-
import NativePlatformConstantsWin from '../../src/private/specs/modules/
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
? // $FlowFixMe[incompatible-return]
|
|
82
|
+
spec.native
|
|
83
|
+
: // $FlowFixMe[incompatible-return]
|
|
84
|
+
spec.default,
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
module.exports = Platform;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
112
|
-
.
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
|
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
|
-
|
|
9
|
+
it('renders basic view', async () => {
|
|
10
|
+
expect(
|
|
11
|
+
await renderer.create(
|
|
12
12
|
<View/>
|
|
13
|
-
)
|
|
14
|
-
|
|
13
|
+
),
|
|
14
|
+
).toMatchSnapshot();
|
|
15
15
|
});
|
|
16
16
|
});
|
|
@@ -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
|
-
|
|
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;
|
|
@@ -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
|
|
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(
|
|
49
|
-
|
|
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
|
-
|
|
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
|
|
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;
|
|
@@ -415,6 +415,13 @@ void ReactNativeIsland::UpdateRootViewInternal() noexcept {
|
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
+
struct AutoMRE {
|
|
419
|
+
~AutoMRE() {
|
|
420
|
+
mre.Set();
|
|
421
|
+
}
|
|
422
|
+
Mso::ManualResetEvent mre;
|
|
423
|
+
};
|
|
424
|
+
|
|
418
425
|
void ReactNativeIsland::UninitRootView() noexcept {
|
|
419
426
|
if (!m_isInitialized) {
|
|
420
427
|
return;
|
|
@@ -431,8 +438,10 @@ void ReactNativeIsland::UninitRootView() noexcept {
|
|
|
431
438
|
// This is needed to ensure that the unmount JS logic is completed before the the instance is shutdown during
|
|
432
439
|
// instance destruction. Aligns with similar code in ReactInstanceWin::DetachRootView for paper Future: Instead this
|
|
433
440
|
// method should return a Promise, which should be resolved when the JS logic is complete.
|
|
441
|
+
// The task will auto set the event on destruction to ensure that the event is set if the JS Queue has already been
|
|
442
|
+
// shutdown
|
|
434
443
|
Mso::ManualResetEvent mre;
|
|
435
|
-
m_context.JSDispatcher().Post([
|
|
444
|
+
m_context.JSDispatcher().Post([autoMRE = std::make_unique<AutoMRE>(AutoMRE{mre})]() {});
|
|
436
445
|
mre.Wait();
|
|
437
446
|
|
|
438
447
|
// Paper version gives the JS thread time to finish executing - Is this needed?
|
|
@@ -498,7 +507,7 @@ facebook::react::Size MeasureLoading(const facebook::react::LayoutConstraints &l
|
|
|
498
507
|
attributedStringBox, {} /*paragraphAttributes*/, layoutConstraints, textLayout);
|
|
499
508
|
|
|
500
509
|
DWRITE_TEXT_METRICS tm;
|
|
501
|
-
textLayout->GetMetrics(&tm);
|
|
510
|
+
winrt::check_hresult(textLayout->GetMetrics(&tm));
|
|
502
511
|
|
|
503
512
|
return layoutConstraints.clamp(
|
|
504
513
|
{loadingActivityHorizontalOffset * scaleFactor + tm.width, loadingBarHeight * scaleFactor});
|
|
@@ -515,7 +524,7 @@ void ReactNativeIsland::SizeChanged(winrt::event_token const &token) noexcept {
|
|
|
515
524
|
}
|
|
516
525
|
|
|
517
526
|
struct RootViewSizeChangedEventArgs : RootViewSizeChangedEventArgsT<RootViewSizeChangedEventArgs> {
|
|
518
|
-
RootViewSizeChangedEventArgs(winrt::Windows::Foundation::Size size) : m_size(size) {}
|
|
527
|
+
RootViewSizeChangedEventArgs(const winrt::Windows::Foundation::Size &size) : m_size(size) {}
|
|
519
528
|
winrt::Windows::Foundation::Size Size() const noexcept {
|
|
520
529
|
return m_size;
|
|
521
530
|
}
|
|
@@ -1138,7 +1138,7 @@ winrt::Microsoft::ReactNative::Composition::Experimental::IVisual ScrollViewComp
|
|
|
1138
1138
|
updateStateWithContentOffset();
|
|
1139
1139
|
auto eventEmitter = GetEventEmitter();
|
|
1140
1140
|
if (eventEmitter) {
|
|
1141
|
-
facebook::react::
|
|
1141
|
+
facebook::react::ScrollViewEventEmitter::Metrics scrollMetrics;
|
|
1142
1142
|
scrollMetrics.containerSize.height = m_layoutMetrics.frame.size.height;
|
|
1143
1143
|
scrollMetrics.containerSize.width = m_layoutMetrics.frame.size.width;
|
|
1144
1144
|
scrollMetrics.contentOffset.x = args.Position().x / m_layoutMetrics.pointScaleFactor;
|
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -947,6 +947,10 @@ void WindowsTextInputComponentView::onGotFocus(
|
|
|
947
947
|
LRESULT lresult;
|
|
948
948
|
DrawBlock db(*this);
|
|
949
949
|
m_textServices->TxSendMessage(WM_SETFOCUS, 0, 0, &lresult);
|
|
950
|
+
|
|
951
|
+
if (windowsTextInputProps().clearTextOnFocus) {
|
|
952
|
+
m_textServices->TxSetText(L"");
|
|
953
|
+
}
|
|
950
954
|
}
|
|
951
955
|
}
|
|
952
956
|
|
|
@@ -1112,8 +1116,6 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1112
1116
|
return;
|
|
1113
1117
|
}
|
|
1114
1118
|
|
|
1115
|
-
auto data = m_state->getData();
|
|
1116
|
-
|
|
1117
1119
|
if (!oldState) {
|
|
1118
1120
|
m_mostRecentEventCount = m_state->getData().mostRecentEventCount;
|
|
1119
1121
|
}
|
|
@@ -1122,19 +1124,11 @@ void WindowsTextInputComponentView::updateState(
|
|
|
1122
1124
|
m_comingFromState = true;
|
|
1123
1125
|
// Only handle single/empty fragments right now -- ignore the other fragments
|
|
1124
1126
|
|
|
1125
|
-
LRESULT res;
|
|
1126
|
-
CHARRANGE cr;
|
|
1127
|
-
cr.cpMin = cr.cpMax = 0;
|
|
1128
|
-
winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
|
|
1129
|
-
|
|
1130
1127
|
UpdateText(
|
|
1131
1128
|
m_state->getData().attributedString.getFragments().size()
|
|
1132
1129
|
? m_state->getData().attributedString.getFragments()[0].string
|
|
1133
1130
|
: "");
|
|
1134
1131
|
|
|
1135
|
-
winrt::check_hresult(
|
|
1136
|
-
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1137
|
-
|
|
1138
1132
|
m_comingFromState = false;
|
|
1139
1133
|
}
|
|
1140
1134
|
}
|
|
@@ -1153,7 +1147,8 @@ void WindowsTextInputComponentView::UpdateText(const std::string &str) noexcept
|
|
|
1153
1147
|
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1154
1148
|
EM_SETTEXTEX, reinterpret_cast<WPARAM>(&stt), reinterpret_cast<LPARAM>(str.c_str()), &res));
|
|
1155
1149
|
|
|
1156
|
-
winrt::check_hresult(
|
|
1150
|
+
winrt::check_hresult(
|
|
1151
|
+
m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
|
|
1157
1152
|
|
|
1158
1153
|
// enable colored emojis
|
|
1159
1154
|
winrt::check_hresult(
|
|
@@ -1216,7 +1211,7 @@ void WindowsTextInputComponentView::OnTextUpdated() noexcept {
|
|
|
1216
1211
|
}
|
|
1217
1212
|
|
|
1218
1213
|
void WindowsTextInputComponentView::OnSelectionChanged(LONG start, LONG end) noexcept {
|
|
1219
|
-
if (m_eventEmitter /* && !m_comingFromJS ?? */) {
|
|
1214
|
+
if (m_eventEmitter && !m_comingFromState /* && !m_comingFromJS ?? */) {
|
|
1220
1215
|
auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
|
|
1221
1216
|
facebook::react::WindowsTextInputEventEmitter::OnSelectionChange onSelectionChangeArgs;
|
|
1222
1217
|
onSelectionChangeArgs.selection.start = start;
|
|
@@ -185,8 +185,7 @@ Size WindowsTextInputShadowNode::measureContent(
|
|
|
185
185
|
AttributedStringBox{attributedString},
|
|
186
186
|
{}, // TODO getConcreteProps().paragraphAttributes,
|
|
187
187
|
textLayoutContext,
|
|
188
|
-
layoutConstraints
|
|
189
|
-
nullptr)
|
|
188
|
+
layoutConstraints)
|
|
190
189
|
.size;
|
|
191
190
|
}
|
|
192
191
|
|
|
@@ -285,9 +285,15 @@ ImageResponseOrImageErrorInfo ImageResponse::ResolveImage() {
|
|
|
285
285
|
|
|
286
286
|
ImageResponseOrImageErrorInfo ImageFailedResponse::ResolveImage() {
|
|
287
287
|
ImageResponseOrImageErrorInfo imageOrError;
|
|
288
|
-
imageOrError.errorInfo =
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
imageOrError.errorInfo = std::make_shared<facebook::react::ImageErrorInfo>();
|
|
289
|
+
imageOrError.errorInfo->responseCode = static_cast<int>(m_statusCode);
|
|
290
|
+
imageOrError.errorInfo->error = winrt::to_string(m_errorMessage);
|
|
291
|
+
if (imageOrError.errorInfo->error.empty()) {
|
|
292
|
+
imageOrError.errorInfo->error = "Failed to load image.";
|
|
293
|
+
}
|
|
294
|
+
for (auto &&[header, value] : m_responseHeaders) {
|
|
295
|
+
imageOrError.errorInfo->httpResponseHeaders.push_back(
|
|
296
|
+
std::make_pair<std::string, std::string>(winrt::to_string(header), winrt::to_string(value)));
|
|
291
297
|
}
|
|
292
298
|
return imageOrError;
|
|
293
299
|
}
|
|
@@ -41,7 +41,7 @@ winrt::Microsoft::ReactNative::Composition::ImageSource MakeImageSource(
|
|
|
41
41
|
|
|
42
42
|
struct ImageResponseOrImageErrorInfo {
|
|
43
43
|
std::shared_ptr<winrt::Microsoft::ReactNative::Composition::implementation::ImageResponseImage> image;
|
|
44
|
-
std::
|
|
44
|
+
std::shared_ptr<facebook::react::ImageErrorInfo> errorInfo;
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
struct ImageResponse : ImageResponseT<ImageResponse /*, IResolveImage*/> {
|