@office-iss/react-native-win32 0.70.2 → 0.71.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/.eslintignore +1 -0
- package/.eslintrc.js +2 -0
- package/.flowconfig +3 -6
- package/CHANGELOG.json +281 -43
- package/CHANGELOG.md +105 -24
- package/IntegrationTests/AccessibilityManagerTest.js +1 -1
- package/IntegrationTests/AppEventsTest.js +0 -1
- package/IntegrationTests/BUCK +0 -1
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
- package/IntegrationTests/ImageSnapshotTest.js +1 -1
- package/IntegrationTests/IntegrationTestsApp.js +2 -3
- package/IntegrationTests/SimpleSnapshotTest.js +1 -1
- package/IntegrationTests/SyncMethodTest.js +1 -1
- package/IntegrationTests/TimersTest.js +4 -4
- package/IntegrationTests/WebSocketTest.js +3 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.d.ts +90 -0
- package/Libraries/Alert/Alert.js +7 -1
- package/Libraries/Alert/Alert.win32.js +1 -0
- package/Libraries/Alert/NativeAlertManager.js +2 -0
- package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
- package/Libraries/Animated/Animated.d.ts +587 -0
- package/Libraries/Animated/Animated.js +13 -11
- package/Libraries/Animated/AnimatedEvent.js +12 -17
- package/Libraries/Animated/AnimatedImplementation.js +21 -23
- package/Libraries/Animated/AnimatedMock.js +11 -13
- package/Libraries/Animated/AnimatedWeb.js +2 -2
- package/Libraries/Animated/Easing.d.ts +37 -0
- package/Libraries/Animated/Easing.js +2 -2
- package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +2 -7
- package/Libraries/Animated/animations/Animation.js +3 -4
- package/Libraries/Animated/animations/DecayAnimation.js +5 -8
- package/Libraries/Animated/animations/SpringAnimation.js +9 -14
- package/Libraries/Animated/animations/TimingAnimation.js +9 -13
- package/Libraries/Animated/bezier.js +2 -2
- package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
- package/Libraries/Animated/components/AnimatedImage.js +5 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
- package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
- package/Libraries/Animated/components/AnimatedText.js +5 -6
- package/Libraries/Animated/components/AnimatedView.js +5 -6
- package/Libraries/Animated/createAnimatedComponent.js +13 -20
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
- package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
- package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
- package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
- package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
- package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
- package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
- package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
- package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
- package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
- package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
- package/Libraries/Animated/useAnimatedProps.js +8 -16
- package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValue.js +25 -0
- package/Libraries/AppState/AppState.d.ts +58 -0
- package/Libraries/AppState/AppState.js +3 -7
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/BatchedBridge/MessageQueue.js +9 -5
- package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/BlobManager.js +5 -3
- package/Libraries/Blob/File.js +2 -3
- package/Libraries/Blob/FileReader.js +6 -5
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +11 -9
- package/Libraries/BugReporting/NativeBugReporting.js +1 -0
- package/Libraries/BugReporting/getReactData.js +1 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.d.ts +42 -0
- package/Libraries/Components/Button.flow.js +265 -0
- package/Libraries/Components/Button.js +62 -18
- package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
- package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
- package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
- package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
- package/Libraries/Components/Keyboard/Keyboard.js +35 -8
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
- package/Libraries/Components/Pressable/Pressable.js +73 -15
- package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
- package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
- package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
- package/Libraries/Components/ScrollView/ScrollView.js +87 -52
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
- package/Libraries/Components/Slider/Slider.d.ts +132 -0
- package/Libraries/Components/Slider/Slider.js +9 -9
- package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
- package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
- package/Libraries/Components/StatusBar/StatusBar.js +7 -7
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
- package/Libraries/Components/Switch/Switch.d.ts +115 -0
- package/Libraries/Components/Switch/Switch.js +7 -7
- package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
- package/Libraries/Components/TextInput/TextInput.js +344 -38
- package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
- package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
- package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
- package/Libraries/Components/TextInput/TextInputState.js +22 -5
- package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
- package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
- package/Libraries/Components/Touchable/Touchable.js +12 -12
- package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
- package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
- package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
- package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
- package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
- package/Libraries/Components/View/View.d.ts +29 -0
- package/Libraries/Components/View/View.js +91 -8
- package/Libraries/Components/View/View.win32.js +176 -89
- package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
- package/Libraries/Components/View/ViewAccessibility.js +70 -1
- package/Libraries/Components/View/ViewNativeComponent.js +3 -3
- package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
- package/Libraries/Components/View/ViewPropTypes.js +105 -13
- package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
- package/Libraries/Components/View/ViewWin32.Props.d.ts +6 -1
- package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +8 -0
- package/Libraries/Core/ExtendedError.js +11 -8
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -4
- package/Libraries/Core/RawEventEmitter.js +2 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +13 -11
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/setUpBatchedBridge.js +1 -5
- package/Libraries/Core/setUpDeveloperTools.js +4 -6
- package/Libraries/Core/setUpReactDevTools.js +4 -1
- package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
- package/Libraries/Core/setUpTimers.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
- package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
- package/Libraries/Image/AssetSourceResolver.js +4 -6
- package/Libraries/Image/Image.android.js +63 -45
- package/Libraries/Image/Image.d.ts +322 -0
- package/Libraries/Image/Image.flow.js +64 -0
- package/Libraries/Image/Image.ios.js +55 -28
- package/Libraries/Image/Image.win32.js +54 -25
- package/Libraries/Image/ImageBackground.js +18 -7
- package/Libraries/Image/ImageInjection.js +2 -1
- package/Libraries/Image/ImageProps.js +88 -5
- package/Libraries/Image/ImageResizeMode.d.ts +49 -0
- package/Libraries/Image/ImageSource.d.ts +76 -0
- package/Libraries/Image/ImageSourceUtils.js +80 -0
- package/Libraries/Image/ImageUtils.js +21 -0
- package/Libraries/Image/ImageViewNativeComponent.js +8 -5
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
- package/Libraries/Image/nativeImageSource.js +2 -2
- package/Libraries/Image/resolveAssetSource.js +5 -5
- package/Libraries/Inspector/BorderBox.js +1 -1
- package/Libraries/Inspector/BoxInspector.js +3 -4
- package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
- package/Libraries/Inspector/ElementBox.js +4 -5
- package/Libraries/Inspector/ElementProperties.js +10 -11
- package/Libraries/Inspector/Inspector.js +22 -108
- package/Libraries/Inspector/Inspector.win32.js +23 -109
- package/Libraries/Inspector/InspectorOverlay.js +5 -5
- package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
- package/Libraries/Inspector/InspectorPanel.js +12 -10
- package/Libraries/Inspector/NetworkOverlay.js +7 -3
- package/Libraries/Inspector/PerformanceOverlay.js +3 -3
- package/Libraries/Inspector/StyleInspector.js +2 -2
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
- package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
- package/Libraries/Interaction/InteractionManager.d.ts +74 -0
- package/Libraries/Interaction/InteractionManager.js +8 -8
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/PanResponder.d.ts +202 -0
- package/Libraries/Interaction/PanResponder.flow.js +257 -0
- package/Libraries/Interaction/PanResponder.js +4 -3
- package/Libraries/JSInspector/JSInspector.js +0 -3
- package/Libraries/JSInspector/NetworkAgent.js +3 -3
- package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
- package/Libraries/Linking/Linking.d.ts +61 -0
- package/Libraries/Linking/Linking.js +3 -2
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/CellRenderMask.js +13 -3
- package/Libraries/Lists/ChildListCollection.js +72 -0
- package/Libraries/Lists/FillRateHelper.js +28 -17
- package/Libraries/Lists/FlatList.d.ts +292 -0
- package/Libraries/Lists/FlatList.js +70 -70
- package/Libraries/Lists/SectionList.d.ts +300 -0
- package/Libraries/Lists/SectionList.js +5 -5
- package/Libraries/Lists/SectionListModern.js +6 -6
- package/Libraries/Lists/StateSafePureComponent.js +85 -0
- package/Libraries/Lists/ViewabilityHelper.js +33 -12
- package/Libraries/Lists/VirtualizeUtils.js +17 -13
- package/Libraries/Lists/VirtualizedList.d.ts +317 -0
- package/Libraries/Lists/VirtualizedList.js +548 -890
- package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
- package/Libraries/Lists/VirtualizedListContext.js +7 -48
- package/Libraries/Lists/VirtualizedListProps.js +279 -0
- package/Libraries/Lists/VirtualizedSectionList.js +6 -3
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +9 -8
- package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
- package/Libraries/LogBox/LogBox.d.ts +28 -0
- package/Libraries/LogBox/LogBox.js +11 -11
- package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
- package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
- package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
- package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
- package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
- package/Libraries/Modal/Modal.d.ts +104 -0
- package/Libraries/Modal/Modal.js +14 -14
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
- package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +4 -3
- package/Libraries/Network/RCTNetworking.ios.js +3 -2
- package/Libraries/Network/RCTNetworking.win32.js +1 -0
- package/Libraries/Network/convertRequestBody.js +1 -2
- package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
- package/Libraries/NewAppScreen/components/Header.js +6 -2
- package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
- package/Libraries/NewAppScreen/index.js +1 -1
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
- package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
- package/Libraries/Performance/Systrace.d.ts +66 -0
- package/Libraries/Performance/Systrace.js +110 -195
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
- package/Libraries/Pressability/Pressability.js +12 -10
- package/Libraries/Pressability/Pressability.win32.js +9 -7
- package/Libraries/Pressability/PressabilityDebug.js +2 -2
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
- package/Libraries/ReactNative/AppContainer.js +17 -7
- package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
- package/Libraries/ReactNative/AppRegistry.js +11 -14
- package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
- package/Libraries/ReactNative/FabricUIManager.js +3 -3
- package/Libraries/ReactNative/I18nManager.d.ts +25 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/PaperUIManager.js +2 -2
- package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
- package/Libraries/ReactNative/RendererImplementation.js +112 -0
- package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
- package/Libraries/ReactNative/RendererProxy.js +26 -0
- package/Libraries/ReactNative/RootTag.js +0 -1
- package/Libraries/ReactNative/UIManager.d.ts +157 -0
- package/Libraries/ReactNative/UIManager.js +1 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
- package/Libraries/ReactNative/renderApplication.js +38 -20
- package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
- package/Libraries/ReactNative/requireNativeComponent.js +2 -2
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.d.ts +18 -0
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.d.ts +80 -0
- package/Libraries/Share/Share.js +7 -5
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
- package/Libraries/StyleSheet/StyleSheet.js +15 -11
- package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +3 -3
- package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
- package/Libraries/StyleSheet/processAspectRatio.js +53 -0
- package/Libraries/StyleSheet/processColor.d.ts +16 -0
- package/Libraries/StyleSheet/processColor.js +3 -4
- package/Libraries/StyleSheet/processColorArray.js +1 -0
- package/Libraries/StyleSheet/processFontVariant.js +30 -0
- package/Libraries/StyleSheet/processTransform.js +114 -105
- package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
- package/Libraries/Text/Text.d.ts +209 -0
- package/Libraries/Text/Text.js +94 -12
- package/Libraries/Text/TextNativeComponent.js +49 -41
- package/Libraries/Text/TextNativeComponent.win32.js +67 -48
- package/Libraries/Text/TextProps.js +64 -7
- package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
- package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CoreEventTypes.d.ts +263 -0
- package/Libraries/Types/CoreEventTypes.js +2 -1
- package/Libraries/Types/CoreEventTypes.win32.js +2 -1
- package/Libraries/Utilities/AcessibilityMapping.js +154 -0
- package/Libraries/Utilities/Appearance.d.ts +43 -0
- package/Libraries/Utilities/Appearance.js +3 -3
- package/Libraries/Utilities/BackHandler.android.js +3 -5
- package/Libraries/Utilities/BackHandler.d.ts +38 -0
- package/Libraries/Utilities/BackHandler.win32.js +3 -5
- package/Libraries/Utilities/DevSettings.d.ts +32 -0
- package/Libraries/Utilities/DevSettings.js +4 -2
- package/Libraries/Utilities/Dimensions.d.ts +79 -0
- package/Libraries/Utilities/Dimensions.js +2 -2
- package/Libraries/Utilities/Dimensions.win32.js +2 -2
- package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
- package/Libraries/Utilities/HMRClient.js +23 -8
- package/Libraries/Utilities/LoadingView.ios.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
- package/Libraries/Utilities/PixelRatio.d.ts +64 -0
- package/Libraries/Utilities/Platform.android.js +11 -5
- package/Libraries/Utilities/Platform.d.ts +102 -0
- package/Libraries/Utilities/Platform.ios.js +12 -5
- package/Libraries/Utilities/Platform.win32.js +11 -5
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
- package/Libraries/Utilities/codegenNativeCommands.js +1 -10
- package/Libraries/Utilities/codegenNativeComponent.js +4 -1
- package/Libraries/Utilities/createPerformanceLogger.js +7 -8
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/groupByEveryN.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -1
- package/Libraries/Utilities/useColorScheme.js +3 -2
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.d.ts +43 -0
- package/Libraries/Vibration/Vibration.js +1 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +11 -3
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
- package/Libraries/__tests__/ButtonWin32-test.js +16 -0
- package/Libraries/platform-types.d.ts +25 -0
- package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
- package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
- package/babel.config.js +3 -0
- package/flow/jest.js +2 -2
- package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
- package/flow-typed/npm/yargs_v17.x.x.js +341 -0
- package/index.js +89 -55
- package/index.win32.js +89 -55
- package/interface.js +8 -0
- package/jest/react-native-env.js +18 -0
- package/jest/renderer.js +2 -2
- package/jest/setup.js +7 -9
- package/jest.config.js +9 -2
- package/overrides.json +40 -101
- package/package.json +34 -33
- package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
- package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
- package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
- package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
- package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
- package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
- package/src/Libraries/platform-types.d.ts +25 -0
- package/types/index.d.ts +215 -0
- package/IntegrationTests/AsyncStorageTest.js +0 -261
- package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
- package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
- package/Libraries/Core/setUpSystrace.js +0 -21
- package/Libraries/Image/ImagePickerIOS.js +0 -103
- package/Libraries/Image/NativeImagePickerIOS.js +0 -38
- package/Libraries/Lists/VirtualizedList.win32.js +0 -9
- package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
- package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
- package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
- package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
- package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
- package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
- package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
- package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
- package/Libraries/Storage/AsyncStorage.js +0 -385
- package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
- package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
- package/Libraries/Utilities/JSDevSupportModule.js +0 -37
- package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
- package/rntypes/BatchedBridge.d.ts +0 -23
- package/rntypes/Devtools.d.ts +0 -20
- package/rntypes/LaunchScreen.d.ts +0 -9
- package/rntypes/globals.d.ts +0 -497
- package/rntypes/index.d.ts +0 -9754
- package/rntypes/legacy-properties.d.ts +0 -238
- package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
- package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
- package/src/rntypes/BatchedBridge.d.ts +0 -23
- package/src/rntypes/Devtools.d.ts +0 -20
- package/src/rntypes/LaunchScreen.d.ts +0 -9
- package/src/rntypes/globals.d.ts +0 -497
- package/src/rntypes/index.d.ts +0 -9754
- package/src/rntypes/legacy-properties.d.ts +0 -238
- package/src/typings-index.ts +0 -37
- package/typings-index.d.ts +0 -23
- package/typings-index.js +0 -47
- package/typings-index.js.map +0 -1
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
12
|
+
|
|
11
13
|
import NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';
|
|
12
14
|
import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
|
|
13
15
|
import dismissKeyboard from '../../Utilities/dismissKeyboard';
|
|
14
16
|
import Platform from '../../Utilities/Platform';
|
|
15
17
|
import NativeKeyboardObserver from './NativeKeyboardObserver';
|
|
16
|
-
import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
17
18
|
|
|
18
19
|
export type KeyboardEventName = $Keys<KeyboardEventDefinitions>;
|
|
19
20
|
|
|
@@ -24,7 +25,7 @@ export type KeyboardEventEasing =
|
|
|
24
25
|
| 'linear'
|
|
25
26
|
| 'keyboard';
|
|
26
27
|
|
|
27
|
-
export type
|
|
28
|
+
export type KeyboardMetrics = $ReadOnly<{|
|
|
28
29
|
screenX: number,
|
|
29
30
|
screenY: number,
|
|
30
31
|
width: number,
|
|
@@ -36,7 +37,7 @@ export type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;
|
|
|
36
37
|
type BaseKeyboardEvent = {|
|
|
37
38
|
duration: number,
|
|
38
39
|
easing: KeyboardEventEasing,
|
|
39
|
-
endCoordinates:
|
|
40
|
+
endCoordinates: KeyboardMetrics,
|
|
40
41
|
|};
|
|
41
42
|
|
|
42
43
|
export type AndroidKeyboardEvent = $ReadOnly<{|
|
|
@@ -47,7 +48,7 @@ export type AndroidKeyboardEvent = $ReadOnly<{|
|
|
|
47
48
|
|
|
48
49
|
export type IOSKeyboardEvent = $ReadOnly<{|
|
|
49
50
|
...BaseKeyboardEvent,
|
|
50
|
-
startCoordinates:
|
|
51
|
+
startCoordinates: KeyboardMetrics,
|
|
51
52
|
isEventFromThisApp: boolean,
|
|
52
53
|
|}>;
|
|
53
54
|
|
|
@@ -103,6 +104,8 @@ type KeyboardEventDefinitions = {
|
|
|
103
104
|
*/
|
|
104
105
|
|
|
105
106
|
class Keyboard {
|
|
107
|
+
_currentlyShowing: ?KeyboardEvent;
|
|
108
|
+
|
|
106
109
|
_emitter: NativeEventEmitter<KeyboardEventDefinitions> =
|
|
107
110
|
new NativeEventEmitter(
|
|
108
111
|
// T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
|
|
@@ -110,6 +113,15 @@ class Keyboard {
|
|
|
110
113
|
Platform.OS !== 'ios' ? null : NativeKeyboardObserver,
|
|
111
114
|
);
|
|
112
115
|
|
|
116
|
+
constructor() {
|
|
117
|
+
this.addListener('keyboardDidShow', ev => {
|
|
118
|
+
this._currentlyShowing = ev;
|
|
119
|
+
});
|
|
120
|
+
this.addListener('keyboardDidHide', _ev => {
|
|
121
|
+
this._currentlyShowing = null;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
113
125
|
/**
|
|
114
126
|
* The `addListener` function connects a JavaScript function to an identified native
|
|
115
127
|
* keyboard notification event.
|
|
@@ -126,10 +138,11 @@ class Keyboard {
|
|
|
126
138
|
* - `keyboardWillChangeFrame`
|
|
127
139
|
* - `keyboardDidChangeFrame`
|
|
128
140
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
141
|
+
* Android versions prior to API 30 rely on observing layout changes when
|
|
142
|
+
* `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.
|
|
143
|
+
*
|
|
144
|
+
* `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is
|
|
145
|
+
* no native corresponding event.
|
|
133
146
|
*
|
|
134
147
|
* @param {function} callback function to be called when the event fires.
|
|
135
148
|
*/
|
|
@@ -157,6 +170,20 @@ class Keyboard {
|
|
|
157
170
|
dismissKeyboard();
|
|
158
171
|
}
|
|
159
172
|
|
|
173
|
+
/**
|
|
174
|
+
* Whether the keyboard is last known to be visible.
|
|
175
|
+
*/
|
|
176
|
+
isVisible(): boolean {
|
|
177
|
+
return !!this._currentlyShowing;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Return the metrics of the soft-keyboard if visible.
|
|
182
|
+
*/
|
|
183
|
+
metrics(): ?KeyboardMetrics {
|
|
184
|
+
return this._currentlyShowing?.endCoordinates;
|
|
185
|
+
}
|
|
186
|
+
|
|
160
187
|
/**
|
|
161
188
|
* Useful for syncing TextInput (or other keyboard accessory view) size of
|
|
162
189
|
* position changes with keyboard movements.
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type * as React from 'react';
|
|
11
|
+
import {Constructor} from '../../../types/private/Utilities';
|
|
12
|
+
import {TimerMixin} from '../../../types/private/TimerMixin';
|
|
13
|
+
import {StyleProp} from '../../StyleSheet/StyleSheet';
|
|
14
|
+
import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
|
|
15
|
+
import {ViewProps} from '../View/ViewPropTypes';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* It is a component to solve the common problem of views that need to move out of the way of the virtual keyboard.
|
|
19
|
+
* It can automatically adjust either its position or bottom padding based on the position of the keyboard.
|
|
20
|
+
*/
|
|
21
|
+
declare class KeyboardAvoidingViewComponent extends React.Component<KeyboardAvoidingViewProps> {}
|
|
22
|
+
declare const KeyboardAvoidingViewBase: Constructor<TimerMixin> &
|
|
23
|
+
typeof KeyboardAvoidingViewComponent;
|
|
24
|
+
export class KeyboardAvoidingView extends KeyboardAvoidingViewBase {}
|
|
25
|
+
|
|
26
|
+
export interface KeyboardAvoidingViewProps extends ViewProps {
|
|
27
|
+
behavior?: 'height' | 'position' | 'padding' | undefined;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The style of the content container(View) when behavior is 'position'.
|
|
31
|
+
*/
|
|
32
|
+
contentContainerStyle?: StyleProp<ViewStyle> | undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* This is the distance between the top of the user screen and the react native view,
|
|
36
|
+
* may be non-zero in some use cases.
|
|
37
|
+
*/
|
|
38
|
+
keyboardVerticalOffset?: number | undefined;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Enables or disables the KeyboardAvoidingView.
|
|
42
|
+
*
|
|
43
|
+
* Default is true
|
|
44
|
+
*/
|
|
45
|
+
enabled?: boolean | undefined;
|
|
46
|
+
}
|
|
@@ -8,21 +8,22 @@
|
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import Keyboard from './Keyboard';
|
|
12
|
-
import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
|
|
13
|
-
import Platform from '../../Utilities/Platform';
|
|
14
|
-
import * as React from 'react';
|
|
15
|
-
import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
16
|
-
import View from '../View/View';
|
|
17
|
-
|
|
18
11
|
import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
|
|
19
|
-
import {type EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
20
12
|
import type {
|
|
21
|
-
ViewProps,
|
|
22
13
|
ViewLayout,
|
|
23
14
|
ViewLayoutEvent,
|
|
15
|
+
ViewProps,
|
|
24
16
|
} from '../View/ViewPropTypes';
|
|
25
|
-
import type {KeyboardEvent,
|
|
17
|
+
import type {KeyboardEvent, KeyboardMetrics} from './Keyboard';
|
|
18
|
+
|
|
19
|
+
import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
|
|
20
|
+
import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
21
|
+
import Platform from '../../Utilities/Platform';
|
|
22
|
+
import {type EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
23
|
+
import AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';
|
|
24
|
+
import View from '../View/View';
|
|
25
|
+
import Keyboard from './Keyboard';
|
|
26
|
+
import * as React from 'react';
|
|
26
27
|
|
|
27
28
|
type Props = $ReadOnly<{|
|
|
28
29
|
...ViewProps,
|
|
@@ -71,15 +72,34 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
71
72
|
this.viewRef = React.createRef();
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
_relativeKeyboardHeight(
|
|
75
|
+
async _relativeKeyboardHeight(
|
|
76
|
+
keyboardFrame: KeyboardMetrics,
|
|
77
|
+
): Promise<number> {
|
|
75
78
|
const frame = this._frame;
|
|
76
79
|
if (!frame || !keyboardFrame) {
|
|
77
80
|
return 0;
|
|
78
81
|
}
|
|
79
82
|
|
|
83
|
+
// On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position
|
|
84
|
+
// & height is reported differently (0 instead of Y position value matching height of frame)
|
|
85
|
+
if (
|
|
86
|
+
Platform.OS === 'ios' &&
|
|
87
|
+
keyboardFrame.screenY === 0 &&
|
|
88
|
+
(await AccessibilityInfo.prefersCrossFadeTransitions())
|
|
89
|
+
) {
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
80
93
|
const keyboardY =
|
|
81
94
|
keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);
|
|
82
95
|
|
|
96
|
+
if (this.props.behavior === 'height') {
|
|
97
|
+
return Math.max(
|
|
98
|
+
this.state.bottom + frame.y + frame.height - keyboardY,
|
|
99
|
+
0,
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
83
103
|
// Calculate the displacement needed for the view such that it
|
|
84
104
|
// no longer overlaps with the keyboard
|
|
85
105
|
return Math.max(frame.y + frame.height - keyboardY, 0);
|
|
@@ -90,7 +110,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
90
110
|
this._updateBottomIfNecessary();
|
|
91
111
|
};
|
|
92
112
|
|
|
93
|
-
_onLayout = (event: ViewLayoutEvent) => {
|
|
113
|
+
_onLayout = async (event: ViewLayoutEvent) => {
|
|
94
114
|
const wasFrameNull = this._frame == null;
|
|
95
115
|
this._frame = event.nativeEvent.layout;
|
|
96
116
|
if (!this._initialFrameHeight) {
|
|
@@ -99,7 +119,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
99
119
|
}
|
|
100
120
|
|
|
101
121
|
if (wasFrameNull) {
|
|
102
|
-
this._updateBottomIfNecessary();
|
|
122
|
+
await this._updateBottomIfNecessary();
|
|
103
123
|
}
|
|
104
124
|
|
|
105
125
|
if (this.props.onLayout) {
|
|
@@ -107,14 +127,14 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
|
|
|
107
127
|
}
|
|
108
128
|
};
|
|
109
129
|
|
|
110
|
-
_updateBottomIfNecessary = () => {
|
|
130
|
+
_updateBottomIfNecessary = async () => {
|
|
111
131
|
if (this._keyboardEvent == null) {
|
|
112
132
|
this.setState({bottom: 0});
|
|
113
133
|
return;
|
|
114
134
|
}
|
|
115
135
|
|
|
116
136
|
const {duration, easing, endCoordinates} = this._keyboardEvent;
|
|
117
|
-
const height = this._relativeKeyboardHeight(endCoordinates);
|
|
137
|
+
const height = await this._relativeKeyboardHeight(endCoordinates);
|
|
118
138
|
|
|
119
139
|
if (this.state.bottom === height) {
|
|
120
140
|
return;
|
|
@@ -0,0 +1,167 @@
|
|
|
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
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type * as React from 'react';
|
|
11
|
+
import {Insets} from '../../../types/public/Insets';
|
|
12
|
+
import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
|
|
13
|
+
import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
|
|
14
|
+
import {
|
|
15
|
+
GestureResponderEvent,
|
|
16
|
+
MouseEvent,
|
|
17
|
+
NativeSyntheticEvent,
|
|
18
|
+
TargetedEvent,
|
|
19
|
+
} from '../../Types/CoreEventTypes';
|
|
20
|
+
import {View} from '../View/View';
|
|
21
|
+
import {AccessibilityProps} from '../View/ViewAccessibility';
|
|
22
|
+
import {ViewProps} from '../View/ViewPropTypes';
|
|
23
|
+
|
|
24
|
+
export interface PressableStateCallbackType {
|
|
25
|
+
readonly pressed: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface PressableAndroidRippleConfig {
|
|
29
|
+
color?: null | ColorValue | undefined;
|
|
30
|
+
borderless?: null | boolean | undefined;
|
|
31
|
+
radius?: null | number | undefined;
|
|
32
|
+
foreground?: null | boolean | undefined;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface PressableProps
|
|
36
|
+
extends AccessibilityProps,
|
|
37
|
+
Omit<ViewProps, 'children' | 'style' | 'hitSlop'> {
|
|
38
|
+
/**
|
|
39
|
+
* Called when the hover is activated to provide visual feedback.
|
|
40
|
+
*/
|
|
41
|
+
onHoverIn?: null | ((event: MouseEvent) => void) | undefined;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Called when the hover is deactivated to undo visual feedback.
|
|
45
|
+
*/
|
|
46
|
+
onHoverOut?: null | ((event: MouseEvent) => void) | undefined;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Called when a single tap gesture is detected.
|
|
50
|
+
*/
|
|
51
|
+
onPress?: null | ((event: GestureResponderEvent) => void) | undefined;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Called when a touch is engaged before `onPress`.
|
|
55
|
+
*/
|
|
56
|
+
onPressIn?: null | ((event: GestureResponderEvent) => void) | undefined;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Called when a touch is released before `onPress`.
|
|
60
|
+
*/
|
|
61
|
+
onPressOut?: null | ((event: GestureResponderEvent) => void) | undefined;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Called when a long-tap gesture is detected.
|
|
65
|
+
*/
|
|
66
|
+
onLongPress?: null | ((event: GestureResponderEvent) => void) | undefined;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Called after the element loses focus.
|
|
70
|
+
* @platform macos windows
|
|
71
|
+
*/
|
|
72
|
+
onBlur?:
|
|
73
|
+
| null
|
|
74
|
+
| ((event: NativeSyntheticEvent<TargetedEvent>) => void)
|
|
75
|
+
| undefined;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Called after the element is focused.
|
|
79
|
+
* @platform macos windows
|
|
80
|
+
*/
|
|
81
|
+
onFocus?:
|
|
82
|
+
| null
|
|
83
|
+
| ((event: NativeSyntheticEvent<TargetedEvent>) => void)
|
|
84
|
+
| undefined;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Either children or a render prop that receives a boolean reflecting whether
|
|
88
|
+
* the component is currently pressed.
|
|
89
|
+
*/
|
|
90
|
+
children?:
|
|
91
|
+
| React.ReactNode
|
|
92
|
+
| ((state: PressableStateCallbackType) => React.ReactNode)
|
|
93
|
+
| undefined;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Whether a press gesture can be interrupted by a parent gesture such as a
|
|
97
|
+
* scroll event. Defaults to true.
|
|
98
|
+
*/
|
|
99
|
+
cancelable?: null | boolean | undefined;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Duration to wait after hover in before calling `onHoverIn`.
|
|
103
|
+
* @platform macos windows
|
|
104
|
+
*/
|
|
105
|
+
delayHoverIn?: number | null | undefined;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Duration to wait after hover out before calling `onHoverOut`.
|
|
109
|
+
* @platform macos windows
|
|
110
|
+
*/
|
|
111
|
+
delayHoverOut?: number | null | undefined;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.
|
|
115
|
+
*/
|
|
116
|
+
delayLongPress?: null | number | undefined;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Whether the press behavior is disabled.
|
|
120
|
+
*/
|
|
121
|
+
disabled?: null | boolean | undefined;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Additional distance outside of this view in which a press is detected.
|
|
125
|
+
*/
|
|
126
|
+
hitSlop?: null | Insets | number | undefined;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Additional distance outside of this view in which a touch is considered a
|
|
130
|
+
* press before `onPressOut` is triggered.
|
|
131
|
+
*/
|
|
132
|
+
pressRetentionOffset?: null | Insets | number | undefined;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* If true, doesn't play system sound on touch.
|
|
136
|
+
*/
|
|
137
|
+
android_disableSound?: null | boolean | undefined;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Enables the Android ripple effect and configures its color.
|
|
141
|
+
*/
|
|
142
|
+
android_ripple?: null | PressableAndroidRippleConfig | undefined;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Used only for documentation or testing (e.g. snapshot testing).
|
|
146
|
+
*/
|
|
147
|
+
testOnly_pressed?: null | boolean | undefined;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Either view styles or a function that receives a boolean reflecting whether
|
|
151
|
+
* the component is currently pressed and returns view styles.
|
|
152
|
+
*/
|
|
153
|
+
style?:
|
|
154
|
+
| StyleProp<ViewStyle>
|
|
155
|
+
| ((state: PressableStateCallbackType) => StyleProp<ViewStyle>)
|
|
156
|
+
| undefined;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Duration (in milliseconds) to wait after press down before calling onPressIn.
|
|
160
|
+
*/
|
|
161
|
+
unstable_pressDelay?: number;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// TODO use React.AbstractComponent when available
|
|
165
|
+
export const Pressable: React.ForwardRefExoticComponent<
|
|
166
|
+
PressableProps & React.RefAttributes<View>
|
|
167
|
+
>;
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from '
|
|
11
|
+
import type {
|
|
12
|
+
LayoutEvent,
|
|
13
|
+
MouseEvent,
|
|
14
|
+
PressEvent,
|
|
15
|
+
} from '../../Types/CoreEventTypes';
|
|
16
16
|
import type {
|
|
17
17
|
AccessibilityActionEvent,
|
|
18
18
|
AccessibilityActionInfo,
|
|
@@ -20,15 +20,16 @@ import type {
|
|
|
20
20
|
AccessibilityState,
|
|
21
21
|
AccessibilityValue,
|
|
22
22
|
} from '../View/ViewAccessibility';
|
|
23
|
+
|
|
23
24
|
import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
|
|
24
25
|
import usePressability from '../../Pressability/usePressability';
|
|
25
26
|
import {type RectOrSize} from '../../StyleSheet/Rect';
|
|
26
|
-
import type {
|
|
27
|
-
LayoutEvent,
|
|
28
|
-
MouseEvent,
|
|
29
|
-
PressEvent,
|
|
30
|
-
} from '../../Types/CoreEventTypes';
|
|
31
27
|
import View from '../View/View';
|
|
28
|
+
import useAndroidRippleForView, {
|
|
29
|
+
type RippleConfig,
|
|
30
|
+
} from './useAndroidRippleForView';
|
|
31
|
+
import * as React from 'react';
|
|
32
|
+
import {useImperativeHandle, useMemo, useRef, useState} from 'react';
|
|
32
33
|
|
|
33
34
|
type ViewStyleProp = $ElementType<React.ElementConfig<typeof View>, 'style'>;
|
|
34
35
|
|
|
@@ -50,8 +51,30 @@ type Props = $ReadOnly<{|
|
|
|
50
51
|
accessibilityRole?: ?AccessibilityRole,
|
|
51
52
|
accessibilityState?: ?AccessibilityState,
|
|
52
53
|
accessibilityValue?: ?AccessibilityValue,
|
|
54
|
+
'aria-valuemax'?: AccessibilityValue['max'],
|
|
55
|
+
'aria-valuemin'?: AccessibilityValue['min'],
|
|
56
|
+
'aria-valuenow'?: AccessibilityValue['now'],
|
|
57
|
+
'aria-valuetext'?: AccessibilityValue['text'],
|
|
53
58
|
accessibilityViewIsModal?: ?boolean,
|
|
59
|
+
'aria-modal'?: ?boolean,
|
|
54
60
|
accessible?: ?boolean,
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* alias for accessibilityState
|
|
64
|
+
*
|
|
65
|
+
* see https://reactnative.dev/docs/accessibility#accessibilitystate
|
|
66
|
+
*/
|
|
67
|
+
'aria-busy'?: ?boolean,
|
|
68
|
+
'aria-checked'?: ?boolean | 'mixed',
|
|
69
|
+
'aria-disabled'?: ?boolean,
|
|
70
|
+
'aria-expanded'?: ?boolean,
|
|
71
|
+
'aria-selected'?: ?boolean,
|
|
72
|
+
/**
|
|
73
|
+
* A value indicating whether the accessibility elements contained within
|
|
74
|
+
* this accessibility element are hidden.
|
|
75
|
+
*/
|
|
76
|
+
'aria-hidden'?: ?boolean,
|
|
77
|
+
'aria-live'?: ?('polite' | 'assertive' | 'off'),
|
|
55
78
|
focusable?: ?boolean,
|
|
56
79
|
importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
|
|
57
80
|
onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,
|
|
@@ -164,6 +187,11 @@ type Props = $ReadOnly<{|
|
|
|
164
187
|
* Duration to wait after press down before calling `onPressIn`.
|
|
165
188
|
*/
|
|
166
189
|
unstable_pressDelay?: ?number,
|
|
190
|
+
/**
|
|
191
|
+
* Web to Native Accessibilty props
|
|
192
|
+
* https://github.com/facebook/react-native/issues/34424
|
|
193
|
+
*/
|
|
194
|
+
'aria-label'?: ?string,
|
|
167
195
|
|}>;
|
|
168
196
|
|
|
169
197
|
/**
|
|
@@ -175,8 +203,16 @@ type Props = $ReadOnly<{|
|
|
|
175
203
|
function Pressable(props: Props, forwardedRef): React.Node {
|
|
176
204
|
const {
|
|
177
205
|
accessible,
|
|
206
|
+
accessibilityState,
|
|
207
|
+
'aria-live': ariaLive,
|
|
178
208
|
android_disableSound,
|
|
179
209
|
android_ripple,
|
|
210
|
+
'aria-busy': ariaBusy,
|
|
211
|
+
'aria-checked': ariaChecked,
|
|
212
|
+
'aria-disabled': ariaDisabled,
|
|
213
|
+
'aria-expanded': ariaExpanded,
|
|
214
|
+
'aria-label': ariaLabel,
|
|
215
|
+
'aria-selected': ariaSelected,
|
|
180
216
|
cancelable,
|
|
181
217
|
children,
|
|
182
218
|
delayHoverIn,
|
|
@@ -205,17 +241,39 @@ function Pressable(props: Props, forwardedRef): React.Node {
|
|
|
205
241
|
|
|
206
242
|
const [pressed, setPressed] = usePressState(testOnly_pressed === true);
|
|
207
243
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
244
|
+
let _accessibilityState = {
|
|
245
|
+
busy: ariaBusy ?? accessibilityState?.busy,
|
|
246
|
+
checked: ariaChecked ?? accessibilityState?.checked,
|
|
247
|
+
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
248
|
+
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
249
|
+
selected: ariaSelected ?? accessibilityState?.selected,
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
_accessibilityState =
|
|
253
|
+
disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;
|
|
212
254
|
|
|
255
|
+
const accessibilityValue = {
|
|
256
|
+
max: props['aria-valuemax'] ?? props.accessibilityValue?.max,
|
|
257
|
+
min: props['aria-valuemin'] ?? props.accessibilityValue?.min,
|
|
258
|
+
now: props['aria-valuenow'] ?? props.accessibilityValue?.now,
|
|
259
|
+
text: props['aria-valuetext'] ?? props.accessibilityValue?.text,
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
const accessibilityLiveRegion =
|
|
263
|
+
ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;
|
|
264
|
+
|
|
265
|
+
const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;
|
|
213
266
|
const restPropsWithDefaults: React.ElementConfig<typeof View> = {
|
|
214
267
|
...restProps,
|
|
215
268
|
...android_rippleConfig?.viewProps,
|
|
216
269
|
accessible: accessible !== false,
|
|
217
|
-
|
|
270
|
+
accessibilityViewIsModal:
|
|
271
|
+
restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,
|
|
272
|
+
accessibilityLiveRegion,
|
|
273
|
+
accessibilityLabel,
|
|
274
|
+
accessibilityState: _accessibilityState,
|
|
218
275
|
focusable: focusable !== false,
|
|
276
|
+
accessibilityValue,
|
|
219
277
|
hitSlop,
|
|
220
278
|
};
|
|
221
279
|
|