react-native-windows 0.74.11 → 0.75.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +14 -70
- package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
- 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/CompositionViewComponentView.cpp +1 -4
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -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 -16
- 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 +4 -0
- 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 -2377
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
- 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,7 +26,8 @@ struct to_ascii_array {
|
|
|
26
26
|
static constexpr data_type_ data_() {
|
|
27
27
|
data_type_ result{};
|
|
28
28
|
Alphabet alpha;
|
|
29
|
-
|
|
29
|
+
// [Windows #12703 - CodeQL patch]
|
|
30
|
+
for (uint64_t i = 0; i < Base; ++i) {
|
|
30
31
|
result.data[i] = alpha(static_cast<uint8_t>(i));
|
|
31
32
|
}
|
|
32
33
|
return result;
|
|
@@ -63,7 +64,8 @@ struct to_ascii_table {
|
|
|
63
64
|
static constexpr data_type_ data_() {
|
|
64
65
|
data_type_ result{};
|
|
65
66
|
Alphabet alpha;
|
|
66
|
-
|
|
67
|
+
// [Windows #12703 - CodeQL patch]
|
|
68
|
+
for (uint64_t i = 0; i < Base * Base; ++i) {
|
|
67
69
|
result.data[i] = //
|
|
68
70
|
(alpha(uint8_t(i / Base)) << (kIsLittleEndian ? 0 : 8)) |
|
|
69
71
|
(alpha(uint8_t(i % Base)) << (kIsLittleEndian ? 8 : 0));
|
|
@@ -455,18 +455,22 @@ function addWhitelistedInterpolationParam(param: string): void {
|
|
|
455
455
|
}
|
|
456
456
|
|
|
457
457
|
function isSupportedColorStyleProp(prop: string): boolean {
|
|
458
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
458
459
|
return SUPPORTED_COLOR_STYLES[prop] === true;
|
|
459
460
|
}
|
|
460
461
|
|
|
461
462
|
function isSupportedStyleProp(prop: string): boolean {
|
|
463
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
462
464
|
return SUPPORTED_STYLES[prop] === true;
|
|
463
465
|
}
|
|
464
466
|
|
|
465
467
|
function isSupportedTransformProp(prop: string): boolean {
|
|
468
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
466
469
|
return SUPPORTED_TRANSFORMS[prop] === true;
|
|
467
470
|
}
|
|
468
471
|
|
|
469
472
|
function isSupportedInterpolationParam(param: string): boolean {
|
|
473
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
470
474
|
return SUPPORTED_INTERPOLATION_PARAMS[param] === true;
|
|
471
475
|
}
|
|
472
476
|
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import composeStyles from '../../src/private/core/composeStyles';
|
|
11
12
|
import View from '../Components/View/View';
|
|
12
13
|
import useMergeRefs from '../Utilities/useMergeRefs';
|
|
13
14
|
import useAnimatedProps from './useAnimatedProps';
|
|
14
15
|
import * as React from 'react';
|
|
16
|
+
import {useMemo} from 'react';
|
|
15
17
|
|
|
16
18
|
// $FlowFixMe[deprecated-type]
|
|
17
19
|
export type AnimatedProps<Props: {...}> = $ObjMap<
|
|
@@ -44,14 +46,18 @@ export default function createAnimatedComponent<TProps: {...}, TInstance>(
|
|
|
44
46
|
// without these passthrough values.
|
|
45
47
|
// $FlowFixMe[prop-missing]
|
|
46
48
|
const {passthroughAnimatedPropExplicitValues, style} = reducedProps;
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
const passthroughStyle = passthroughAnimatedPropExplicitValues?.style;
|
|
50
|
+
const mergedStyle = useMemo(
|
|
51
|
+
() => composeStyles(style, passthroughStyle),
|
|
52
|
+
[passthroughStyle, style],
|
|
53
|
+
);
|
|
50
54
|
|
|
55
|
+
// NOTE: It is important that `passthroughAnimatedPropExplicitValues` is
|
|
56
|
+
// spread after `reducedProps` but before `style`.
|
|
51
57
|
return (
|
|
52
58
|
<Component
|
|
53
59
|
{...reducedProps}
|
|
54
|
-
{...
|
|
60
|
+
{...passthroughAnimatedPropExplicitValues}
|
|
55
61
|
style={mergedStyle}
|
|
56
62
|
ref={ref}
|
|
57
63
|
/>
|
|
@@ -74,46 +74,74 @@ export default function useAnimatedProps<TProps: {...}, TInstance>(
|
|
|
74
74
|
// every animation frame. When using the native driver, this callback is
|
|
75
75
|
// called when the animation completes.
|
|
76
76
|
onUpdateRef.current = () => {
|
|
77
|
+
if (process.env.NODE_ENV === 'test') {
|
|
78
|
+
// Check 1: this is a test.
|
|
79
|
+
// call `scheduleUpdate` to bypass use of setNativeProps.
|
|
80
|
+
return scheduleUpdate();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const isFabricNode = isFabricInstance(instance);
|
|
84
|
+
if (node.__isNative) {
|
|
85
|
+
// Check 2: this is an animation driven by native.
|
|
86
|
+
// In native driven animations, this callback is only called once the animation completes.
|
|
87
|
+
if (isFabricNode) {
|
|
88
|
+
// Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
|
|
89
|
+
// Must not be called in Paper.
|
|
90
|
+
scheduleUpdate();
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
77
95
|
if (
|
|
78
|
-
process.env.NODE_ENV === 'test' ||
|
|
79
96
|
typeof instance !== 'object' ||
|
|
80
|
-
typeof instance?.setNativeProps !== 'function'
|
|
81
|
-
(isFabricInstance(instance) && !useNativePropsInFabric)
|
|
97
|
+
typeof instance?.setNativeProps !== 'function'
|
|
82
98
|
) {
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
// Check 3: the instance does not support setNativeProps. Call `scheduleUpdate`.
|
|
100
|
+
return scheduleUpdate();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (!isFabricNode) {
|
|
104
|
+
// Check 4: this is a paper instance, call setNativeProps.
|
|
88
105
|
// $FlowIgnore[not-a-function] - Assume it's still a function.
|
|
89
106
|
// $FlowFixMe[incompatible-use]
|
|
90
|
-
instance.setNativeProps(node.__getAnimatedValue());
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// This is where setNativeProps comes in handy but the state between
|
|
97
|
-
// Fiber tree and Shadow tree needs to be kept in sync.
|
|
98
|
-
// The goal is to call `scheduleUpdate` as little as possible to maintain
|
|
99
|
-
// performance but frequently enough to keep state in sync.
|
|
100
|
-
// Debounce is set to 48ms, which is 3 * the duration of a frame.
|
|
101
|
-
// 3 frames was the highest value where flickering state was not observed.
|
|
102
|
-
if (timerRef.current != null) {
|
|
103
|
-
clearTimeout(timerRef.current);
|
|
104
|
-
}
|
|
105
|
-
timerRef.current = setTimeout(() => {
|
|
106
|
-
timerRef.current = null;
|
|
107
|
-
scheduleUpdate();
|
|
108
|
-
}, 48);
|
|
109
|
-
}
|
|
107
|
+
return instance.setNativeProps(node.__getAnimatedValue());
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (!useNativePropsInFabric) {
|
|
111
|
+
// Check 5: setNativeProps are disabled.
|
|
112
|
+
return scheduleUpdate();
|
|
110
113
|
}
|
|
114
|
+
|
|
115
|
+
// This is a Fabric instance and setNativeProps is supported.
|
|
116
|
+
|
|
117
|
+
// $FlowIgnore[not-a-function] - Assume it's still a function.
|
|
118
|
+
// $FlowFixMe[incompatible-use]
|
|
119
|
+
instance.setNativeProps(node.__getAnimatedValue());
|
|
120
|
+
|
|
121
|
+
// Keeping state of Fiber tree and Shadow tree in sync.
|
|
122
|
+
//
|
|
123
|
+
// This is done by calling `scheduleUpdate` which will trigger a commit.
|
|
124
|
+
// However, React commit is not fast enough to drive animations.
|
|
125
|
+
// This is where setNativeProps comes in handy but the state between
|
|
126
|
+
// Fiber tree and Shadow tree needs to be kept in sync.
|
|
127
|
+
// The goal is to call `scheduleUpdate` as little as possible to maintain
|
|
128
|
+
// performance but frequently enough to keep state in sync.
|
|
129
|
+
// Debounce is set to 48ms, which is 3 * the duration of a frame.
|
|
130
|
+
// 3 frames was the highest value where flickering state was not observed.
|
|
131
|
+
if (timerRef.current != null) {
|
|
132
|
+
clearTimeout(timerRef.current);
|
|
133
|
+
}
|
|
134
|
+
timerRef.current = setTimeout(() => {
|
|
135
|
+
timerRef.current = null;
|
|
136
|
+
scheduleUpdate();
|
|
137
|
+
}, 48);
|
|
111
138
|
};
|
|
112
139
|
|
|
113
140
|
const target = getEventTarget(instance);
|
|
114
141
|
const events = [];
|
|
115
142
|
|
|
116
143
|
for (const propName in props) {
|
|
144
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
117
145
|
const propValue = props[propName];
|
|
118
146
|
if (propValue instanceof AnimatedEvent && propValue.__isNative) {
|
|
119
147
|
propValue.__attach(target, propName);
|
|
@@ -424,6 +424,7 @@ class MessageQueue {
|
|
|
424
424
|
A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,
|
|
425
425
|
);
|
|
426
426
|
}
|
|
427
|
+
// $FlowFixMe[invalid-computed-prop]
|
|
427
428
|
if (!moduleMethods[method]) {
|
|
428
429
|
invariant(
|
|
429
430
|
false,
|
|
@@ -280,7 +280,13 @@ type ButtonProps = $ReadOnly<{|
|
|
|
280
280
|
```
|
|
281
281
|
*/
|
|
282
282
|
|
|
283
|
-
const
|
|
283
|
+
const Touchable: typeof TouchableNativeFeedback | typeof TouchableOpacity =
|
|
284
|
+
Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;
|
|
285
|
+
|
|
286
|
+
const Button: React.AbstractComponent<
|
|
287
|
+
ButtonProps,
|
|
288
|
+
React.ElementRef<typeof Touchable>,
|
|
289
|
+
> = React.forwardRef((props: ButtonProps, ref) => {
|
|
284
290
|
const {
|
|
285
291
|
accessibilityLabel,
|
|
286
292
|
accessibilityState,
|
|
@@ -345,8 +351,6 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
|
|
|
345
351
|
);
|
|
346
352
|
const formattedTitle =
|
|
347
353
|
Platform.OS === 'android' ? title.toUpperCase() : title;
|
|
348
|
-
const Touchable =
|
|
349
|
-
Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;
|
|
350
354
|
|
|
351
355
|
// If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.
|
|
352
356
|
const _importantForAccessibility =
|
|
@@ -374,7 +378,8 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
|
|
|
374
378
|
testID={testID}
|
|
375
379
|
disabled={disabled}
|
|
376
380
|
onPress={onPress}
|
|
377
|
-
touchSoundDisabled={touchSoundDisabled}
|
|
381
|
+
touchSoundDisabled={touchSoundDisabled}
|
|
382
|
+
ref={ref}>
|
|
378
383
|
<View style={buttonStyles}>
|
|
379
384
|
<Text style={textStyles} disabled={disabled}>
|
|
380
385
|
{formattedTitle}
|
|
@@ -382,7 +387,7 @@ const Button: React.AbstractComponent<ButtonProps> = (props: ButtonProps) => {
|
|
|
382
387
|
</View>
|
|
383
388
|
</Touchable>
|
|
384
389
|
);
|
|
385
|
-
};
|
|
390
|
+
});
|
|
386
391
|
|
|
387
392
|
Button.displayName = 'Button';
|
|
388
393
|
|
|
@@ -119,7 +119,7 @@ type Props = $ReadOnly<{|
|
|
|
119
119
|
|}>;
|
|
120
120
|
|
|
121
121
|
type State = {|
|
|
122
|
-
|
|
122
|
+
drawerOpened: boolean,
|
|
123
123
|
|};
|
|
124
124
|
|
|
125
125
|
/**
|
|
@@ -168,7 +168,9 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
168
168
|
React.ElementRef<typeof AndroidDrawerLayoutNativeComponent>,
|
|
169
169
|
>();
|
|
170
170
|
|
|
171
|
-
state: State = {
|
|
171
|
+
state: State = {
|
|
172
|
+
drawerOpened: false,
|
|
173
|
+
};
|
|
172
174
|
|
|
173
175
|
render(): React.Node {
|
|
174
176
|
const {
|
|
@@ -189,6 +191,7 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
189
191
|
backgroundColor: drawerBackgroundColor,
|
|
190
192
|
},
|
|
191
193
|
]}
|
|
194
|
+
pointerEvents={this.state.drawerOpened ? 'auto' : 'none'}
|
|
192
195
|
collapsable={false}>
|
|
193
196
|
{renderNavigationView()}
|
|
194
197
|
{drawStatusBar && <View style={styles.drawerStatusBar} />}
|
|
@@ -245,12 +248,18 @@ class DrawerLayoutAndroid extends React.Component<Props, State> {
|
|
|
245
248
|
};
|
|
246
249
|
|
|
247
250
|
_onDrawerOpen = () => {
|
|
251
|
+
this.setState({
|
|
252
|
+
drawerOpened: true,
|
|
253
|
+
});
|
|
248
254
|
if (this.props.onDrawerOpen) {
|
|
249
255
|
this.props.onDrawerOpen();
|
|
250
256
|
}
|
|
251
257
|
};
|
|
252
258
|
|
|
253
259
|
_onDrawerClose = () => {
|
|
260
|
+
this.setState({
|
|
261
|
+
drawerOpened: false,
|
|
262
|
+
});
|
|
254
263
|
if (this.props.onDrawerClose) {
|
|
255
264
|
this.props.onDrawerClose();
|
|
256
265
|
}
|
|
@@ -3,14 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
* @format
|
|
5
5
|
*/
|
|
6
|
-
'use strict';
|
|
7
6
|
|
|
8
|
-
import
|
|
7
|
+
import type {ViewProps} from 'react-native';
|
|
9
8
|
|
|
10
9
|
import FlyoutNativeComponent from './FlyoutNativeComponent';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
10
|
+
import * as React from 'react';
|
|
11
|
+
import StyleSheet from 'react-native';
|
|
12
|
+
import {findNodeHandle} from 'react-native';
|
|
14
13
|
|
|
15
14
|
type Placement =
|
|
16
15
|
| 'top'
|
|
@@ -33,7 +32,7 @@ type ShowMode =
|
|
|
33
32
|
| 'transient'
|
|
34
33
|
| 'transient-with-dismiss-on-pointer-move-away';
|
|
35
34
|
|
|
36
|
-
type Props = $ReadOnly<{
|
|
35
|
+
type Props = $ReadOnly<{
|
|
37
36
|
...ViewProps,
|
|
38
37
|
|
|
39
38
|
// Props
|
|
@@ -55,7 +54,7 @@ type Props = $ReadOnly<{|
|
|
|
55
54
|
verticalOffset?: number,
|
|
56
55
|
|
|
57
56
|
// Events
|
|
58
|
-
|
|
57
|
+
}>;
|
|
59
58
|
|
|
60
59
|
const styles = StyleSheet.create({
|
|
61
60
|
rctFlyout: {
|
|
@@ -63,10 +62,10 @@ const styles = StyleSheet.create({
|
|
|
63
62
|
},
|
|
64
63
|
});
|
|
65
64
|
|
|
66
|
-
type State = $ReadOnly<{
|
|
65
|
+
type State = $ReadOnly<{
|
|
67
66
|
target?: number | null,
|
|
68
67
|
targetRef?: React.ReactNode,
|
|
69
|
-
|
|
68
|
+
}>;
|
|
70
69
|
|
|
71
70
|
/**
|
|
72
71
|
* Renders a flyout component.
|
|
@@ -91,9 +90,10 @@ export class Flyout extends React.Component<Props, State> {
|
|
|
91
90
|
return prevState;
|
|
92
91
|
}
|
|
93
92
|
|
|
93
|
+
state = {target: undefined, targetRef: null};
|
|
94
|
+
|
|
94
95
|
constructor(props: Props) {
|
|
95
96
|
super(props);
|
|
96
|
-
this.state = {target: undefined, targetRef: null};
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
render(): React.Node {
|
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
* @format
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type {
|
|
9
|
-
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
8
|
+
import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
|
|
10
9
|
import type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes';
|
|
11
|
-
import type {
|
|
10
|
+
import type {DirectEventHandler, Double, Int32} from 'react-native/Libraries/Types/CodegenTypes';
|
|
11
|
+
|
|
12
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
12
13
|
|
|
13
|
-
type DismissEvent = $ReadOnly<{
|
|
14
|
+
type DismissEvent = $ReadOnly<{
|
|
14
15
|
isOpen?: boolean,
|
|
15
|
-
|
|
16
|
+
}>;
|
|
16
17
|
|
|
17
|
-
type NativeProps = $ReadOnly<{
|
|
18
|
+
type NativeProps = $ReadOnly<{
|
|
18
19
|
...ViewProps,
|
|
19
20
|
|
|
20
21
|
// Props
|
|
@@ -36,7 +37,7 @@ type NativeProps = $ReadOnly<{|
|
|
|
36
37
|
verticalOffset?: Double,
|
|
37
38
|
|
|
38
39
|
// Events
|
|
39
|
-
|
|
40
|
+
}>;
|
|
40
41
|
|
|
41
42
|
type NativeType = HostComponent<NativeProps>;
|
|
42
43
|
|
|
@@ -195,13 +195,16 @@ type Props = $ReadOnly<{|
|
|
|
195
195
|
'aria-label'?: ?string,
|
|
196
196
|
|}>;
|
|
197
197
|
|
|
198
|
+
type Instance = React.ElementRef<typeof View>;
|
|
199
|
+
|
|
198
200
|
/**
|
|
199
201
|
* Component used to build display components that should respond to whether the
|
|
200
202
|
* component is currently pressed or not.
|
|
201
203
|
*/
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
204
|
+
function Pressable(
|
|
205
|
+
props: Props,
|
|
206
|
+
forwardedRef: React.RefSetter<Instance>,
|
|
207
|
+
): React.Node {
|
|
205
208
|
const {
|
|
206
209
|
accessible,
|
|
207
210
|
accessibilityState,
|
|
@@ -235,13 +238,16 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
235
238
|
...restProps
|
|
236
239
|
} = props;
|
|
237
240
|
|
|
238
|
-
const viewRef = useRef<
|
|
241
|
+
const viewRef = useRef<Instance | null>(null);
|
|
239
242
|
const mergedRef = useMergeRefs(forwardedRef, viewRef);
|
|
240
243
|
|
|
241
244
|
const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
|
|
242
245
|
|
|
243
246
|
const [pressed, setPressed] = usePressState(testOnly_pressed === true);
|
|
244
247
|
|
|
248
|
+
const shouldUpdatePressed =
|
|
249
|
+
typeof children === 'function' || typeof style === 'function';
|
|
250
|
+
|
|
245
251
|
let _accessibilityState = {
|
|
246
252
|
busy: ariaBusy ?? accessibilityState?.busy,
|
|
247
253
|
checked: ariaChecked ?? accessibilityState?.checked,
|
|
@@ -297,7 +303,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
297
303
|
if (android_rippleConfig != null) {
|
|
298
304
|
android_rippleConfig.onPressIn(event);
|
|
299
305
|
}
|
|
300
|
-
setPressed(true);
|
|
306
|
+
shouldUpdatePressed && setPressed(true);
|
|
301
307
|
if (onPressIn != null) {
|
|
302
308
|
onPressIn(event);
|
|
303
309
|
}
|
|
@@ -307,7 +313,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
307
313
|
if (android_rippleConfig != null) {
|
|
308
314
|
android_rippleConfig.onPressOut(event);
|
|
309
315
|
}
|
|
310
|
-
setPressed(false);
|
|
316
|
+
shouldUpdatePressed && setPressed(false);
|
|
311
317
|
if (onPressOut != null) {
|
|
312
318
|
onPressOut(event);
|
|
313
319
|
}
|
|
@@ -330,6 +336,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
330
336
|
onPressOut,
|
|
331
337
|
pressRetentionOffset,
|
|
332
338
|
setPressed,
|
|
339
|
+
shouldUpdatePressed,
|
|
333
340
|
unstable_pressDelay,
|
|
334
341
|
],
|
|
335
342
|
);
|
|
@@ -240,13 +240,16 @@ type Props = $ReadOnly<{|
|
|
|
240
240
|
'aria-label'?: ?string,
|
|
241
241
|
|}>;
|
|
242
242
|
|
|
243
|
+
type Instance = React.ElementRef<typeof View>;
|
|
244
|
+
|
|
243
245
|
/**
|
|
244
246
|
* Component used to build display components that should respond to whether the
|
|
245
247
|
* component is currently pressed or not.
|
|
246
248
|
*/
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
249
|
+
function Pressable(
|
|
250
|
+
props: Props,
|
|
251
|
+
forwardedRef: React.RefSetter<Instance>,
|
|
252
|
+
): React.Node {
|
|
250
253
|
const {
|
|
251
254
|
accessible,
|
|
252
255
|
accessibilityState,
|
|
@@ -286,13 +289,16 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
286
289
|
...restProps
|
|
287
290
|
} = props;
|
|
288
291
|
|
|
289
|
-
const viewRef = useRef<
|
|
292
|
+
const viewRef = useRef<Instance | null>(null);
|
|
290
293
|
const mergedRef = useMergeRefs(forwardedRef, viewRef);
|
|
291
294
|
|
|
292
295
|
const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
|
|
293
296
|
|
|
294
297
|
const [pressed, setPressed] = usePressState(testOnly_pressed === true);
|
|
295
298
|
|
|
299
|
+
const shouldUpdatePressed =
|
|
300
|
+
typeof children === 'function' || typeof style === 'function';
|
|
301
|
+
|
|
296
302
|
let _accessibilityState = {
|
|
297
303
|
busy: ariaBusy ?? accessibilityState?.busy,
|
|
298
304
|
checked: ariaChecked ?? accessibilityState?.checked,
|
|
@@ -349,7 +355,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
349
355
|
if (android_rippleConfig != null) {
|
|
350
356
|
android_rippleConfig.onPressIn(event);
|
|
351
357
|
}
|
|
352
|
-
setPressed(true);
|
|
358
|
+
shouldUpdatePressed && setPressed(true);
|
|
353
359
|
if (onPressIn != null) {
|
|
354
360
|
onPressIn(event);
|
|
355
361
|
}
|
|
@@ -359,7 +365,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
359
365
|
if (android_rippleConfig != null) {
|
|
360
366
|
android_rippleConfig.onPressOut(event);
|
|
361
367
|
}
|
|
362
|
-
setPressed(false);
|
|
368
|
+
shouldUpdatePressed && setPressed(false);
|
|
363
369
|
if (onPressOut != null) {
|
|
364
370
|
onPressOut(event);
|
|
365
371
|
}
|
|
@@ -394,6 +400,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
394
400
|
// Windows]
|
|
395
401
|
pressRetentionOffset,
|
|
396
402
|
setPressed,
|
|
403
|
+
shouldUpdatePressed,
|
|
397
404
|
unstable_pressDelay,
|
|
398
405
|
],
|
|
399
406
|
);
|
|
@@ -23,13 +23,17 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
|
|
23
23
|
validAttributes: {
|
|
24
24
|
decelerationRate: true,
|
|
25
25
|
disableIntervalMomentum: true,
|
|
26
|
+
maintainVisibleContentPosition: true,
|
|
26
27
|
endFillColor: {process: require('../../StyleSheet/processColor').default},
|
|
27
28
|
fadingEdgeLength: true,
|
|
28
29
|
nestedScrollEnabled: true,
|
|
29
30
|
overScrollMode: true,
|
|
30
31
|
pagingEnabled: true,
|
|
31
32
|
persistentScrollbar: true,
|
|
33
|
+
horizontal: true,
|
|
34
|
+
enableSyncOnScroll: true,
|
|
32
35
|
scrollEnabled: true,
|
|
36
|
+
scrollEventThrottle: true,
|
|
33
37
|
scrollPerfTag: true,
|
|
34
38
|
sendMomentumEvents: true,
|
|
35
39
|
showsHorizontalScrollIndicator: true,
|