react-native-windows 0.68.1 → 0.69.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 +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/CreateModules.h +4 -0
- package/Shared/DevSupportManager.cpp +34 -33
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +198 -0
- package/Shared/Modules/HttpModule.h +53 -0
- package/Shared/Modules/WebSocketModule.cpp +5 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/Networking/IHttpResource.h +53 -0
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/Networking/WinRTHttpResource.cpp +347 -0
- package/Shared/Networking/WinRTHttpResource.h +67 -0
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +37 -11
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +126 -5
- package/Shared/Shared.vcxitems.filters +55 -15
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/Utils/WinRTConversions.cpp +22 -0
- package/Shared/Utils/WinRTConversions.h +15 -0
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/IHttpResource.h +0 -34
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -24,6 +24,8 @@ import Platform from '../Utilities/Platform';
|
|
|
24
24
|
import UIManager from '../ReactNative/UIManager';
|
|
25
25
|
import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
|
|
26
26
|
import * as React from 'react';
|
|
27
|
+
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
28
|
+
import {type PointerEvent} from '../Types/CoreEventTypes';
|
|
27
29
|
|
|
28
30
|
export type PressabilityConfig = $ReadOnly<{|
|
|
29
31
|
/**
|
|
@@ -158,6 +160,8 @@ export type EventHandlers = $ReadOnly<{|
|
|
|
158
160
|
onFocus: (event: FocusEvent) => void,
|
|
159
161
|
onMouseEnter?: (event: MouseEvent) => void,
|
|
160
162
|
onMouseLeave?: (event: MouseEvent) => void,
|
|
163
|
+
onPointerEnter2?: (event: PointerEvent) => void,
|
|
164
|
+
onPointerLeave2?: (event: PointerEvent) => void,
|
|
161
165
|
onResponderGrant: (event: PressEvent) => void,
|
|
162
166
|
onResponderMove: (event: PressEvent) => void,
|
|
163
167
|
onResponderRelease: (event: PressEvent) => void,
|
|
@@ -549,58 +553,108 @@ export default class Pressability {
|
|
|
549
553
|
() => this._config;
|
|
550
554
|
}
|
|
551
555
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
556
|
+
if (
|
|
557
|
+
ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
|
|
558
|
+
) {
|
|
559
|
+
const hoverPointerEvents = {
|
|
560
|
+
onPointerEnter2: undefined,
|
|
561
|
+
onPointerLeave2: undefined,
|
|
562
|
+
};
|
|
563
|
+
const {onHoverIn, onHoverOut} = this._config;
|
|
564
|
+
if (onHoverIn != null) {
|
|
565
|
+
hoverPointerEvents.onPointerEnter2 = (event: PointerEvent) => {
|
|
566
|
+
this._isHovered = true;
|
|
567
|
+
this._cancelHoverOutDelayTimeout();
|
|
568
|
+
if (onHoverIn != null) {
|
|
569
|
+
const delayHoverIn = normalizeDelay(this._config.delayHoverIn);
|
|
570
|
+
if (delayHoverIn > 0) {
|
|
571
|
+
event.persist();
|
|
572
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
573
|
+
onHoverIn(convertPointerEventToMouseEvent(event));
|
|
574
|
+
}, delayHoverIn);
|
|
575
|
+
} else {
|
|
576
|
+
onHoverIn(convertPointerEventToMouseEvent(event));
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
if (onHoverOut != null) {
|
|
582
|
+
hoverPointerEvents.onPointerLeave2 = (event: PointerEvent) => {
|
|
583
|
+
if (this._isHovered) {
|
|
584
|
+
this._isHovered = false;
|
|
585
|
+
this._cancelHoverInDelayTimeout();
|
|
586
|
+
if (onHoverOut != null) {
|
|
587
|
+
const delayHoverOut = normalizeDelay(this._config.delayHoverOut);
|
|
588
|
+
if (delayHoverOut > 0) {
|
|
589
|
+
event.persist();
|
|
590
|
+
this._hoverOutDelayTimeout = setTimeout(() => {
|
|
591
|
+
onHoverOut(convertPointerEventToMouseEvent(event));
|
|
592
|
+
}, delayHoverOut);
|
|
593
|
+
} else {
|
|
594
|
+
onHoverOut(convertPointerEventToMouseEvent(event));
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
return {
|
|
601
|
+
...focusEventHandlers,
|
|
602
|
+
...responderEventHandlers,
|
|
603
|
+
...hoverPointerEvents,
|
|
604
|
+
};
|
|
605
|
+
} else {
|
|
606
|
+
const mouseEventHandlers =
|
|
607
|
+
Platform.OS === 'ios' || Platform.OS === 'android'
|
|
608
|
+
? null
|
|
609
|
+
: {
|
|
610
|
+
onMouseEnter: (event: MouseEvent): void => {
|
|
611
|
+
if (isHoverEnabled()) {
|
|
612
|
+
this._isHovered = true;
|
|
613
|
+
this._cancelHoverOutDelayTimeout();
|
|
614
|
+
const {onHoverIn} = this._config;
|
|
615
|
+
if (onHoverIn != null) {
|
|
616
|
+
const delayHoverIn = normalizeDelay(
|
|
617
|
+
this._config.delayHoverIn,
|
|
618
|
+
);
|
|
619
|
+
if (delayHoverIn > 0) {
|
|
620
|
+
event.persist();
|
|
621
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
622
|
+
onHoverIn(event);
|
|
623
|
+
}, delayHoverIn);
|
|
624
|
+
} else {
|
|
568
625
|
onHoverIn(event);
|
|
569
|
-
}
|
|
570
|
-
} else {
|
|
571
|
-
onHoverIn(event);
|
|
626
|
+
}
|
|
572
627
|
}
|
|
573
628
|
}
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
629
|
+
},
|
|
630
|
+
|
|
631
|
+
onMouseLeave: (event: MouseEvent): void => {
|
|
632
|
+
if (this._isHovered) {
|
|
633
|
+
this._isHovered = false;
|
|
634
|
+
this._cancelHoverInDelayTimeout();
|
|
635
|
+
const {onHoverOut} = this._config;
|
|
636
|
+
if (onHoverOut != null) {
|
|
637
|
+
const delayHoverOut = normalizeDelay(
|
|
638
|
+
this._config.delayHoverOut,
|
|
639
|
+
);
|
|
640
|
+
if (delayHoverOut > 0) {
|
|
641
|
+
event.persist();
|
|
642
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
643
|
+
onHoverOut(event);
|
|
644
|
+
}, delayHoverOut);
|
|
645
|
+
} else {
|
|
589
646
|
onHoverOut(event);
|
|
590
|
-
}
|
|
591
|
-
} else {
|
|
592
|
-
onHoverOut(event);
|
|
647
|
+
}
|
|
593
648
|
}
|
|
594
649
|
}
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
};
|
|
650
|
+
},
|
|
651
|
+
};
|
|
652
|
+
return {
|
|
653
|
+
...focusEventHandlers,
|
|
654
|
+
...responderEventHandlers,
|
|
655
|
+
...mouseEventHandlers,
|
|
656
|
+
};
|
|
657
|
+
}
|
|
604
658
|
}
|
|
605
659
|
|
|
606
660
|
/**
|
|
@@ -879,3 +933,18 @@ const getTouchFromPressEvent = (event: PressEvent) => {
|
|
|
879
933
|
}
|
|
880
934
|
return event.nativeEvent;
|
|
881
935
|
};
|
|
936
|
+
|
|
937
|
+
function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
|
|
938
|
+
const {touchHistory: _, ...synthEvent} = input;
|
|
939
|
+
const {clientX, clientY, timestamp} = input.nativeEvent;
|
|
940
|
+
return {
|
|
941
|
+
...synthEvent,
|
|
942
|
+
nativeEvent: {
|
|
943
|
+
clientX,
|
|
944
|
+
clientY,
|
|
945
|
+
pageX: clientX,
|
|
946
|
+
pageY: clientY,
|
|
947
|
+
timestamp,
|
|
948
|
+
},
|
|
949
|
+
};
|
|
950
|
+
}
|
|
@@ -25,6 +25,8 @@ import Platform from '../Utilities/Platform';
|
|
|
25
25
|
import UIManager from '../ReactNative/UIManager';
|
|
26
26
|
import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
|
|
27
27
|
import * as React from 'react';
|
|
28
|
+
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
29
|
+
import {type PointerEvent} from '../Types/CoreEventTypes';
|
|
28
30
|
|
|
29
31
|
export type PressabilityConfig = $ReadOnly<{|
|
|
30
32
|
/**
|
|
@@ -185,6 +187,8 @@ export type EventHandlers = $ReadOnly<{|
|
|
|
185
187
|
onFocus: (event: FocusEvent) => void,
|
|
186
188
|
onMouseEnter?: (event: MouseEvent) => void,
|
|
187
189
|
onMouseLeave?: (event: MouseEvent) => void,
|
|
190
|
+
onPointerEnter2?: (event: PointerEvent) => void,
|
|
191
|
+
onPointerLeave2?: (event: PointerEvent) => void,
|
|
188
192
|
onResponderGrant: (event: PressEvent) => void,
|
|
189
193
|
onResponderMove: (event: PressEvent) => void,
|
|
190
194
|
onResponderRelease: (event: PressEvent) => void,
|
|
@@ -282,20 +286,20 @@ const Transitions = Object.freeze({
|
|
|
282
286
|
},
|
|
283
287
|
});
|
|
284
288
|
|
|
285
|
-
const isActiveSignal =
|
|
289
|
+
const isActiveSignal = signal =>
|
|
286
290
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
287
291
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
288
292
|
|
|
289
|
-
const isActivationSignal =
|
|
293
|
+
const isActivationSignal = signal =>
|
|
290
294
|
signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||
|
|
291
295
|
signal === 'RESPONDER_ACTIVE_PRESS_IN';
|
|
292
296
|
|
|
293
|
-
const isPressInSignal =
|
|
297
|
+
const isPressInSignal = signal =>
|
|
294
298
|
signal === 'RESPONDER_INACTIVE_PRESS_IN' ||
|
|
295
299
|
signal === 'RESPONDER_ACTIVE_PRESS_IN' ||
|
|
296
300
|
signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';
|
|
297
301
|
|
|
298
|
-
const isTerminalSignal =
|
|
302
|
+
const isTerminalSignal = signal =>
|
|
299
303
|
signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';
|
|
300
304
|
|
|
301
305
|
const DEFAULT_LONG_PRESS_DELAY_MS = 500;
|
|
@@ -486,7 +490,6 @@ export default class Pressability {
|
|
|
486
490
|
|
|
487
491
|
onResponderGrant: (event: PressEvent): void => {
|
|
488
492
|
event.persist();
|
|
489
|
-
|
|
490
493
|
this._cancelPressOutDelayTimeout();
|
|
491
494
|
|
|
492
495
|
this._responderID = event.currentTarget;
|
|
@@ -580,65 +583,6 @@ export default class Pressability {
|
|
|
580
583
|
() => this._config;
|
|
581
584
|
}
|
|
582
585
|
|
|
583
|
-
const mouseEventHandlers =
|
|
584
|
-
Platform.OS === 'ios' || Platform.OS === 'android'
|
|
585
|
-
? null
|
|
586
|
-
: {
|
|
587
|
-
onMouseEnter: (event: MouseEvent): void => {
|
|
588
|
-
// [Windows Add attached raw mouse event handler for compat
|
|
589
|
-
if (this._config.onMouseEnter) {
|
|
590
|
-
this._config.onMouseEnter(event);
|
|
591
|
-
}
|
|
592
|
-
// Windows]
|
|
593
|
-
|
|
594
|
-
if (isHoverEnabled()) {
|
|
595
|
-
this._isHovered = true;
|
|
596
|
-
this._cancelHoverOutDelayTimeout();
|
|
597
|
-
const {onHoverIn} = this._config;
|
|
598
|
-
if (onHoverIn != null) {
|
|
599
|
-
const delayHoverIn = normalizeDelay(
|
|
600
|
-
this._config.delayHoverIn,
|
|
601
|
-
);
|
|
602
|
-
if (delayHoverIn > 0) {
|
|
603
|
-
event.persist();
|
|
604
|
-
this._hoverInDelayTimeout = setTimeout(() => {
|
|
605
|
-
onHoverIn(event);
|
|
606
|
-
}, delayHoverIn);
|
|
607
|
-
} else {
|
|
608
|
-
onHoverIn(event);
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
},
|
|
613
|
-
|
|
614
|
-
onMouseLeave: (event: MouseEvent): void => {
|
|
615
|
-
// [Windows Add attached raw mouse event handler for compat
|
|
616
|
-
if (this._config.onMouseLeave) {
|
|
617
|
-
this._config.onMouseLeave(event);
|
|
618
|
-
}
|
|
619
|
-
// Windows]
|
|
620
|
-
|
|
621
|
-
if (this._isHovered) {
|
|
622
|
-
this._isHovered = false;
|
|
623
|
-
this._cancelHoverInDelayTimeout();
|
|
624
|
-
const {onHoverOut} = this._config;
|
|
625
|
-
if (onHoverOut != null) {
|
|
626
|
-
const delayHoverOut = normalizeDelay(
|
|
627
|
-
this._config.delayHoverOut,
|
|
628
|
-
);
|
|
629
|
-
if (delayHoverOut > 0) {
|
|
630
|
-
event.persist();
|
|
631
|
-
this._hoverInDelayTimeout = setTimeout(() => {
|
|
632
|
-
onHoverOut(event);
|
|
633
|
-
}, delayHoverOut);
|
|
634
|
-
} else {
|
|
635
|
-
onHoverOut(event);
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
},
|
|
640
|
-
};
|
|
641
|
-
|
|
642
586
|
// [Windows
|
|
643
587
|
const keyboardEventHandlers = {
|
|
644
588
|
onKeyUp: (event: KeyEvent): void => {
|
|
@@ -676,12 +620,123 @@ export default class Pressability {
|
|
|
676
620
|
};
|
|
677
621
|
// Windows]
|
|
678
622
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
623
|
+
if (
|
|
624
|
+
ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()
|
|
625
|
+
) {
|
|
626
|
+
const hoverPointerEvents = {
|
|
627
|
+
onPointerEnter2: undefined,
|
|
628
|
+
onPointerLeave2: undefined,
|
|
629
|
+
};
|
|
630
|
+
const {onHoverIn, onHoverOut} = this._config;
|
|
631
|
+
if (onHoverIn != null) {
|
|
632
|
+
hoverPointerEvents.onPointerEnter2 = (event: PointerEvent) => {
|
|
633
|
+
this._isHovered = true;
|
|
634
|
+
this._cancelHoverOutDelayTimeout();
|
|
635
|
+
if (onHoverIn != null) {
|
|
636
|
+
const delayHoverIn = normalizeDelay(this._config.delayHoverIn);
|
|
637
|
+
if (delayHoverIn > 0) {
|
|
638
|
+
event.persist();
|
|
639
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
640
|
+
onHoverIn(convertPointerEventToMouseEvent(event));
|
|
641
|
+
}, delayHoverIn);
|
|
642
|
+
} else {
|
|
643
|
+
onHoverIn(convertPointerEventToMouseEvent(event));
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
if (onHoverOut != null) {
|
|
649
|
+
hoverPointerEvents.onPointerLeave2 = (event: PointerEvent) => {
|
|
650
|
+
if (this._isHovered) {
|
|
651
|
+
this._isHovered = false;
|
|
652
|
+
this._cancelHoverInDelayTimeout();
|
|
653
|
+
if (onHoverOut != null) {
|
|
654
|
+
const delayHoverOut = normalizeDelay(this._config.delayHoverOut);
|
|
655
|
+
if (delayHoverOut > 0) {
|
|
656
|
+
event.persist();
|
|
657
|
+
this._hoverOutDelayTimeout = setTimeout(() => {
|
|
658
|
+
onHoverOut(convertPointerEventToMouseEvent(event));
|
|
659
|
+
}, delayHoverOut);
|
|
660
|
+
} else {
|
|
661
|
+
onHoverOut(convertPointerEventToMouseEvent(event));
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
return {
|
|
668
|
+
...focusEventHandlers,
|
|
669
|
+
...responderEventHandlers,
|
|
670
|
+
...hoverPointerEvents,
|
|
671
|
+
...keyboardEventHandlers, // [Windows]
|
|
672
|
+
};
|
|
673
|
+
} else {
|
|
674
|
+
const mouseEventHandlers =
|
|
675
|
+
Platform.OS === 'ios' || Platform.OS === 'android'
|
|
676
|
+
? null
|
|
677
|
+
: {
|
|
678
|
+
onMouseEnter: (event: MouseEvent): void => {
|
|
679
|
+
// [Windows Add attached raw mouse event handler for compat
|
|
680
|
+
if (this._config.onMouseEnter) {
|
|
681
|
+
this._config.onMouseEnter(event);
|
|
682
|
+
}
|
|
683
|
+
// Windows]
|
|
684
|
+
|
|
685
|
+
if (isHoverEnabled()) {
|
|
686
|
+
this._isHovered = true;
|
|
687
|
+
this._cancelHoverOutDelayTimeout();
|
|
688
|
+
const {onHoverIn} = this._config;
|
|
689
|
+
if (onHoverIn != null) {
|
|
690
|
+
const delayHoverIn = normalizeDelay(
|
|
691
|
+
this._config.delayHoverIn,
|
|
692
|
+
);
|
|
693
|
+
if (delayHoverIn > 0) {
|
|
694
|
+
event.persist();
|
|
695
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
696
|
+
onHoverIn(event);
|
|
697
|
+
}, delayHoverIn);
|
|
698
|
+
} else {
|
|
699
|
+
onHoverIn(event);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
|
|
705
|
+
onMouseLeave: (event: MouseEvent): void => {
|
|
706
|
+
// [Windows Add attached raw mouse event handler for compat
|
|
707
|
+
if (this._config.onMouseLeave) {
|
|
708
|
+
this._config.onMouseLeave(event);
|
|
709
|
+
}
|
|
710
|
+
// Windows]
|
|
711
|
+
|
|
712
|
+
if (this._isHovered) {
|
|
713
|
+
this._isHovered = false;
|
|
714
|
+
this._cancelHoverInDelayTimeout();
|
|
715
|
+
const {onHoverOut} = this._config;
|
|
716
|
+
if (onHoverOut != null) {
|
|
717
|
+
const delayHoverOut = normalizeDelay(
|
|
718
|
+
this._config.delayHoverOut,
|
|
719
|
+
);
|
|
720
|
+
if (delayHoverOut > 0) {
|
|
721
|
+
event.persist();
|
|
722
|
+
this._hoverInDelayTimeout = setTimeout(() => {
|
|
723
|
+
onHoverOut(event);
|
|
724
|
+
}, delayHoverOut);
|
|
725
|
+
} else {
|
|
726
|
+
onHoverOut(event);
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
return {
|
|
734
|
+
...focusEventHandlers,
|
|
735
|
+
...responderEventHandlers,
|
|
736
|
+
...mouseEventHandlers,
|
|
737
|
+
...keyboardEventHandlers, // [Windows]
|
|
738
|
+
};
|
|
739
|
+
}
|
|
685
740
|
}
|
|
686
741
|
|
|
687
742
|
/**
|
|
@@ -722,6 +777,11 @@ export default class Pressability {
|
|
|
722
777
|
}
|
|
723
778
|
}
|
|
724
779
|
|
|
780
|
+
// [Windows]
|
|
781
|
+
_isDefaultPressButton(button) {
|
|
782
|
+
return !button; // Treat 0 or undefined as default press
|
|
783
|
+
}
|
|
784
|
+
|
|
725
785
|
/**
|
|
726
786
|
* Performs a transition between touchable states and identify any activations
|
|
727
787
|
* or deactivations (and callback invocations).
|
|
@@ -771,7 +831,11 @@ export default class Pressability {
|
|
|
771
831
|
this._deactivate(event);
|
|
772
832
|
}
|
|
773
833
|
const {onLongPress, onPress, android_disableSound} = this._config;
|
|
774
|
-
|
|
834
|
+
|
|
835
|
+
if (
|
|
836
|
+
onPress != null &&
|
|
837
|
+
this._isDefaultPressButton(getTouchFromPressEvent(event).button)
|
|
838
|
+
) {
|
|
775
839
|
const isPressCanceledByLongPress =
|
|
776
840
|
onLongPress != null &&
|
|
777
841
|
prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&
|
|
@@ -790,17 +854,20 @@ export default class Pressability {
|
|
|
790
854
|
|
|
791
855
|
_activate(event: PressEvent): void {
|
|
792
856
|
const {onPressIn} = this._config;
|
|
793
|
-
const {pageX, pageY} = getTouchFromPressEvent(event);
|
|
857
|
+
const {pageX, pageY, button} = getTouchFromPressEvent(event);
|
|
794
858
|
this._touchActivatePosition = {pageX, pageY};
|
|
795
859
|
this._touchActivateTime = Date.now();
|
|
796
|
-
if (onPressIn != null) {
|
|
860
|
+
if (onPressIn != null && button === 0) {
|
|
797
861
|
onPressIn(event);
|
|
798
862
|
}
|
|
799
863
|
}
|
|
800
864
|
|
|
801
865
|
_deactivate(event: PressEvent): void {
|
|
802
866
|
const {onPressOut} = this._config;
|
|
803
|
-
if (
|
|
867
|
+
if (
|
|
868
|
+
onPressOut != null &&
|
|
869
|
+
this._isDefaultPressButton(getTouchFromPressEvent(event).button)
|
|
870
|
+
) {
|
|
804
871
|
const minPressDuration = normalizeDelay(
|
|
805
872
|
this._config.minPressDuration,
|
|
806
873
|
0,
|
|
@@ -960,3 +1027,52 @@ const getTouchFromPressEvent = (event: PressEvent) => {
|
|
|
960
1027
|
}
|
|
961
1028
|
return event.nativeEvent;
|
|
962
1029
|
};
|
|
1030
|
+
|
|
1031
|
+
function convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {
|
|
1032
|
+
const {touchHistory: _, ...synthEvent} = input;
|
|
1033
|
+
const {clientX, clientY, timestamp} = input.nativeEvent;
|
|
1034
|
+
// [Windows
|
|
1035
|
+
const {
|
|
1036
|
+
pointerType,
|
|
1037
|
+
pressure,
|
|
1038
|
+
isLeftButton,
|
|
1039
|
+
isRightButton,
|
|
1040
|
+
isMiddleButton,
|
|
1041
|
+
isBarrelButtonPressed,
|
|
1042
|
+
isHorizontalScrollWheel,
|
|
1043
|
+
isEraser,
|
|
1044
|
+
shiftKey,
|
|
1045
|
+
ctrlKey,
|
|
1046
|
+
altKey,
|
|
1047
|
+
} = input.nativeEvent;
|
|
1048
|
+
// Windows]
|
|
1049
|
+
return {
|
|
1050
|
+
...synthEvent,
|
|
1051
|
+
nativeEvent: {
|
|
1052
|
+
clientX,
|
|
1053
|
+
clientY,
|
|
1054
|
+
pageX: clientX,
|
|
1055
|
+
pageY: clientY,
|
|
1056
|
+
timestamp,
|
|
1057
|
+
// [Windows
|
|
1058
|
+
target:
|
|
1059
|
+
input.nativeEvent.target ??
|
|
1060
|
+
(typeof input.target === 'number' ? input.target : -1),
|
|
1061
|
+
identifier: input.nativeEvent.pointerId,
|
|
1062
|
+
locationX: clientX,
|
|
1063
|
+
locationY: clientY,
|
|
1064
|
+
pointerType,
|
|
1065
|
+
force: pressure,
|
|
1066
|
+
isLeftButton,
|
|
1067
|
+
isRightButton,
|
|
1068
|
+
isMiddleButton,
|
|
1069
|
+
isBarrelButtonPressed,
|
|
1070
|
+
isHorizontalScrollWheel,
|
|
1071
|
+
isEraser,
|
|
1072
|
+
shiftKey,
|
|
1073
|
+
ctrlKey,
|
|
1074
|
+
altKey,
|
|
1075
|
+
// Windows]
|
|
1076
|
+
},
|
|
1077
|
+
};
|
|
1078
|
+
}
|
|
@@ -10,18 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
import normalizeColor from '../StyleSheet/normalizeColor';
|
|
12
12
|
import type {ColorValue} from '../StyleSheet/StyleSheet';
|
|
13
|
+
import {normalizeRect, type RectOrSize} from '../StyleSheet/Rect';
|
|
13
14
|
|
|
14
15
|
import View from '../Components/View/View';
|
|
15
16
|
import * as React from 'react';
|
|
16
17
|
|
|
17
18
|
type Props = $ReadOnly<{|
|
|
18
19
|
color: ColorValue,
|
|
19
|
-
hitSlop:
|
|
20
|
-
bottom?: ?number,
|
|
21
|
-
left?: ?number,
|
|
22
|
-
right?: ?number,
|
|
23
|
-
top?: ?number,
|
|
24
|
-
|}>,
|
|
20
|
+
hitSlop: ?RectOrSize,
|
|
25
21
|
|}>;
|
|
26
22
|
|
|
27
23
|
/**
|
|
@@ -39,16 +35,16 @@ type Props = $ReadOnly<{|
|
|
|
39
35
|
* );
|
|
40
36
|
*
|
|
41
37
|
*/
|
|
42
|
-
export function PressabilityDebugView(
|
|
38
|
+
export function PressabilityDebugView(props: Props): React.Node {
|
|
43
39
|
if (__DEV__) {
|
|
44
40
|
if (isEnabled()) {
|
|
45
|
-
const normalizedColor = normalizeColor(color);
|
|
41
|
+
const normalizedColor = normalizeColor(props.color);
|
|
46
42
|
if (typeof normalizedColor !== 'number') {
|
|
47
43
|
return null;
|
|
48
44
|
}
|
|
49
45
|
const baseColor =
|
|
50
46
|
'#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');
|
|
51
|
-
|
|
47
|
+
const hitSlop = normalizeRect(props.hitSlop);
|
|
52
48
|
return (
|
|
53
49
|
<View
|
|
54
50
|
pointerEvents="none"
|