react-native-windows 0.72.14 → 0.73.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 +16 -5
- package/Chakra/ChakraHelpers.cpp +1 -1
- package/Chakra/ChakraUtils.cpp +1 -1
- package/Chakra/ChakraValue.h +1 -1
- package/Common/packages.lock.json +13 -0
- package/Directory.Build.props +6 -2
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
- package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
- package/Folly/cgmanifest.json +1 -1
- package/Folly/packages.lock.json +23 -0
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
- package/Libraries/Animated/NativeAnimatedModule.js +6 -2
- package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
- package/Libraries/Animated/animations/Animation.js +57 -3
- package/Libraries/Animated/animations/DecayAnimation.js +9 -0
- package/Libraries/Animated/animations/SpringAnimation.js +8 -0
- package/Libraries/Animated/animations/TimingAnimation.js +8 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +1 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
- package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
- package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +9 -10
- package/Libraries/AppState/AppState.d.ts +1 -1
- package/Libraries/AppState/NativeAppState.js +8 -4
- package/Libraries/AppTheme/AppTheme.js +5 -5
- package/Libraries/BatchedBridge/MessageQueue.js +45 -36
- package/Libraries/Blob/Blob.js +6 -2
- package/Libraries/Blob/BlobManager.js +9 -10
- package/Libraries/Blob/BlobRegistry.js +14 -9
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -2
- package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
- package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
- package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
- package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
- package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Pressable/Pressable.js +3 -2
- package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
- package/Libraries/Components/Switch/Switch.js +1 -0
- package/Libraries/Components/Switch/Switch.windows.js +259 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
- package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
- package/Libraries/Components/TextInput/TextInput.js +62 -10
- package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
- package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +46 -32
- package/Libraries/Components/View/View.windows.js +23 -7
- package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
- package/Libraries/Components/View/ViewNativeComponent.js +1 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
- package/Libraries/Components/View/ViewPropTypes.js +18 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
- package/Libraries/Core/ExceptionsManager.js +16 -7
- package/Libraries/Core/ExtendedError.js +12 -0
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
- package/Libraries/Core/setUpDeveloperTools.js +5 -1
- package/Libraries/Core/setUpIntersectionObserver.js +16 -0
- package/Libraries/Core/setUpMutationObserver.js +16 -0
- package/Libraries/Core/setUpPerformance.js +6 -13
- package/Libraries/Core/setUpPerformanceObserver.js +16 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
- package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
- package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
- package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
- package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
- package/Libraries/Image/Image.android.js +8 -2
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +4 -1
- package/Libraries/Image/Image.windows.js +6 -3
- package/Libraries/Image/ImageBackground.js +3 -0
- package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
- package/Libraries/Inspector/NetworkOverlay.js +2 -2
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
- package/Libraries/Interaction/PanResponder.js +1 -4
- package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -1
- package/Libraries/Lists/FlatList.js +15 -5
- package/Libraries/Lists/SectionList.js +4 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
- package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
- package/Libraries/MutationObserver/MutationObserver.js +184 -0
- package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
- package/Libraries/MutationObserver/MutationRecord.js +82 -0
- package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
- package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
- package/Libraries/Network/RCTNetworking.android.js +2 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
- package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
- package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
- package/Libraries/Pressability/Pressability.js +28 -3
- package/Libraries/Pressability/Pressability.windows.js +30 -5
- package/Libraries/ReactNative/AppContainer.js +2 -3
- package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
- package/Libraries/ReactNative/AppRegistry.js +66 -53
- package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
- package/Libraries/ReactNative/FabricUIManager.js +143 -34
- package/Libraries/ReactNative/I18nManager.js +5 -11
- package/Libraries/ReactNative/NativeI18nManager.js +7 -5
- package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
- package/Libraries/ReactNative/UIManager.js +8 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
- package/Libraries/Renderer/shims/ReactFabric.js +5 -6
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
- package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
- package/Libraries/Share/Share.d.ts +3 -9
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
- package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
- package/Libraries/StyleSheet/flattenStyle.js +4 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
- package/Libraries/StyleSheet/processColor.js +1 -2
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
- package/Libraries/Text/Text.d.ts +5 -5
- package/Libraries/Text/Text.js +17 -10
- package/Libraries/Text/Text.windows.js +53 -20
- package/Libraries/Text/TextProps.windows.js +275 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CoreEventTypes.d.ts +5 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
- package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
- package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
- package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
- package/Libraries/Utilities/Platform.android.js +12 -8
- package/Libraries/Utilities/Platform.d.ts +1 -0
- package/Libraries/Utilities/Platform.flow.js +84 -0
- package/Libraries/Utilities/Platform.flow.windows.js +111 -0
- package/Libraries/Utilities/Platform.ios.js +12 -8
- package/Libraries/Utilities/Platform.windows.js +12 -8
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/createPerformanceLogger.js +63 -32
- package/Libraries/Utilities/useColorScheme.js +7 -8
- package/Libraries/WebPerformance/MemoryInfo.js +1 -1
- package/Libraries/WebPerformance/NativePerformance.js +3 -8
- package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
- package/Libraries/WebPerformance/Performance.js +42 -15
- package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
- package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
- package/Libraries/__tests__/ViewWindows-test.js +3 -3
- package/Libraries/platform-types.d.ts +6 -2
- package/Libraries/promiseRejectionTrackingOptions.js +1 -3
- package/Libraries/vendor/emitter/EventEmitter.js +17 -17
- package/Microsoft.ReactNative/Composition.Input.idl +103 -0
- package/Microsoft.ReactNative/CompositionContext.idl +31 -8
- package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
- package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
- package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
- package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
- package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
- package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
- package/Microsoft.ReactNative/IReactContext.cpp +1 -1
- package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
- package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
- package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
- package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
- package/Microsoft.ReactNative/ReactApplication.h +4 -4
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
- package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
- package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
- package/Microsoft.ReactNative/ReactHost/React.h +3 -6
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
- package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
- package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
- package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
- package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
- package/Microsoft.ReactNative/ReactRootView.h +2 -2
- package/Microsoft.ReactNative/ReactSupport.h +1 -1
- package/Microsoft.ReactNative/RedBox.cpp +1 -1
- package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
- package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
- package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
- package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
- package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
- package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
- package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
- package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
- package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
- package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
- package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
- package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
- package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
- package/Microsoft.ReactNative/XamlHelper.h +1 -1
- package/Microsoft.ReactNative/packages.lock.json +128 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
- package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
- package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
- package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
- package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
- package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
- package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
- package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
- package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
- package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
- package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
- package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
- package/Mso/compilerAdapters/compilerFeatures.h +1 -1
- package/Mso/compilerAdapters/functionDecorations.h +6 -6
- package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
- package/Mso/dispatchQueue/dispatchQueue.h +3 -3
- package/Mso/motifCpp/motifCppTest.h +1 -1
- package/Mso/motifCpp/testCheck.h +1 -1
- package/Mso/oacr/oacr.h +1 -1
- package/Mso/smartPtr/smartPointerBase.h +1 -1
- package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
- package/Mso/src/dispatchQueue/queueService.cpp +1 -1
- package/Mso/src/dispatchQueue/taskQueue.h +1 -1
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
- package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
- package/Mso/src/future/futureImpl.cpp +5 -5
- package/Mso/src/future/futureImpl.h +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
- package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
- package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/HybridCRT.props +34 -0
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/React.Cpp.props +0 -1
- package/PropertySheets/Warnings.props +1 -1
- package/PropertySheets/WinUI.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +15 -9
- package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
- package/ReactCommon/Yoga.cpp +497 -3895
- package/ReactCommon/packages.lock.json +30 -0
- package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/rnw-dependencies.ps1 +79 -26
- package/Shared/BaseScriptStoreImpl.cpp +42 -13
- package/Shared/BaseScriptStoreImpl.h +1 -1
- package/Shared/Composition/AutoDraw.h +36 -0
- package/Shared/CxxMessageQueue.cpp +1 -1
- package/Shared/DevSettings.h +3 -0
- package/Shared/DevSupportManager.h +1 -1
- package/Shared/Hasher.cpp +64 -0
- package/Shared/Hasher.h +24 -0
- package/Shared/HermesRuntimeHolder.cpp +6 -6
- package/Shared/IDevSupportManager.h +1 -1
- package/Shared/JSI/ChakraApi.cpp +1 -1
- package/Shared/JSI/ChakraRuntime.cpp +10 -10
- package/Shared/JSI/ChakraRuntime.h +6 -6
- package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
- package/Shared/Modules/IRequestBodyHandler.h +1 -1
- package/Shared/Modules/IUriHandler.h +1 -1
- package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Networking/DefaultBlobResource.cpp +2 -2
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
- package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
- package/Shared/OInstance.cpp +9 -23
- package/Shared/OInstance.h +1 -1
- package/Shared/PackagerConnection.h +1 -1
- package/Shared/SafeLoadLibrary.cpp +8 -44
- package/Shared/SafeLoadLibrary.h +1 -5
- package/Shared/Shared.vcxitems +50 -20
- package/Shared/Shared.vcxitems.filters +26 -17
- package/Shared/Threading/BatchingQueueThread.cpp +5 -5
- package/Shared/Threading/BatchingQueueThread.h +4 -4
- package/Shared/TurboModuleManager.cpp +1 -1
- package/Shared/Utils.cpp +1 -1
- package/Shared/tracing/fbsystrace.h +1 -1
- package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
- package/codegen/NativeAppStateSpec.g.h +11 -21
- package/codegen/NativeDeviceInfoSpec.g.h +4 -14
- package/codegen/NativeI18nManagerSpec.g.h +6 -16
- package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
- package/codegen/NativeMutationObserverSpec.g.h +90 -0
- package/codegen/NativePerformanceObserverSpec.g.h +19 -13
- package/codegen/NativePerformanceSpec.g.h +6 -23
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
- package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
- package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
- package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
- package/codegen/NativeSourceCodeSpec.g.h +3 -13
- package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
- package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
- package/codegen/react/components/rnwcore/Props.h +16 -17
- package/codegen/rnwcoreJSI-generated.cpp +1462 -319
- package/codegen/rnwcoreJSI.h +1609 -462
- package/fmt/packages.lock.json +13 -0
- package/index.windows.js +3 -3
- package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/mockModal.js +6 -4
- package/jest/setup.js +61 -30
- package/just-task.js +1 -0
- package/package.json +37 -42
- package/template/cs-app/proj/MyApp.csproj +0 -1
- package/template/cs-lib/proj/MyLib.csproj +0 -1
- package/templates/.clang-format +4 -0
- package/templates/cpp-app/metro.config.js +51 -0
- package/templates/cpp-app/template.config.js +119 -0
- package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
- package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
- package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
- package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
- package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
- package/templates/cpp-app/windows/MyApp/pch.h +35 -0
- package/templates/cpp-app/windows/MyApp/resource.h +18 -0
- package/templates/cpp-app/windows/MyApp/small.ico +0 -0
- package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
- package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
- package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
- package/templates/cpp-app/windows/MyApp.sln +176 -0
- package/templates/cpp-app/windows/_gitignore +41 -0
- package/templates/old/generateWrapper.js +67 -0
- package/templates/old/uwp-cpp-app/template.config.js +15 -0
- package/templates/old/uwp-cpp-lib/template.config.js +15 -0
- package/templates/old/uwp-cs-app/template.config.js +15 -0
- package/templates/old/uwp-cs-lib/template.config.js +15 -0
- package/types/experimental.d.ts +44 -0
- package/types/index.d.ts +2 -1
- package/types/modules/Devtools.d.ts +1 -0
- package/types/modules/globals.d.ts +16 -1
- package/Libraries/Components/View/ViewWindows.d.ts +0 -19
- package/Libraries/Components/View/ViewWindows.js +0 -22
- package/Libraries/Components/View/ViewWindows.js.map +0 -1
- package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
- package/Libraries/Components/View/ViewWindowsProps.js +0 -8
- package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
- package/Libraries/Utilities/AcessibilityMapping.js +0 -154
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
- package/Libraries/Utilities/useColorScheme.windows.js +0 -26
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
- package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
- package/Shared/V8JSIRuntimeHolder.cpp +0 -71
- package/Shared/V8JSIRuntimeHolder.h +0 -56
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
- package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
- /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
- /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
|
@@ -65,6 +65,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
65
65
|
_subscriptions: Array<EventSubscription> = [];
|
|
66
66
|
viewRef: {current: React.ElementRef<typeof View> | null, ...};
|
|
67
67
|
_initialFrameHeight: number = 0;
|
|
68
|
+
_bottom: number = 0;
|
|
68
69
|
|
|
69
70
|
constructor(props: Props) {
|
|
70
71
|
super(props);
|
|
@@ -112,14 +113,15 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
112
113
|
};
|
|
113
114
|
|
|
114
115
|
_onLayout = async (event: ViewLayoutEvent) => {
|
|
115
|
-
const
|
|
116
|
+
const oldFrame = this._frame;
|
|
116
117
|
this._frame = event.nativeEvent.layout;
|
|
117
118
|
if (!this._initialFrameHeight) {
|
|
118
119
|
// save the initial frame height, before the keyboard is visible
|
|
119
120
|
this._initialFrameHeight = this._frame.height;
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
|
|
123
|
+
// update bottom height for the first time or when the height is changed
|
|
124
|
+
if (!oldFrame || oldFrame.height !== this._frame.height) {
|
|
123
125
|
await this._updateBottomIfNecessary();
|
|
124
126
|
}
|
|
125
127
|
|
|
@@ -128,20 +130,32 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
128
130
|
}
|
|
129
131
|
};
|
|
130
132
|
|
|
133
|
+
// Avoid unnecessary renders if the KeyboardAvoidingView is disabled.
|
|
134
|
+
_setBottom = (value: number) => {
|
|
135
|
+
const enabled = this.props.enabled ?? true;
|
|
136
|
+
this._bottom = value;
|
|
137
|
+
if (enabled) {
|
|
138
|
+
this.setState({bottom: value});
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
131
142
|
_updateBottomIfNecessary = async () => {
|
|
132
143
|
if (this._keyboardEvent == null) {
|
|
133
|
-
this.
|
|
144
|
+
this._setBottom(0);
|
|
134
145
|
return;
|
|
135
146
|
}
|
|
136
147
|
|
|
137
148
|
const {duration, easing, endCoordinates} = this._keyboardEvent;
|
|
138
149
|
const height = await this._relativeKeyboardHeight(endCoordinates);
|
|
139
150
|
|
|
140
|
-
if (this.
|
|
151
|
+
if (this._bottom === height) {
|
|
141
152
|
return;
|
|
142
153
|
}
|
|
143
154
|
|
|
144
|
-
|
|
155
|
+
this._setBottom(height);
|
|
156
|
+
|
|
157
|
+
const enabled = this.props.enabled ?? true;
|
|
158
|
+
if (enabled && duration && easing) {
|
|
145
159
|
LayoutAnimation.configureNext({
|
|
146
160
|
// We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m
|
|
147
161
|
duration: duration > 10 ? duration : 10,
|
|
@@ -151,9 +165,15 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
151
165
|
},
|
|
152
166
|
});
|
|
153
167
|
}
|
|
154
|
-
this.setState({bottom: height});
|
|
155
168
|
};
|
|
156
169
|
|
|
170
|
+
componentDidUpdate(_: Props, prevState: State): void {
|
|
171
|
+
const enabled = this.props.enabled ?? true;
|
|
172
|
+
if (enabled && this._bottom !== prevState.bottom) {
|
|
173
|
+
this.setState({bottom: this._bottom});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
157
177
|
componentDidMount(): void {
|
|
158
178
|
if (Platform.OS === 'ios') {
|
|
159
179
|
this._subscriptions = [
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IKeyboardProps } from './KeyboardExtProps';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated - Exported types should already have the keyboarding properties on them
|
|
5
|
+
*/
|
|
3
6
|
export declare const supportKeyboard: <P extends Record<string, any>>(WrappedComponent: React.ComponentType<P>) => React.ForwardRefExoticComponent<React.PropsWithoutRef<P & IKeyboardProps & {
|
|
4
|
-
children?:
|
|
7
|
+
children?: React.ReactNode;
|
|
5
8
|
}> & React.RefAttributes<any>>;
|
|
@@ -10,6 +10,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.supportKeyboard = void 0;
|
|
12
12
|
const react_1 = __importDefault(require("react"));
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated - Exported types should already have the keyboarding properties on them
|
|
15
|
+
*/
|
|
13
16
|
const supportKeyboard = (WrappedComponent) => {
|
|
14
17
|
class SupportKeyboard extends react_1.default.Component {
|
|
15
18
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardExt.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Keyboard/KeyboardExt.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC;;;;;;AAEb,kDAA0B;
|
|
1
|
+
{"version":3,"file":"KeyboardExt.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Keyboard/KeyboardExt.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC;;;;;;AAEb,kDAA0B;AAG1B;;GAEG;AACI,MAAM,eAAe,GAAG,CAC7B,gBAAwC,EACxC,EAAE;IAUF,MAAM,eAAgB,SAAQ,eAAK,CAAC,SAAgC;QAC3D,MAAM;YACX,MAAM,EAAC,YAAY,EAAE,GAAG,IAAI,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3C,OAAO,8BAAC,gBAAgB,IAAC,GAAG,EAAE,YAAY,KAAO,IAAU,GAAI,CAAC;QAClE,CAAC;KACF;IAED,OAAO,eAAK,CAAC,UAAU,CACrB,CAAC,KAA+B,EAAE,GAAmB,EAAE,EAAE;QACvD,OAAO,8BAAC,eAAe,OAAK,KAAK,EAAE,YAAY,EAAE,GAAG,GAAI,CAAC;IAC3D,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,eAAe,mBAwB1B","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n'use strict';\n\nimport React from 'react';\nimport {IKeyboardProps} from './KeyboardExtProps';\n\n/**\n * @deprecated - Exported types should already have the keyboarding properties on them\n */\nexport const supportKeyboard = <P extends Record<string, any>>(\n WrappedComponent: React.ComponentType<P>,\n) => {\n interface IForwardRefProps {\n forwardedRef: React.Ref<any>;\n }\n\n // children is used to avoid error: Property 'children' does not exist on type 'IntrinsicAttributes & ViewProps &\n // IKeyboardProps & RefAttributes<any>\n type PropsWithoutForwardedRef = P & React.PropsWithChildren<IKeyboardProps>;\n type PropsWithForwardedRef = PropsWithoutForwardedRef & IForwardRefProps;\n\n class SupportKeyboard extends React.Component<PropsWithForwardedRef> {\n public render(): JSX.Element {\n const {forwardedRef, ...rest} = this.props;\n return <WrappedComponent ref={forwardedRef} {...(rest as P)} />;\n }\n }\n\n return React.forwardRef(\n (props: PropsWithoutForwardedRef, ref: React.Ref<any>) => {\n return <SupportKeyboard {...props} forwardedRef={ref} />;\n },\n );\n};\n"]}
|
|
@@ -3,35 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
* @format
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
AtTarget = 2,
|
|
11
|
-
Bubbling = 3
|
|
12
|
-
}
|
|
13
|
-
export declare enum HandledEventPhase {
|
|
14
|
-
Capturing = 1,
|
|
15
|
-
Bubbling = 3
|
|
16
|
-
}
|
|
17
|
-
export interface INativeKeyboardEvent {
|
|
18
|
-
altKey: boolean;
|
|
19
|
-
ctrlKey: boolean;
|
|
20
|
-
metaKey: boolean;
|
|
21
|
-
shiftKey: boolean;
|
|
22
|
-
key: string;
|
|
23
|
-
code: string;
|
|
24
|
-
eventPhase: EventPhase;
|
|
25
|
-
}
|
|
26
|
-
export interface IHandledKeyboardEvent {
|
|
27
|
-
altKey?: boolean;
|
|
28
|
-
ctrlKey?: boolean;
|
|
29
|
-
metaKey?: boolean;
|
|
30
|
-
shiftKey?: boolean;
|
|
31
|
-
code: string;
|
|
32
|
-
handledEventPhase?: HandledEventPhase;
|
|
33
|
-
}
|
|
34
|
-
export type IKeyboardEvent = NativeSyntheticEvent<INativeKeyboardEvent>;
|
|
6
|
+
import { IKeyboardEvent, IHandledKeyboardEvent } from '../View/ViewPropTypes';
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated
|
|
9
|
+
*/
|
|
35
10
|
export interface IKeyboardProps {
|
|
36
11
|
onKeyDown?: (args: IKeyboardEvent) => void;
|
|
37
12
|
onKeyDownCapture?: (args: IKeyboardEvent) => void;
|
|
@@ -5,21 +5,4 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.HandledEventPhase = exports.EventPhase = void 0;
|
|
9
|
-
// Enum already part of public API
|
|
10
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
11
|
-
var EventPhase;
|
|
12
|
-
(function (EventPhase) {
|
|
13
|
-
EventPhase[EventPhase["None"] = 0] = "None";
|
|
14
|
-
EventPhase[EventPhase["Capturing"] = 1] = "Capturing";
|
|
15
|
-
EventPhase[EventPhase["AtTarget"] = 2] = "AtTarget";
|
|
16
|
-
EventPhase[EventPhase["Bubbling"] = 3] = "Bubbling";
|
|
17
|
-
})(EventPhase = exports.EventPhase || (exports.EventPhase = {}));
|
|
18
|
-
// Enum already part of public API
|
|
19
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
20
|
-
var HandledEventPhase;
|
|
21
|
-
(function (HandledEventPhase) {
|
|
22
|
-
HandledEventPhase[HandledEventPhase["Capturing"] = 1] = "Capturing";
|
|
23
|
-
HandledEventPhase[HandledEventPhase["Bubbling"] = 3] = "Bubbling";
|
|
24
|
-
})(HandledEventPhase = exports.HandledEventPhase || (exports.HandledEventPhase = {}));
|
|
25
8
|
//# sourceMappingURL=KeyboardExtProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardExtProps.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Keyboard/KeyboardExtProps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"KeyboardExtProps.js","sourceRoot":"","sources":["../../../src/Libraries/Components/Keyboard/KeyboardExtProps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\n'use strict';\n\nimport {IKeyboardEvent, IHandledKeyboardEvent} from '../View/ViewPropTypes';\n\n/**\n * @deprecated\n */\nexport interface IKeyboardProps {\n onKeyDown?: (args: IKeyboardEvent) => void;\n onKeyDownCapture?: (args: IKeyboardEvent) => void;\n onKeyUp?: (args: IKeyboardEvent) => void;\n onKeyUpCapture?: (args: IKeyboardEvent) => void;\n\n keyDownEvents?: IHandledKeyboardEvent[];\n keyUpEvents?: IHandledKeyboardEvent[];\n}\n"]}
|
|
@@ -24,6 +24,7 @@ import type {
|
|
|
24
24
|
import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
|
|
25
25
|
import usePressability from '../../Pressability/usePressability';
|
|
26
26
|
import {type RectOrSize} from '../../StyleSheet/Rect';
|
|
27
|
+
import useMergeRefs from '../../Utilities/useMergeRefs';
|
|
27
28
|
import View from '../View/View';
|
|
28
29
|
import useAndroidRippleForView, {
|
|
29
30
|
type RippleConfig,
|
|
@@ -235,7 +236,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
235
236
|
} = props;
|
|
236
237
|
|
|
237
238
|
const viewRef = useRef<React.ElementRef<typeof View> | null>(null);
|
|
238
|
-
|
|
239
|
+
const mergedRef = useMergeRefs(forwardedRef, viewRef);
|
|
239
240
|
|
|
240
241
|
const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
|
|
241
242
|
|
|
@@ -338,7 +339,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
338
339
|
<View
|
|
339
340
|
{...restPropsWithDefaults}
|
|
340
341
|
{...eventHandlers}
|
|
341
|
-
ref={
|
|
342
|
+
ref={mergedRef}
|
|
342
343
|
style={typeof style === 'function' ? style({pressed}) : style}
|
|
343
344
|
collapsable={false}>
|
|
344
345
|
{typeof children === 'function' ? children({pressed}) : children}
|
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
|
|
29
29
|
import usePressability from '../../Pressability/usePressability';
|
|
30
30
|
import {type RectOrSize} from '../../StyleSheet/Rect';
|
|
31
|
+
import useMergeRefs from '../../Utilities/useMergeRefs';
|
|
31
32
|
import View from '../View/View';
|
|
32
33
|
import useAndroidRippleForView, {
|
|
33
34
|
type RippleConfig,
|
|
@@ -234,7 +235,7 @@ type Props = $ReadOnly<{|
|
|
|
234
235
|
*/
|
|
235
236
|
unstable_pressDelay?: ?number,
|
|
236
237
|
/**
|
|
237
|
-
* Web to Native
|
|
238
|
+
* Web to Native Accessibility props
|
|
238
239
|
* https://github.com/facebook/react-native/issues/34424
|
|
239
240
|
*/
|
|
240
241
|
'aria-label'?: ?string,
|
|
@@ -287,7 +288,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
287
288
|
} = props;
|
|
288
289
|
|
|
289
290
|
const viewRef = useRef<React.ElementRef<typeof View> | null>(null);
|
|
290
|
-
|
|
291
|
+
const mergedRef = useMergeRefs(forwardedRef, viewRef);
|
|
291
292
|
|
|
292
293
|
const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);
|
|
293
294
|
|
|
@@ -402,7 +403,7 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
402
403
|
<View
|
|
403
404
|
{...restPropsWithDefaults}
|
|
404
405
|
{...eventHandlers}
|
|
405
|
-
ref={
|
|
406
|
+
ref={mergedRef}
|
|
406
407
|
style={typeof style === 'function' ? style({pressed}) : style}>
|
|
407
408
|
{typeof children === 'function' ? children({pressed}) : children}
|
|
408
409
|
{__DEV__ ? <PressabilityDebugView color="red" hitSlop={hitSlop} /> : null}
|
|
@@ -71,7 +71,7 @@ export default function useAndroidRippleForView(
|
|
|
71
71
|
|
|
72
72
|
return {
|
|
73
73
|
viewProps:
|
|
74
|
-
foreground === true
|
|
74
|
+
foreground === true && Platform.Version >= 23
|
|
75
75
|
? {nativeForegroundAndroid: nativeRippleValue}
|
|
76
76
|
: {nativeBackgroundAndroid: nativeRippleValue},
|
|
77
77
|
onPressIn(event: PressEvent): void {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import typeof UnimplementedViewType from '../UnimplementedViews/UnimplementedView';
|
|
14
|
+
import typeof ProgressBarAndroidNativeComponentType from './ProgressBarAndroidNativeComponent';
|
|
15
|
+
|
|
16
|
+
export type {ProgressBarAndroidProps} from './ProgressBarAndroid.android';
|
|
17
|
+
|
|
18
|
+
module.exports = (require('../UnimplementedViews/UnimplementedView'):
|
|
19
|
+
| UnimplementedViewType
|
|
20
|
+
| ProgressBarAndroidNativeComponentType);
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
* @format
|
|
5
|
+
* @flow strict-local
|
|
5
6
|
*/
|
|
6
7
|
'use strict';
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
import typeof UnimplementedViewType from '../UnimplementedViews/UnimplementedView';
|
|
10
|
+
import typeof ProgressBarAndroidNativeComponentType from './ProgressBarAndroidNativeComponent';
|
|
11
|
+
|
|
12
|
+
module.exports = (require('../UnimplementedViews/UnimplementedView'):
|
|
13
|
+
| UnimplementedViewType
|
|
14
|
+
| ProgressBarAndroidNativeComponentType);
|
|
@@ -14,8 +14,6 @@ import Platform from '../../Utilities/Platform';
|
|
|
14
14
|
import View from '../View/View';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
|
|
17
|
-
let exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;
|
|
18
|
-
|
|
19
17
|
/**
|
|
20
18
|
* Renders nested content and automatically applies paddings reflect the portion
|
|
21
19
|
* of the view that is not covered by navigation bars, tab bars, toolbars, and
|
|
@@ -25,10 +23,12 @@ let exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;
|
|
|
25
23
|
* limitation of the screen, such as rounded corners or camera notches (aka
|
|
26
24
|
* sensor housing area on iPhone X).
|
|
27
25
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
const exported: React.AbstractComponent<
|
|
27
|
+
ViewProps,
|
|
28
|
+
React.ElementRef<typeof View>,
|
|
29
|
+
> = Platform.select({
|
|
30
|
+
ios: require('./RCTSafeAreaViewNativeComponent').default,
|
|
31
|
+
default: View,
|
|
32
|
+
});
|
|
33
33
|
|
|
34
34
|
export default exported;
|
|
@@ -14,8 +14,6 @@ import Platform from '../../Utilities/Platform';
|
|
|
14
14
|
import View from '../View/View';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
|
|
17
|
-
let exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;
|
|
18
|
-
|
|
19
17
|
/**
|
|
20
18
|
* Renders nested content and automatically applies paddings reflect the portion
|
|
21
19
|
* of the view that is not covered by navigation bars, tab bars, toolbars, and
|
|
@@ -25,13 +23,12 @@ let exported: React.AbstractComponent<ViewProps, React.ElementRef<typeof View>>;
|
|
|
25
23
|
* limitation of the screen, such as rounded corners or camera notches (aka
|
|
26
24
|
* sensor housing area on iPhone X).
|
|
27
25
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
26
|
+
const exported: React.AbstractComponent<
|
|
27
|
+
ViewProps,
|
|
28
|
+
React.ElementRef<typeof View>,
|
|
29
|
+
> = Platform.select({
|
|
30
|
+
ios: require('./RCTSafeAreaViewNativeComponent').default,
|
|
31
|
+
default: View,
|
|
32
|
+
});
|
|
36
33
|
|
|
37
34
|
export default exported;
|
|
@@ -1665,6 +1665,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1665
1665
|
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1666
1666
|
const style = flattenStyle(this.props.style);
|
|
1667
1667
|
const childLayoutProps = ['alignItems', 'justifyContent'].filter(
|
|
1668
|
+
// $FlowFixMe[incompatible-use]
|
|
1668
1669
|
prop => style && style[prop] !== undefined,
|
|
1669
1670
|
);
|
|
1670
1671
|
invariant(
|
|
@@ -1700,7 +1701,6 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1700
1701
|
return (
|
|
1701
1702
|
<StickyHeaderComponent
|
|
1702
1703
|
key={key}
|
|
1703
|
-
nativeID={'StickyHeader-' + key} /* TODO: T68258846. */
|
|
1704
1704
|
ref={ref => this._setStickyHeaderRef(key, ref)}
|
|
1705
1705
|
nextHeaderLayoutY={this._headerLayoutYs.get(
|
|
1706
1706
|
this._getKeyForIndex(nextIndex, childArray),
|
|
@@ -1837,6 +1837,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1837
1837
|
// Note: we should split props.style on the inner and outer props
|
|
1838
1838
|
// however, the ScrollView still needs the baseStyle to be scrollable
|
|
1839
1839
|
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1840
|
+
// $FlowFixMe[incompatible-call]
|
|
1840
1841
|
const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
|
|
1841
1842
|
return React.cloneElement(
|
|
1842
1843
|
refreshControl,
|
|
@@ -1924,6 +1925,7 @@ function Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {
|
|
|
1924
1925
|
return <ScrollView {...props} scrollViewRef={ref} />;
|
|
1925
1926
|
}
|
|
1926
1927
|
Wrapper.displayName = 'ScrollView';
|
|
1928
|
+
// $FlowFixMe[incompatible-call]
|
|
1927
1929
|
const ForwardedScrollView = React.forwardRef(Wrapper);
|
|
1928
1930
|
|
|
1929
1931
|
// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView
|
|
@@ -1665,6 +1665,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1665
1665
|
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1666
1666
|
const style = flattenStyle(this.props.style);
|
|
1667
1667
|
const childLayoutProps = ['alignItems', 'justifyContent'].filter(
|
|
1668
|
+
// $FlowFixMe[incompatible-use]
|
|
1668
1669
|
prop => style && style[prop] !== undefined,
|
|
1669
1670
|
);
|
|
1670
1671
|
invariant(
|
|
@@ -1700,7 +1701,6 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1700
1701
|
return (
|
|
1701
1702
|
<StickyHeaderComponent
|
|
1702
1703
|
key={key}
|
|
1703
|
-
nativeID={'StickyHeader-' + key} /* TODO: T68258846. */
|
|
1704
1704
|
ref={ref => this._setStickyHeaderRef(key, ref)}
|
|
1705
1705
|
nextHeaderLayoutY={this._headerLayoutYs.get(
|
|
1706
1706
|
this._getKeyForIndex(nextIndex, childArray),
|
|
@@ -1838,6 +1838,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1838
1838
|
// Note: we should split props.style on the inner and outer props
|
|
1839
1839
|
// however, the ScrollView still needs the baseStyle to be scrollable
|
|
1840
1840
|
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1841
|
+
// $FlowFixMe[incompatible-call]
|
|
1841
1842
|
const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
|
|
1842
1843
|
return React.cloneElement(
|
|
1843
1844
|
refreshControl,
|
|
@@ -1925,6 +1926,7 @@ function Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {
|
|
|
1925
1926
|
return <ScrollView {...props} scrollViewRef={ref} />;
|
|
1926
1927
|
}
|
|
1927
1928
|
Wrapper.displayName = 'ScrollView';
|
|
1929
|
+
// $FlowFixMe[incompatible-call]
|
|
1928
1930
|
const ForwardedScrollView = React.forwardRef(Wrapper);
|
|
1929
1931
|
|
|
1930
1932
|
// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import type {LayoutEvent} from '../../Types/CoreEventTypes';
|
|
12
12
|
|
|
13
13
|
import Animated from '../../Animated/Animated';
|
|
14
|
-
import {isPublicInstance as isFabricPublicInstance} from '../../
|
|
14
|
+
import {isPublicInstance as isFabricPublicInstance} from '../../ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils';
|
|
15
15
|
import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
16
16
|
import Platform from '../../Utilities/Platform';
|
|
17
17
|
import useMergeRefs from '../../Utilities/useMergeRefs';
|
|
@@ -58,17 +58,16 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
58
58
|
useState<?number>(_nextHeaderLayoutY);
|
|
59
59
|
const [isFabric, setIsFabric] = useState<boolean>(false);
|
|
60
60
|
|
|
61
|
-
const callbackRef = (ref: Instance | null): void => {
|
|
61
|
+
const callbackRef = useCallback((ref: Instance | null): void => {
|
|
62
62
|
if (ref == null) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
ref.setNextHeaderY =
|
|
66
|
-
setNextHeaderLayoutY(value);
|
|
67
|
-
};
|
|
65
|
+
ref.setNextHeaderY = setNextHeaderLayoutY;
|
|
68
66
|
setIsFabric(isFabricPublicInstance(ref));
|
|
69
|
-
};
|
|
67
|
+
}, []);
|
|
70
68
|
const ref: (React.ElementRef<typeof Animated.View> | null) => void =
|
|
71
69
|
// $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.
|
|
70
|
+
// $FlowFixMe[incompatible-call]
|
|
72
71
|
useMergeRefs<Instance | null>(callbackRef, forwardedRef);
|
|
73
72
|
|
|
74
73
|
const offset = useMemo(
|
|
@@ -108,12 +107,12 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
108
107
|
},
|
|
109
108
|
);
|
|
110
109
|
|
|
111
|
-
const
|
|
112
|
-
const
|
|
110
|
+
const haveReceivedInitialZeroTranslateY = useRef<boolean>(true);
|
|
111
|
+
const translateYDebounceTimer = useRef<?TimeoutID>(null);
|
|
113
112
|
|
|
114
113
|
useEffect(() => {
|
|
115
114
|
if (translateY !== 0 && translateY != null) {
|
|
116
|
-
|
|
115
|
+
haveReceivedInitialZeroTranslateY.current = false;
|
|
117
116
|
}
|
|
118
117
|
}, [translateY]);
|
|
119
118
|
|
|
@@ -131,26 +130,22 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
131
130
|
// your finger, the hit-detection moves from the Android
|
|
132
131
|
// platform to JS, so we need the ShadowTree to have knowledge
|
|
133
132
|
// of the current position.
|
|
134
|
-
const animatedValueListener = useCallback(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}, _debounceTimeout);
|
|
151
|
-
},
|
|
152
|
-
[translateY],
|
|
153
|
-
);
|
|
133
|
+
const animatedValueListener = useCallback(({value}: $FlowFixMe) => {
|
|
134
|
+
const debounceTimeout: number = Platform.OS === 'android' ? 15 : 64;
|
|
135
|
+
// When the AnimatedInterpolation is recreated, it always initializes
|
|
136
|
+
// to a value of zero and emits a value change of 0 to its listeners.
|
|
137
|
+
if (value === 0 && !haveReceivedInitialZeroTranslateY.current) {
|
|
138
|
+
haveReceivedInitialZeroTranslateY.current = true;
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (translateYDebounceTimer.current != null) {
|
|
142
|
+
clearTimeout(translateYDebounceTimer.current);
|
|
143
|
+
}
|
|
144
|
+
translateYDebounceTimer.current = setTimeout(
|
|
145
|
+
() => setTranslateY(value),
|
|
146
|
+
debounceTimeout,
|
|
147
|
+
);
|
|
148
|
+
}, []);
|
|
154
149
|
|
|
155
150
|
useEffect(() => {
|
|
156
151
|
const inputRange: Array<number> = [-1, 0];
|
|
@@ -242,11 +237,22 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
242
237
|
if (animatedListenerId) {
|
|
243
238
|
newAnimatedTranslateY.removeListener(animatedListenerId);
|
|
244
239
|
}
|
|
245
|
-
if (
|
|
246
|
-
clearTimeout(
|
|
240
|
+
if (translateYDebounceTimer.current != null) {
|
|
241
|
+
clearTimeout(translateYDebounceTimer.current);
|
|
247
242
|
}
|
|
248
243
|
};
|
|
249
|
-
}, [
|
|
244
|
+
}, [
|
|
245
|
+
nextHeaderLayoutY,
|
|
246
|
+
measured,
|
|
247
|
+
layoutHeight,
|
|
248
|
+
layoutY,
|
|
249
|
+
scrollViewHeight,
|
|
250
|
+
scrollAnimatedValue,
|
|
251
|
+
inverted,
|
|
252
|
+
offset,
|
|
253
|
+
animatedValueListener,
|
|
254
|
+
isFabric,
|
|
255
|
+
]);
|
|
250
256
|
|
|
251
257
|
const _onLayout = (event: LayoutEvent) => {
|
|
252
258
|
setLayoutY(event.nativeEvent.layout.y);
|
|
@@ -262,17 +268,7 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
262
268
|
|
|
263
269
|
const child = React.Children.only<$FlowFixMe>(props.children);
|
|
264
270
|
|
|
265
|
-
// TODO T68319535: remove this if NativeAnimated is rewritten for Fabric
|
|
266
|
-
const passthroughAnimatedPropExplicitValues =
|
|
267
|
-
isFabric && translateY != null
|
|
268
|
-
? {
|
|
269
|
-
style: {transform: [{translateY: translateY}]},
|
|
270
|
-
}
|
|
271
|
-
: null;
|
|
272
|
-
|
|
273
271
|
return (
|
|
274
|
-
/* $FlowFixMe[prop-missing] passthroughAnimatedPropExplicitValues isn't properly
|
|
275
|
-
included in the Animated.View flow type. */
|
|
276
272
|
<Animated.View
|
|
277
273
|
collapsable={false}
|
|
278
274
|
nativeID={props.nativeID}
|
|
@@ -282,10 +278,7 @@ const ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<
|
|
|
282
278
|
child.props.style,
|
|
283
279
|
styles.header,
|
|
284
280
|
{transform: [{translateY: animatedTranslateY}]},
|
|
285
|
-
]}
|
|
286
|
-
passthroughAnimatedPropExplicitValues={
|
|
287
|
-
passthroughAnimatedPropExplicitValues
|
|
288
|
-
}>
|
|
281
|
+
]}>
|
|
289
282
|
{React.cloneElement(child, {
|
|
290
283
|
style: styles.fill, // We transfer the child style to the wrapper.
|
|
291
284
|
onLayout: undefined, // we call this manually through our this._onLayout
|
|
@@ -155,6 +155,7 @@ const SwitchWithForwardedRef: React.AbstractComponent<
|
|
|
155
155
|
typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,
|
|
156
156
|
> | null>(null);
|
|
157
157
|
|
|
158
|
+
// $FlowFixMe[incompatible-call]
|
|
158
159
|
const ref = useMergeRefs(nativeSwitchRef, forwardedRef);
|
|
159
160
|
|
|
160
161
|
const [native, setNative] = React.useState({value: (null: ?boolean)});
|