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
|
@@ -818,33 +818,12 @@ export type Props = $ReadOnly<{|
|
|
|
818
818
|
*/
|
|
819
819
|
onChange?: ?(e: ChangeEvent) => mixed,
|
|
820
820
|
|
|
821
|
-
/**
|
|
822
|
-
* DANGER: this API is not stable and will change in the future.
|
|
823
|
-
*
|
|
824
|
-
* Callback will be called on the main thread and may result in dropped frames.
|
|
825
|
-
* Callback that is called when the text input's text changes.
|
|
826
|
-
*
|
|
827
|
-
* @platform ios
|
|
828
|
-
*/
|
|
829
|
-
unstable_onChangeSync?: ?(e: ChangeEvent) => mixed,
|
|
830
|
-
|
|
831
821
|
/**
|
|
832
822
|
* Callback that is called when the text input's text changes.
|
|
833
823
|
* Changed text is passed as an argument to the callback handler.
|
|
834
824
|
*/
|
|
835
825
|
onChangeText?: ?(text: string) => mixed,
|
|
836
826
|
|
|
837
|
-
/**
|
|
838
|
-
* DANGER: this API is not stable and will change in the future.
|
|
839
|
-
*
|
|
840
|
-
* Callback will be called on the main thread and may result in dropped frames.
|
|
841
|
-
* Callback that is called when the text input's text changes.
|
|
842
|
-
* Changed text is passed as an argument to the callback handler.
|
|
843
|
-
*
|
|
844
|
-
* @platform ios
|
|
845
|
-
*/
|
|
846
|
-
unstable_onChangeTextSync?: ?(text: string) => mixed,
|
|
847
|
-
|
|
848
827
|
/**
|
|
849
828
|
* Callback that is called when the text input's content size changes.
|
|
850
829
|
* This will be called with
|
|
@@ -873,21 +852,6 @@ export type Props = $ReadOnly<{|
|
|
|
873
852
|
*/
|
|
874
853
|
onKeyPress?: ?(e: KeyPressEvent) => mixed,
|
|
875
854
|
|
|
876
|
-
/**
|
|
877
|
-
* DANGER: this API is not stable and will change in the future.
|
|
878
|
-
*
|
|
879
|
-
* Callback will be called on the main thread and may result in dropped frames.
|
|
880
|
-
*
|
|
881
|
-
* Callback that is called when a key is pressed.
|
|
882
|
-
* This will be called with `{ nativeEvent: { key: keyValue } }`
|
|
883
|
-
* where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
|
|
884
|
-
* the typed-in character otherwise including `' '` for space.
|
|
885
|
-
* Fires before `onChange` callbacks.
|
|
886
|
-
*
|
|
887
|
-
* @platform ios
|
|
888
|
-
*/
|
|
889
|
-
unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,
|
|
890
|
-
|
|
891
855
|
/**
|
|
892
856
|
* Called when a single tap gesture is detected.
|
|
893
857
|
*/
|
|
@@ -1212,12 +1176,14 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1212
1176
|
};
|
|
1213
1177
|
|
|
1214
1178
|
const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
|
|
1215
|
-
|
|
1216
1179
|
const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
|
|
1217
1180
|
const [lastNativeSelectionState, setLastNativeSelection] = useState<{|
|
|
1218
|
-
selection:
|
|
1181
|
+
selection: Selection,
|
|
1219
1182
|
mostRecentEventCount: number,
|
|
1220
|
-
|}>({
|
|
1183
|
+
|}>({
|
|
1184
|
+
selection: {start: -1, end: -1},
|
|
1185
|
+
mostRecentEventCount: mostRecentEventCount,
|
|
1186
|
+
});
|
|
1221
1187
|
|
|
1222
1188
|
const lastNativeSelection = lastNativeSelectionState.selection;
|
|
1223
1189
|
|
|
@@ -1347,12 +1313,8 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1347
1313
|
}
|
|
1348
1314
|
},
|
|
1349
1315
|
isFocused(): boolean {
|
|
1350
|
-
const currentlyFocusedInput =
|
|
1351
|
-
|
|
1352
|
-
return (
|
|
1353
|
-
currentlyFocusedInput !== null &&
|
|
1354
|
-
currentlyFocusedInput === inputRef.current
|
|
1355
|
-
);
|
|
1316
|
+
const currentlyFocusedInput = TextInputState.currentlyFocusedInput();
|
|
1317
|
+
return currentlyFocusedInput !== null && currentlyFocusedInput === inputRef.current;
|
|
1356
1318
|
},
|
|
1357
1319
|
getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
|
|
1358
1320
|
return inputRef.current;
|
|
@@ -1395,26 +1357,6 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1395
1357
|
setMostRecentEventCount(event.nativeEvent.eventCount);
|
|
1396
1358
|
};
|
|
1397
1359
|
|
|
1398
|
-
const _onChangeSync = (event: ChangeEvent) => {
|
|
1399
|
-
const currentText = event.nativeEvent.text;
|
|
1400
|
-
props.unstable_onChangeSync && props.unstable_onChangeSync(event);
|
|
1401
|
-
props.unstable_onChangeTextSync &&
|
|
1402
|
-
props.unstable_onChangeTextSync(currentText);
|
|
1403
|
-
|
|
1404
|
-
if (inputRef.current == null) {
|
|
1405
|
-
// calling `props.onChange` or `props.onChangeText`
|
|
1406
|
-
// may clean up the input itself. Exits here.
|
|
1407
|
-
return;
|
|
1408
|
-
}
|
|
1409
|
-
|
|
1410
|
-
setLastNativeText(currentText);
|
|
1411
|
-
// This must happen last, after we call setLastNativeText.
|
|
1412
|
-
// Different ordering can cause bugs when editing AndroidTextInputs
|
|
1413
|
-
// with multiple Fragments.
|
|
1414
|
-
// We must update this so that controlled input updates work.
|
|
1415
|
-
setMostRecentEventCount(event.nativeEvent.eventCount);
|
|
1416
|
-
};
|
|
1417
|
-
|
|
1418
1360
|
const _onSelectionChange = (event: SelectionChangeEvent) => {
|
|
1419
1361
|
props.onSelectionChange && props.onSelectionChange(event);
|
|
1420
1362
|
|
|
@@ -1607,6 +1549,12 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1607
1549
|
|
|
1608
1550
|
const style = flattenStyle<TextStyleProp>(props.style);
|
|
1609
1551
|
|
|
1552
|
+
if (typeof style?.fontWeight === 'number') {
|
|
1553
|
+
// $FlowFixMe[prop-missing]
|
|
1554
|
+
// $FlowFixMe[cannot-write]
|
|
1555
|
+
style.fontWeight = style?.fontWeight.toString();
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1610
1558
|
if (Platform.OS === 'ios') {
|
|
1611
1559
|
const RCTTextInputView =
|
|
1612
1560
|
props.multiline === true
|
|
@@ -1620,10 +1568,6 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1620
1568
|
style.paddingVertical == null &&
|
|
1621
1569
|
style.paddingTop == null));
|
|
1622
1570
|
|
|
1623
|
-
const useOnChangeSync =
|
|
1624
|
-
(props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&
|
|
1625
|
-
!(props.onChange || props.onChangeText);
|
|
1626
|
-
|
|
1627
1571
|
textInput = (
|
|
1628
1572
|
<RCTTextInputView
|
|
1629
1573
|
// $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
|
|
@@ -1640,15 +1584,14 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1640
1584
|
mostRecentEventCount={mostRecentEventCount}
|
|
1641
1585
|
nativeID={id ?? props.nativeID}
|
|
1642
1586
|
onBlur={_onBlur}
|
|
1643
|
-
onKeyPressSync={props.unstable_onKeyPressSync}
|
|
1644
1587
|
onChange={_onChange}
|
|
1645
|
-
onChangeSync={useOnChangeSync === true ? _onChangeSync : null}
|
|
1646
1588
|
onContentSizeChange={props.onContentSizeChange}
|
|
1647
1589
|
onFocus={_onFocus}
|
|
1648
1590
|
onScroll={_onScroll}
|
|
1649
1591
|
onSelectionChange={_onSelectionChange}
|
|
1650
1592
|
onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
|
|
1651
1593
|
selection={selection}
|
|
1594
|
+
selectionColor={selectionColor}
|
|
1652
1595
|
style={StyleSheet.compose(
|
|
1653
1596
|
useMultilineDefaultStyle ? styles.multilineDefault : null,
|
|
1654
1597
|
style,
|
|
@@ -1926,10 +1869,13 @@ const ExportedForwardRef: React.AbstractComponent<
|
|
|
1926
1869
|
: undefined
|
|
1927
1870
|
}
|
|
1928
1871
|
textContentType={
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1872
|
+
textContentType != null
|
|
1873
|
+
? textContentType
|
|
1874
|
+
: Platform.OS === 'ios' &&
|
|
1875
|
+
autoComplete &&
|
|
1876
|
+
autoComplete in autoCompleteWebToTextContentTypeMap
|
|
1877
|
+
? // $FlowFixMe[invalid-computed-prop]
|
|
1878
|
+
// $FlowFixMe[prop-missing]
|
|
1933
1879
|
autoCompleteWebToTextContentTypeMap[autoComplete]
|
|
1934
1880
|
: textContentType
|
|
1935
1881
|
}
|
|
@@ -385,15 +385,6 @@ export type NativeProps = $ReadOnly<{|
|
|
|
385
385
|
|}>,
|
|
386
386
|
>,
|
|
387
387
|
|
|
388
|
-
onTextInput?: ?BubblingEventHandler<
|
|
389
|
-
$ReadOnly<{|
|
|
390
|
-
target: Int32,
|
|
391
|
-
text: string,
|
|
392
|
-
previousText: string,
|
|
393
|
-
range: $ReadOnly<{|start: Double, end: Double|}>,
|
|
394
|
-
|}>,
|
|
395
|
-
>,
|
|
396
|
-
|
|
397
388
|
/**
|
|
398
389
|
* Callback that is called when text input ends.
|
|
399
390
|
*/
|
|
@@ -647,10 +638,34 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
|
647
638
|
export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
648
639
|
uiViewClassName: 'WindowsTextInput',
|
|
649
640
|
bubblingEventTypes: {
|
|
650
|
-
|
|
641
|
+
topBlur: {
|
|
642
|
+
phasedRegistrationNames: {
|
|
643
|
+
bubbled: 'onBlur',
|
|
644
|
+
captured: 'onBlurCapture',
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
topEndEditing: {
|
|
648
|
+
phasedRegistrationNames: {
|
|
649
|
+
bubbled: 'onEndEditing',
|
|
650
|
+
captured: 'onEndEditingCapture',
|
|
651
|
+
},
|
|
652
|
+
},
|
|
653
|
+
topFocus: {
|
|
654
|
+
phasedRegistrationNames: {
|
|
655
|
+
bubbled: 'onFocus',
|
|
656
|
+
captured: 'onFocusCapture',
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
topKeyPress: {
|
|
660
|
+
phasedRegistrationNames: {
|
|
661
|
+
bubbled: 'onKeyPress',
|
|
662
|
+
captured: 'onKeyPressCapture',
|
|
663
|
+
},
|
|
664
|
+
},
|
|
665
|
+
topSubmitEditing: {
|
|
651
666
|
phasedRegistrationNames: {
|
|
652
|
-
bubbled: '
|
|
653
|
-
captured: '
|
|
667
|
+
bubbled: 'onSubmitEditing',
|
|
668
|
+
captured: 'onSubmitEditingCapture',
|
|
654
669
|
},
|
|
655
670
|
},
|
|
656
671
|
},
|
|
@@ -8,12 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import type * as React from 'react';
|
|
11
|
-
import {Constructor} from '../../../types/private/Utilities';
|
|
12
|
-
import {TimerMixin} from '../../../types/private/TimerMixin';
|
|
13
|
-
import {NativeMethods} from '../../../types/public/ReactNativeTypes';
|
|
14
11
|
import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
|
|
15
12
|
import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
|
|
16
|
-
import {
|
|
13
|
+
import {View} from '../../Components/View/View';
|
|
17
14
|
import {TouchableWithoutFeedbackProps} from './TouchableWithoutFeedback';
|
|
18
15
|
|
|
19
16
|
/**
|
|
@@ -60,9 +57,6 @@ export interface TouchableHighlightProps extends TouchableWithoutFeedbackProps {
|
|
|
60
57
|
*
|
|
61
58
|
* @see https://reactnative.dev/docs/touchablehighlight
|
|
62
59
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Constructor<TouchableMixin> &
|
|
67
|
-
typeof TouchableHighlightComponent;
|
|
68
|
-
export class TouchableHighlight extends TouchableHighlightBase {}
|
|
60
|
+
export const TouchableHighlight: React.ForwardRefExoticComponent<
|
|
61
|
+
React.PropsWithoutRef<TouchableHighlightProps> & React.RefAttributes<View>
|
|
62
|
+
>;
|
|
@@ -342,7 +342,9 @@ class TouchableHighlight extends React.Component<Props, State> {
|
|
|
342
342
|
nextFocusRight={this.props.nextFocusRight}
|
|
343
343
|
nextFocusUp={this.props.nextFocusUp}
|
|
344
344
|
focusable={
|
|
345
|
-
this.props.focusable !== false &&
|
|
345
|
+
this.props.focusable !== false &&
|
|
346
|
+
this.props.onPress !== undefined &&
|
|
347
|
+
!this.props.disabled
|
|
346
348
|
}
|
|
347
349
|
nativeID={this.props.id ?? this.props.nativeID}
|
|
348
350
|
testID={this.props.testID}
|
|
@@ -350,7 +350,9 @@ class TouchableHighlight extends React.Component<Props, State> {
|
|
|
350
350
|
nextFocusRight={this.props.nextFocusRight}
|
|
351
351
|
nextFocusUp={this.props.nextFocusUp}
|
|
352
352
|
focusable={
|
|
353
|
-
this.props.focusable !== false &&
|
|
353
|
+
this.props.focusable !== false &&
|
|
354
|
+
this.props.onPress !== undefined &&
|
|
355
|
+
!this.props.disabled
|
|
354
356
|
}
|
|
355
357
|
nativeID={this.props.id ?? this.props.nativeID}
|
|
356
358
|
testID={this.props.testID}
|
|
@@ -8,11 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import type * as React from 'react';
|
|
11
|
-
import {
|
|
12
|
-
import {TimerMixin} from '../../../types/private/TimerMixin';
|
|
13
|
-
import {NativeMethods} from '../../../types/public/ReactNativeTypes';
|
|
14
|
-
import {TVParallaxProperties} from '../View/ViewPropTypes';
|
|
15
|
-
import {TouchableMixin} from './Touchable';
|
|
11
|
+
import {View} from '../../Components/View/View';
|
|
16
12
|
import {TouchableWithoutFeedbackProps} from './TouchableWithoutFeedback';
|
|
17
13
|
|
|
18
14
|
export interface TVProps {
|
|
@@ -70,22 +66,6 @@ export interface TouchableOpacityProps
|
|
|
70
66
|
* Defaults to 0.2
|
|
71
67
|
*/
|
|
72
68
|
activeOpacity?: number | undefined;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* *(Apple TV only)* Object with properties to control Apple TV parallax effects.
|
|
76
|
-
*
|
|
77
|
-
* enabled: If true, parallax effects are enabled. Defaults to true.
|
|
78
|
-
* shiftDistanceX: Defaults to 2.0.
|
|
79
|
-
* shiftDistanceY: Defaults to 2.0.
|
|
80
|
-
* tiltAngle: Defaults to 0.05.
|
|
81
|
-
* magnification: Defaults to 1.0.
|
|
82
|
-
* pressMagnification: Defaults to 1.0.
|
|
83
|
-
* pressDuration: Defaults to 0.3.
|
|
84
|
-
* pressDelay: Defaults to 0.0.
|
|
85
|
-
*
|
|
86
|
-
* @platform android
|
|
87
|
-
*/
|
|
88
|
-
tvParallaxProperties?: TVParallaxProperties | undefined;
|
|
89
69
|
}
|
|
90
70
|
|
|
91
71
|
/**
|
|
@@ -96,14 +76,6 @@ export interface TouchableOpacityProps
|
|
|
96
76
|
*
|
|
97
77
|
* @see https://reactnative.dev/docs/touchableopacity
|
|
98
78
|
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
Constructor<NativeMethods> &
|
|
103
|
-
typeof TouchableOpacityComponent;
|
|
104
|
-
export class TouchableOpacity extends TouchableOpacityBase {
|
|
105
|
-
/**
|
|
106
|
-
* Animate the touchable to a new opacity.
|
|
107
|
-
*/
|
|
108
|
-
setOpacityTo: (value: number) => void;
|
|
109
|
-
}
|
|
79
|
+
export const TouchableOpacity: React.ForwardRefExoticComponent<
|
|
80
|
+
React.PropsWithoutRef<TouchableOpacityProps> & React.RefAttributes<View>
|
|
81
|
+
>;
|
|
@@ -287,7 +287,9 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
287
287
|
hasTVPreferredFocus={this.props.hasTVPreferredFocus}
|
|
288
288
|
hitSlop={this.props.hitSlop}
|
|
289
289
|
focusable={
|
|
290
|
-
this.props.focusable !== false &&
|
|
290
|
+
this.props.focusable !== false &&
|
|
291
|
+
this.props.onPress !== undefined &&
|
|
292
|
+
!this.props.disabled
|
|
291
293
|
}
|
|
292
294
|
ref={this.props.hostRef}
|
|
293
295
|
{...eventHandlersWithoutBlurAndFocus}>
|
|
@@ -295,7 +295,9 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
295
295
|
hasTVPreferredFocus={this.props.hasTVPreferredFocus}
|
|
296
296
|
hitSlop={this.props.hitSlop}
|
|
297
297
|
focusable={
|
|
298
|
-
this.props.focusable !== false &&
|
|
298
|
+
this.props.focusable !== false &&
|
|
299
|
+
this.props.onPress !== undefined &&
|
|
300
|
+
!this.props.disabled
|
|
299
301
|
}
|
|
300
302
|
ref={this.props.hostRef}
|
|
301
303
|
accessibilityPosInSet={this.props.accessibilityPosInSet} // [Windows]
|
|
@@ -42,6 +42,8 @@ export interface TouchableWithoutFeedbackProps
|
|
|
42
42
|
AccessibilityProps {
|
|
43
43
|
children?: React.ReactNode | undefined;
|
|
44
44
|
|
|
45
|
+
rejectResponderTermination?: boolean | undefined;
|
|
46
|
+
|
|
45
47
|
/**
|
|
46
48
|
* Delay in ms, from onPressIn, before onLongPress is called.
|
|
47
49
|
*/
|
|
@@ -62,6 +64,12 @@ export interface TouchableWithoutFeedbackProps
|
|
|
62
64
|
*/
|
|
63
65
|
disabled?: boolean | undefined;
|
|
64
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Whether this View should be focusable with a non-touch input device,
|
|
69
|
+
* eg. receive focus with a hardware keyboard / TV remote.
|
|
70
|
+
*/
|
|
71
|
+
focusable?: boolean | undefined;
|
|
72
|
+
|
|
65
73
|
/**
|
|
66
74
|
* This defines how far your touch can start away from the button.
|
|
67
75
|
* This is added to pressRetentionOffset when moving off of the button.
|
|
@@ -24,11 +24,10 @@ import type {
|
|
|
24
24
|
} from '../../Types/CoreEventTypes';
|
|
25
25
|
|
|
26
26
|
import View from '../../Components/View/View';
|
|
27
|
-
import Pressability, {
|
|
28
|
-
type PressabilityConfig,
|
|
29
|
-
} from '../../Pressability/Pressability';
|
|
30
27
|
import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
|
|
28
|
+
import usePressability from '../../Pressability/usePressability';
|
|
31
29
|
import * as React from 'react';
|
|
30
|
+
import {useMemo} from 'react';
|
|
32
31
|
|
|
33
32
|
type Props = $ReadOnly<{|
|
|
34
33
|
accessibilityActions?: ?$ReadOnlyArray<AccessibilityActionInfo>,
|
|
@@ -85,10 +84,6 @@ type Props = $ReadOnly<{|
|
|
|
85
84
|
touchSoundDisabled?: ?boolean,
|
|
86
85
|
|}>;
|
|
87
86
|
|
|
88
|
-
type State = $ReadOnly<{|
|
|
89
|
-
pressability: Pressability,
|
|
90
|
-
|}>;
|
|
91
|
-
|
|
92
87
|
const PASSTHROUGH_PROPS = [
|
|
93
88
|
'accessibilityActions',
|
|
94
89
|
'accessibilityElementsHidden',
|
|
@@ -115,115 +110,126 @@ const PASSTHROUGH_PROPS = [
|
|
|
115
110
|
'testID',
|
|
116
111
|
];
|
|
117
112
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
113
|
+
module.exports = function TouchableWithoutFeedback(props: Props): React.Node {
|
|
114
|
+
const {
|
|
115
|
+
disabled,
|
|
116
|
+
rejectResponderTermination,
|
|
117
|
+
'aria-disabled': ariaDisabled,
|
|
118
|
+
accessibilityState,
|
|
119
|
+
hitSlop,
|
|
120
|
+
delayLongPress,
|
|
121
|
+
delayPressIn,
|
|
122
|
+
delayPressOut,
|
|
123
|
+
pressRetentionOffset,
|
|
124
|
+
touchSoundDisabled,
|
|
125
|
+
onBlur: _onBlur,
|
|
126
|
+
onFocus: _onFocus,
|
|
127
|
+
onLongPress,
|
|
128
|
+
onPress,
|
|
129
|
+
onPressIn,
|
|
130
|
+
onPressOut,
|
|
131
|
+
} = props;
|
|
132
|
+
|
|
133
|
+
const pressabilityConfig = useMemo(
|
|
134
|
+
() => ({
|
|
135
|
+
cancelable: !rejectResponderTermination,
|
|
140
136
|
disabled:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
137
|
+
disabled !== null
|
|
138
|
+
? disabled
|
|
139
|
+
: ariaDisabled ?? accessibilityState?.disabled,
|
|
140
|
+
hitSlop: hitSlop,
|
|
141
|
+
delayLongPress: delayLongPress,
|
|
142
|
+
delayPressIn: delayPressIn,
|
|
143
|
+
delayPressOut: delayPressOut,
|
|
144
|
+
minPressDuration: 0,
|
|
145
|
+
pressRectOffset: pressRetentionOffset,
|
|
146
|
+
android_disableSound: touchSoundDisabled,
|
|
147
|
+
onBlur: _onBlur,
|
|
148
|
+
onFocus: _onFocus,
|
|
149
|
+
onLongPress: onLongPress,
|
|
150
|
+
onPress: onPress,
|
|
151
|
+
onPressIn: onPressIn,
|
|
152
|
+
onPressOut: onPressOut,
|
|
153
|
+
}),
|
|
154
|
+
[
|
|
155
|
+
rejectResponderTermination,
|
|
156
|
+
disabled,
|
|
157
|
+
ariaDisabled,
|
|
158
|
+
accessibilityState?.disabled,
|
|
159
|
+
hitSlop,
|
|
160
|
+
delayLongPress,
|
|
161
|
+
delayPressIn,
|
|
162
|
+
delayPressOut,
|
|
163
|
+
pressRetentionOffset,
|
|
164
|
+
touchSoundDisabled,
|
|
165
|
+
_onBlur,
|
|
166
|
+
_onFocus,
|
|
167
|
+
onLongPress,
|
|
168
|
+
onPress,
|
|
169
|
+
onPressIn,
|
|
170
|
+
onPressOut,
|
|
171
|
+
],
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
const eventHandlers = usePressability(pressabilityConfig);
|
|
175
|
+
|
|
176
|
+
const element = React.Children.only<$FlowFixMe>(props.children);
|
|
177
|
+
const children: Array<React.Node> = [element.props.children];
|
|
178
|
+
const ariaLive = props['aria-live'];
|
|
179
|
+
|
|
180
|
+
if (__DEV__) {
|
|
181
|
+
if (element.type === View) {
|
|
182
|
+
children.push(
|
|
183
|
+
<PressabilityDebugView color="red" hitSlop={props.hitSlop} />,
|
|
184
|
+
);
|
|
182
185
|
}
|
|
183
|
-
|
|
184
|
-
// $FlowFixMe[incompatible-call]
|
|
185
|
-
return React.cloneElement(element, elementProps, ...children);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
componentDidUpdate(): void {
|
|
189
|
-
this.state.pressability.configure(createPressabilityConfig(this.props));
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
componentDidMount(): mixed {
|
|
193
|
-
this.state.pressability.configure(createPressabilityConfig(this.props));
|
|
194
186
|
}
|
|
195
187
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
188
|
+
let _accessibilityState = {
|
|
189
|
+
busy: props['aria-busy'] ?? props.accessibilityState?.busy,
|
|
190
|
+
checked: props['aria-checked'] ?? props.accessibilityState?.checked,
|
|
191
|
+
disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
|
|
192
|
+
expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
|
|
193
|
+
selected: props['aria-selected'] ?? props.accessibilityState?.selected,
|
|
194
|
+
};
|
|
200
195
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
...
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
props.disabled
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
196
|
+
// BACKWARD-COMPATIBILITY: Focus and blur events were never supported before
|
|
197
|
+
// adopting `Pressability`, so preserve that behavior.
|
|
198
|
+
const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =
|
|
199
|
+
eventHandlers || {};
|
|
200
|
+
|
|
201
|
+
const elementProps: {[string]: mixed, ...} = {
|
|
202
|
+
...eventHandlersWithoutBlurAndFocus,
|
|
203
|
+
accessible: props.accessible !== false,
|
|
204
|
+
accessibilityState:
|
|
205
|
+
props.disabled != null
|
|
206
|
+
? {
|
|
207
|
+
..._accessibilityState,
|
|
208
|
+
disabled: props.disabled,
|
|
209
|
+
}
|
|
210
|
+
: _accessibilityState,
|
|
211
|
+
focusable:
|
|
212
|
+
props.focusable !== false &&
|
|
213
|
+
props.onPress !== undefined &&
|
|
214
|
+
!props.disabled,
|
|
215
|
+
|
|
216
|
+
accessibilityElementsHidden:
|
|
217
|
+
props['aria-hidden'] ?? props.accessibilityElementsHidden,
|
|
218
|
+
importantForAccessibility:
|
|
219
|
+
props['aria-hidden'] === true
|
|
220
|
+
? 'no-hide-descendants'
|
|
221
|
+
: props.importantForAccessibility,
|
|
222
|
+
accessibilityLiveRegion:
|
|
223
|
+
ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion,
|
|
224
|
+
nativeID: props.id ?? props.nativeID,
|
|
224
225
|
};
|
|
225
|
-
}
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
for (const prop of PASSTHROUGH_PROPS) {
|
|
228
|
+
if (props[prop] !== undefined) {
|
|
229
|
+
elementProps[prop] = props[prop];
|
|
230
|
+
}
|
|
231
|
+
}
|
|
228
232
|
|
|
229
|
-
|
|
233
|
+
// $FlowFixMe[incompatible-call]
|
|
234
|
+
return React.cloneElement(element, elementProps, ...children);
|
|
235
|
+
};
|