@office-iss/react-native-win32 0.0.0-canary.28 → 0.0.0-canary.280
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 +5 -2
- package/.eslintrc.js +27 -2
- package/.flowconfig +76 -37
- package/CHANGELOG.json +5748 -1
- package/CHANGELOG.md +2293 -4
- package/IntegrationTests/AccessibilityManagerTest.js +8 -11
- package/IntegrationTests/AppEventsTest.js +3 -3
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +12 -5
- package/IntegrationTests/ImageCachePolicyTest.js +5 -5
- package/IntegrationTests/ImageSnapshotTest.js +2 -2
- package/IntegrationTests/IntegrationTestHarnessTest.js +9 -6
- package/IntegrationTests/IntegrationTestsApp.js +16 -21
- package/IntegrationTests/LayoutEventsTest.js +14 -12
- package/IntegrationTests/LoggingTestModule.js +10 -12
- package/IntegrationTests/PromiseTest.js +2 -1
- package/IntegrationTests/SimpleSnapshotTest.js +2 -4
- package/IntegrationTests/SyncMethodTest.js +2 -2
- package/IntegrationTests/TimersTest.js +20 -5
- package/IntegrationTests/WebSocketTest.js +5 -5
- package/IntegrationTests/launchWebSocketServer.sh +12 -0
- package/IntegrationTests/websocket_integration_test_server.js +3 -3
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +87 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +51 -11
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +5 -43
- package/Libraries/Alert/Alert.d.ts +91 -0
- package/Libraries/Alert/Alert.js +31 -10
- package/Libraries/Alert/Alert.win32.js +6 -4
- package/Libraries/Alert/NativeAlertManager.js +5 -26
- package/Libraries/Alert/RCTAlertManager.android.js +2 -4
- package/Libraries/Alert/RCTAlertManager.ios.js +2 -3
- package/Libraries/Animated/Animated.d.ts +626 -0
- package/Libraries/Animated/Animated.js +48 -0
- package/Libraries/Animated/AnimatedEvent.js +256 -0
- package/Libraries/Animated/AnimatedImplementation.js +754 -0
- package/Libraries/Animated/AnimatedMock.js +195 -0
- package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
- package/Libraries/Animated/AnimatedWeb.js +26 -0
- package/Libraries/Animated/Easing.d.ts +37 -0
- package/Libraries/Animated/Easing.js +250 -0
- package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
- package/Libraries/Animated/NativeAnimatedModule.js +13 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +13 -0
- package/Libraries/Animated/SpringConfig.js +98 -0
- package/Libraries/Animated/animations/Animation.js +192 -0
- package/Libraries/Animated/animations/DecayAnimation.js +122 -0
- package/Libraries/Animated/animations/SpringAnimation.js +373 -0
- package/Libraries/Animated/animations/TimingAnimation.js +174 -0
- package/Libraries/Animated/bezier.js +164 -0
- package/Libraries/Animated/components/AnimatedFlatList.js +20 -0
- package/Libraries/Animated/components/AnimatedImage.js +22 -0
- package/Libraries/Animated/components/AnimatedScrollView.js +137 -0
- package/Libraries/Animated/components/AnimatedSectionList.js +22 -0
- package/Libraries/Animated/components/AnimatedText.js +22 -0
- package/Libraries/Animated/components/AnimatedView.js +20 -0
- package/Libraries/Animated/createAnimatedComponent.js +101 -0
- package/Libraries/Animated/nodes/AnimatedAddition.js +70 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +323 -0
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +79 -0
- package/Libraries/Animated/nodes/AnimatedDivision.js +86 -0
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +419 -0
- package/Libraries/Animated/nodes/AnimatedModulo.js +65 -0
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +69 -0
- package/Libraries/Animated/nodes/AnimatedNode.js +225 -0
- package/Libraries/Animated/nodes/AnimatedObject.js +168 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +284 -0
- package/Libraries/Animated/nodes/AnimatedStyle.js +254 -0
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +70 -0
- package/Libraries/Animated/nodes/AnimatedTracking.js +103 -0
- package/Libraries/Animated/nodes/AnimatedTransform.js +201 -0
- package/Libraries/Animated/nodes/AnimatedValue.js +306 -0
- package/Libraries/Animated/nodes/AnimatedValueXY.js +238 -0
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
- package/Libraries/Animated/useAnimatedProps.js +389 -0
- 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 +91 -144
- package/Libraries/AppState/NativeAppState.js +5 -22
- package/Libraries/BatchedBridge/BatchedBridge.js +2 -2
- package/Libraries/BatchedBridge/MessageQueue.js +136 -114
- package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
- package/Libraries/BatchedBridge/NativeModules.js +36 -21
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
- package/Libraries/Blob/Blob.js +20 -3
- package/Libraries/Blob/BlobManager.js +7 -10
- package/Libraries/Blob/BlobRegistry.js +15 -10
- package/Libraries/Blob/BlobTypes.js +1 -1
- package/Libraries/Blob/File.js +3 -4
- package/Libraries/Blob/FileReader.js +36 -16
- package/Libraries/Blob/NativeBlobModule.js +5 -18
- package/Libraries/Blob/NativeFileReaderModule.js +5 -15
- package/Libraries/Blob/URL.js +38 -87
- package/Libraries/Blob/URLSearchParams.js +71 -0
- package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
- package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
- package/Libraries/BugReporting/BugReporting.js +8 -9
- package/Libraries/BugReporting/NativeBugReporting.js +5 -12
- package/Libraries/BugReporting/dumpReactTree.js +1 -1
- package/Libraries/BugReporting/getReactData.js +17 -8
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +493 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +466 -96
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +5 -19
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -51
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +36 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +77 -52
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +4 -47
- package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
- package/Libraries/Components/Button/ButtonWin32.Props.js +3 -3
- package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -0
- package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
- package/Libraries/Components/Button/ButtonWin32.js +83 -103
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -0
- package/Libraries/Components/Button.d.ts +42 -0
- package/Libraries/Components/Button.js +328 -125
- package/Libraries/Components/Button.win32.js +463 -0
- package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
- package/Libraries/Components/Clipboard/Clipboard.js +3 -5
- package/Libraries/Components/Clipboard/NativeClipboard.js +5 -14
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +4 -116
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +44 -35
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +4 -2
- package/Libraries/Components/EnterString.win32.d.ts +12 -12
- package/Libraries/Components/EnterString.win32.js +82 -114
- package/Libraries/Components/EnterString.win32.js.map +1 -0
- package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
- package/Libraries/Components/Keyboard/Keyboard.js +81 -71
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +123 -56
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +5 -13
- package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
- package/Libraries/Components/Pressable/Pressable.js +179 -46
- package/Libraries/Components/Pressable/Pressable.win32.js +437 -0
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +38 -23
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +36 -27
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +5 -27
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +4 -77
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -56
- package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
- package/Libraries/Components/RefreshControl/RefreshControl.js +16 -38
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +6 -8
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +4 -20
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +12 -39
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +12 -41
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +5 -32
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +38 -21
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +13 -20
- package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
- package/Libraries/Components/ScrollView/ScrollView.js +1119 -439
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +5 -5
- package/Libraries/Components/ScrollView/ScrollViewContext.js +24 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +168 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +11 -17
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +206 -62
- package/Libraries/Components/ScrollView/processDecelerationRate.js +2 -4
- package/Libraries/Components/Sound/NativeSoundManager.js +5 -15
- package/Libraries/Components/Sound/SoundManager.js +3 -4
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +5 -27
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +5 -35
- package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
- package/Libraries/Components/StatusBar/StatusBar.js +40 -60
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +5 -56
- package/Libraries/Components/Switch/Switch.d.ts +115 -0
- package/Libraries/Components/Switch/Switch.js +162 -133
- package/Libraries/Components/Switch/SwitchNativeComponent.js +5 -50
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +237 -67
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +28 -23
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +5 -18
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +29 -34
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +24 -42
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +168 -0
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
- package/Libraries/Components/TextInput/Tests/TextInputTest.js +128 -126
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +1007 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +1109 -0
- package/Libraries/Components/TextInput/TextInput.js +1154 -459
- package/Libraries/Components/TextInput/TextInput.win32.js +2037 -179
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
- package/Libraries/Components/TextInput/TextInputState.js +42 -21
- package/Libraries/Components/TextInput/TextInputState.win32.js +55 -30
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +26 -0
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +5 -31
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +11 -10
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +16 -10
- package/Libraries/Components/Touchable/BoundingDimensions.js +13 -6
- package/Libraries/Components/Touchable/PooledClass.js +26 -15
- package/Libraries/Components/Touchable/Position.js +9 -5
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +344 -381
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -0
- package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
- package/Libraries/Components/Touchable/Touchable.js +122 -133
- package/Libraries/Components/Touchable/Touchable.win32.js +978 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +60 -55
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +66 -56
- package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +86 -67
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +99 -51
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +95 -58
- package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -34
- package/Libraries/Components/Touchable/TouchableWin32.Props.js +3 -3
- package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -0
- package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
- package/Libraries/Components/Touchable/TouchableWin32.Types.js +3 -3
- package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -0
- package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
- package/Libraries/Components/Touchable/TouchableWin32.js +507 -529
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +148 -107
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +4 -19
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +3 -4
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +200 -69
- package/Libraries/Components/View/ReactNativeViewAttributes.js +7 -3
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +37 -13
- package/Libraries/Components/View/View.d.ts +29 -0
- package/Libraries/Components/View/View.js +108 -16
- package/Libraries/Components/View/View.win32.js +276 -0
- package/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
- package/Libraries/Components/View/ViewAccessibility.js +88 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +180 -0
- package/Libraries/Components/View/ViewNativeComponent.js +17 -71
- package/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
- package/Libraries/Components/View/ViewPropTypes.js +218 -66
- package/Libraries/Components/View/ViewPropTypes.win32.js +731 -0
- package/Libraries/Components/View/ViewWin32.d.ts +30 -12
- package/Libraries/Components/View/ViewWin32.js +130 -80
- package/Libraries/Core/Devtools/getDevServer.js +9 -8
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +153 -0
- package/Libraries/Core/Devtools/openFileInEditor.js +6 -2
- package/Libraries/Core/Devtools/openURLInBrowser.js +3 -2
- package/Libraries/Core/Devtools/parseErrorStack.js +14 -23
- package/Libraries/Core/Devtools/parseHermesStack.js +71 -44
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +13 -58
- package/Libraries/Core/ExceptionsManager.js +130 -114
- package/Libraries/Core/ExtendedError.js +33 -0
- package/Libraries/Core/InitializeCore.js +7 -3
- package/Libraries/Core/NativeExceptionsManager.js +5 -100
- package/Libraries/Core/RawEventEmitter.js +39 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +47 -38
- package/Libraries/Core/ReactNativeVersion.js +13 -7
- package/Libraries/Core/ReactNativeVersionCheck.js +11 -8
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +11 -8
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +5 -21
- package/Libraries/Core/Timers/JSTimers.js +94 -120
- package/Libraries/Core/Timers/NativeTiming.js +5 -19
- package/Libraries/Core/Timers/immediateShim.js +68 -0
- package/Libraries/Core/Timers/queueMicrotask.js +41 -0
- package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +19 -0
- package/Libraries/Core/checkNativeVersion.js +1 -1
- package/Libraries/Core/polyfillPromise.js +19 -3
- package/Libraries/Core/registerCallableModule.d.ts +16 -0
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpAlert.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +9 -20
- package/Libraries/Core/setUpDeveloperTools.js +59 -60
- package/Libraries/Core/setUpErrorHandling.js +21 -19
- package/Libraries/Core/setUpGlobals.js +8 -6
- package/Libraries/Core/setUpNavigator.js +8 -7
- package/Libraries/Core/setUpPerformance.js +31 -0
- package/Libraries/Core/setUpReactDevTools.js +194 -12
- package/Libraries/Core/setUpReactRefresh.js +4 -6
- package/Libraries/Core/setUpRegeneratorRuntime.js +28 -9
- package/Libraries/Core/setUpSegmentFetcher.js +9 -47
- package/Libraries/Core/setUpTimers.js +99 -8
- package/Libraries/Core/setUpXHR.js +5 -5
- package/Libraries/Debugging/DebuggingOverlay.js +110 -0
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
- package/Libraries/EventEmitter/NativeEventEmitter.js +92 -40
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +27 -68
- package/Libraries/EventEmitter/RCTEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +2 -4
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +34 -11
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/AssetRegistry.js +2 -27
- package/Libraries/Image/AssetSourceResolver.js +65 -39
- package/Libraries/Image/AssetUtils.js +47 -0
- package/Libraries/Image/Image.android.js +204 -271
- package/Libraries/Image/Image.d.ts +373 -0
- package/Libraries/Image/Image.ios.js +145 -104
- package/Libraries/Image/Image.win32.js +150 -93
- package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
- package/Libraries/Image/ImageBackground.js +29 -13
- package/Libraries/Image/ImageInjection.js +87 -0
- package/Libraries/Image/ImageProps.js +158 -32
- package/Libraries/Image/ImageResizeMode.d.ts +56 -0
- package/Libraries/Image/ImageResizeMode.js +5 -2
- package/Libraries/Image/ImageSource.d.ts +74 -0
- package/Libraries/Image/ImageSource.js +73 -23
- package/Libraries/Image/ImageSourceUtils.js +80 -0
- package/Libraries/Image/ImageTypes.d.ts +25 -25
- package/Libraries/Image/ImageTypes.flow.js +78 -0
- package/Libraries/Image/ImageTypes.js +8 -8
- package/Libraries/Image/ImageTypes.js.map +1 -0
- package/Libraries/Image/ImageUtils.js +25 -0
- package/Libraries/Image/ImageViewNativeComponent.js +147 -29
- package/Libraries/Image/NativeImageEditor.js +13 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +5 -32
- package/Libraries/Image/NativeImageLoaderIOS.js +5 -24
- package/Libraries/Image/NativeImageLoaderWin32.js +5 -32
- package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
- package/Libraries/Image/NativeImageStoreIOS.js +13 -0
- package/Libraries/Image/RelativeImageStub.js +2 -2
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
- package/Libraries/Image/Tests/ImageWin32Test.js +22 -19
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -0
- package/Libraries/Image/TextInlineImageNativeComponent.js +38 -7
- package/Libraries/Image/assetPaths.js +36 -0
- package/Libraries/Image/nativeImageSource.js +4 -6
- package/Libraries/Image/resolveAssetSource.js +65 -31
- package/Libraries/Image/resolveAssetSource.win32.js +18 -6
- package/Libraries/Inspector/BorderBox.js +2 -2
- package/Libraries/Inspector/BoxInspector.js +4 -5
- package/Libraries/Inspector/ElementBox.js +15 -10
- package/Libraries/Inspector/ElementProperties.js +35 -62
- package/Libraries/Inspector/Inspector.js +153 -259
- package/Libraries/Inspector/Inspector.win32.js +157 -263
- package/Libraries/Inspector/InspectorOverlay.js +28 -53
- package/Libraries/Inspector/InspectorOverlay.win32.js +31 -54
- package/Libraries/Inspector/InspectorPanel.js +31 -37
- package/Libraries/Inspector/NetworkOverlay.js +28 -18
- package/Libraries/Inspector/PerformanceOverlay.js +5 -5
- package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
- package/Libraries/Inspector/StyleInspector.js +3 -3
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
- package/Libraries/Inspector/resolveBoxStyle.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +10 -22
- package/Libraries/Interaction/InteractionManager.d.ts +74 -0
- package/Libraries/Interaction/InteractionManager.js +35 -41
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/JSEventLoopWatchdog.js +10 -15
- package/Libraries/Interaction/NativeFrameRateLogger.js +5 -16
- package/Libraries/Interaction/PanResponder.d.ts +202 -0
- package/Libraries/Interaction/PanResponder.js +26 -28
- package/Libraries/Interaction/TaskQueue.js +15 -16
- package/Libraries/Interaction/TouchHistoryMath.js +32 -29
- package/Libraries/JSInspector/InspectorAgent.js +4 -4
- package/Libraries/JSInspector/JSInspector.js +2 -5
- package/Libraries/JSInspector/NetworkAgent.js +12 -17
- package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +88 -39
- package/Libraries/Linking/Linking.d.ts +61 -0
- package/Libraries/Linking/Linking.js +50 -41
- package/Libraries/Linking/NativeIntentAndroid.js +13 -0
- package/Libraries/Linking/NativeLinkingManager.js +13 -0
- package/Libraries/Lists/FillRateHelper.js +6 -232
- package/Libraries/Lists/FlatList.d.ts +244 -0
- package/Libraries/Lists/FlatList.js +195 -128
- package/Libraries/Lists/SectionList.d.ts +267 -0
- package/Libraries/Lists/SectionList.js +38 -33
- package/Libraries/Lists/SectionListModern.js +249 -0
- package/Libraries/Lists/ViewabilityHelper.js +10 -327
- package/Libraries/Lists/VirtualizeUtils.js +6 -235
- package/Libraries/Lists/VirtualizedList.js +10 -2224
- package/Libraries/Lists/VirtualizedListContext.js +18 -0
- package/Libraries/Lists/VirtualizedSectionList.js +9 -565
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +4 -3
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +9 -9
- package/Libraries/LogBox/Data/LogBoxData.js +106 -75
- package/Libraries/LogBox/Data/LogBoxLog.js +125 -12
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +10 -9
- package/Libraries/LogBox/Data/parseLogBoxLog.js +289 -76
- package/Libraries/LogBox/LogBox.d.ts +28 -0
- package/Libraries/LogBox/LogBox.js +175 -90
- package/Libraries/LogBox/LogBoxInspectorContainer.js +7 -7
- package/Libraries/LogBox/LogBoxNotificationContainer.js +11 -8
- package/Libraries/LogBox/UI/AnsiHighlight.js +42 -24
- package/Libraries/LogBox/UI/LogBoxButton.js +6 -7
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/LogBox/UI/LogBoxInspector.js +13 -77
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +18 -11
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +173 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +9 -53
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +19 -79
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +113 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -7
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +16 -14
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +196 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +6 -10
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +118 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +19 -11
- package/Libraries/LogBox/UI/LogBoxMessage.js +100 -19
- package/Libraries/LogBox/UI/LogBoxNotification.js +20 -158
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
- package/Libraries/LogBox/UI/LogBoxStyle.js +1 -3
- package/Libraries/LogBox/UI/LogBoxStyle.win32.js +65 -0
- package/Libraries/Modal/Modal.d.ts +116 -0
- package/Libraries/Modal/Modal.js +168 -72
- package/Libraries/Modal/ModalInjection.js +15 -0
- package/Libraries/Modal/NativeModalManager.js +5 -14
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +4 -117
- package/Libraries/NativeComponent/BaseViewConfig.android.js +421 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +421 -0
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +413 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +144 -0
- package/Libraries/NativeComponent/ViewConfig.js +52 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +51 -0
- package/Libraries/NativeModules/specs/NativeDevMenu.js +5 -16
- package/Libraries/NativeModules/specs/NativeDevSettings.js +5 -26
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +5 -12
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +5 -41
- package/Libraries/NativeModules/specs/NativeLogBox.js +5 -13
- package/Libraries/NativeModules/specs/NativeRedBox.js +5 -13
- package/Libraries/NativeModules/specs/NativeSourceCode.js +5 -14
- package/Libraries/Network/FormData.js +21 -5
- package/Libraries/Network/NativeNetworkingAndroid.js +5 -30
- package/Libraries/Network/NativeNetworkingIOS.js +5 -30
- package/Libraries/Network/RCTNetworking.android.js +32 -20
- package/Libraries/Network/RCTNetworking.ios.js +22 -18
- package/Libraries/Network/RCTNetworking.win32.js +40 -69
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
- package/Libraries/Network/XHRInterceptor.js +66 -18
- package/Libraries/Network/XMLHttpRequest.js +107 -31
- package/Libraries/Network/convertRequestBody.js +4 -4
- package/Libraries/Network/fetch.js +2 -1
- package/Libraries/NewAppScreen/components/Colors.js +2 -3
- package/Libraries/NewAppScreen/components/DebugInstructions.js +9 -6
- package/Libraries/NewAppScreen/components/Header.js +38 -16
- package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +52 -27
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +5 -2
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/NewAppScreen/index.js +12 -6
- package/Libraries/Performance/Systrace.d.ts +66 -0
- package/Libraries/Performance/Systrace.js +116 -171
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +5 -52
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +163 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +64 -27
- package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.js +16 -22
- package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -0
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +20 -20
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -0
- package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
- package/Libraries/PersonaCoin/PersonaCoinTypes.js +24 -24
- package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -0
- package/Libraries/Pressability/HoverState.js +4 -4
- package/Libraries/Pressability/HoverState.win32.js +62 -0
- package/Libraries/Pressability/Pressability.js +244 -150
- package/Libraries/Pressability/Pressability.win32.js +1093 -0
- package/Libraries/Pressability/PressabilityDebug.js +31 -27
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
- package/Libraries/Pressability/PressabilityTypes.js +18 -0
- package/Libraries/Pressability/usePressability.js +28 -11
- package/Libraries/Promise.js +5 -35
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +5 -66
- package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +134 -83
- package/Libraries/QuirkSettings/CachingNativeQuirkSettings.js +30 -0
- package/Libraries/QuirkSettings/NativeQuirkSettings.js +17 -0
- package/Libraries/QuirkSettings/QuirkSettings.js +34 -0
- package/Libraries/QuirkSettings/Quirks.js +17 -0
- package/Libraries/ReactNative/AppContainer-dev.js +208 -0
- package/Libraries/ReactNative/AppContainer-prod.js +50 -0
- package/Libraries/ReactNative/AppContainer.js +13 -138
- package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
- package/Libraries/ReactNative/AppRegistry.js +127 -78
- package/Libraries/ReactNative/BridgelessUIManager.js +419 -0
- package/Libraries/ReactNative/DisplayMode.js +32 -0
- package/Libraries/ReactNative/FabricUIManager.js +116 -27
- package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -3
- package/Libraries/ReactNative/I18nManager.d.ts +25 -0
- package/Libraries/ReactNative/I18nManager.js +17 -12
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +5 -13
- package/Libraries/ReactNative/NativeI18nManager.js +5 -18
- package/Libraries/ReactNative/NativeUIManager.js +5 -114
- package/Libraries/ReactNative/PaperUIManager.js +79 -52
- package/Libraries/ReactNative/PaperUIManager.win32.js +210 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +100 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +31 -0
- package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
- package/Libraries/ReactNative/RendererImplementation.js +164 -0
- package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
- package/Libraries/ReactNative/RendererProxy.js +26 -0
- package/Libraries/ReactNative/RootTag.d.ts +13 -0
- package/Libraries/ReactNative/RootTag.js +27 -0
- package/Libraries/ReactNative/UIManager.d.ts +113 -0
- package/Libraries/ReactNative/UIManager.js +178 -24
- package/Libraries/ReactNative/UIManagerProperties.js +3 -8
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +33 -0
- package/Libraries/ReactNative/getNativeComponentAttributes.js +51 -25
- package/Libraries/ReactNative/renderApplication.js +72 -23
- package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
- package/Libraries/ReactNative/requireNativeComponent.js +9 -6
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +66 -11
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +16297 -19948
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +8563 -5501
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +9018 -5570
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16537 -20505
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +8466 -5422
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +9225 -5791
- package/Libraries/Renderer/shims/ReactFabric.js +10 -9
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +5 -3
- package/Libraries/Renderer/shims/ReactNative.js +6 -5
- package/Libraries/Renderer/shims/ReactNativeTypes.js +231 -85
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +27 -37
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +8 -7
- package/Libraries/Settings/NativeSettingsManager.js +5 -18
- package/Libraries/Settings/Settings.d.ts +18 -0
- package/Libraries/Settings/Settings.ios.js +7 -7
- package/Libraries/Settings/Settings.js +33 -0
- package/Libraries/Share/NativeShareModule.js +5 -16
- package/Libraries/Share/Share.d.ts +80 -0
- package/Libraries/Share/Share.js +33 -25
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +5 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +10 -11
- package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +52 -16
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +15 -5
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +11 -5
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +4 -4
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +2 -4
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +2 -2
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -3
- package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
- package/Libraries/StyleSheet/StyleSheet.js +49 -57
- package/Libraries/StyleSheet/StyleSheet.win32.js +50 -58
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +573 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +460 -132
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +11 -35
- package/Libraries/StyleSheet/flattenStyle.js +14 -9
- package/Libraries/StyleSheet/normalizeColor.js +11 -370
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +69 -0
- package/Libraries/StyleSheet/processAspectRatio.js +63 -0
- package/Libraries/StyleSheet/processBackgroundImage.js +361 -0
- package/Libraries/StyleSheet/processBoxShadow.js +209 -0
- package/Libraries/StyleSheet/processColor.d.ts +16 -0
- package/Libraries/StyleSheet/processColor.js +6 -8
- package/Libraries/StyleSheet/processColorArray.js +18 -7
- package/Libraries/StyleSheet/processFilter.js +321 -0
- package/Libraries/StyleSheet/processFontVariant.js +30 -0
- package/Libraries/StyleSheet/processTransform.js +131 -111
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/StyleSheet/splitLayoutProps.js +57 -49
- package/Libraries/Text/Text.d.ts +309 -0
- package/Libraries/Text/Text.js +505 -270
- package/Libraries/Text/Text.win32.js +577 -0
- package/Libraries/Text/TextAncestor.js +7 -2
- package/Libraries/Text/TextNativeComponent.js +82 -0
- package/Libraries/Text/TextNativeComponent.win32.js +117 -0
- package/Libraries/Text/TextProps.js +108 -30
- package/Libraries/Text/TextProps.win32.js +281 -0
- package/Libraries/TurboModule/RCTExport.d.ts +12 -0
- package/Libraries/TurboModule/RCTExport.js +3 -1
- package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +24 -16
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +5 -28
- package/Libraries/Types/CodegenTypes.js +9 -2
- package/Libraries/Types/CoreEventTypes.d.ts +259 -0
- package/Libraries/Types/CoreEventTypes.js +145 -10
- package/Libraries/Types/CoreEventTypes.win32.js +340 -0
- package/Libraries/Types/ReactDevToolsTypes.js +58 -0
- package/Libraries/Types/RootTagTypes.js +11 -0
- package/Libraries/Types/UIManagerJSInterface.js +16 -0
- package/Libraries/UTFSequence.js +6 -4
- package/Libraries/Utilities/Appearance.d.ts +53 -0
- package/Libraries/Utilities/Appearance.js +118 -63
- package/Libraries/Utilities/BackHandler.android.js +17 -37
- package/Libraries/Utilities/BackHandler.d.ts +34 -0
- package/Libraries/Utilities/BackHandler.ios.js +12 -102
- package/Libraries/Utilities/BackHandler.win32.js +96 -7
- package/Libraries/Utilities/DebugEnvironment.js +16 -0
- package/Libraries/Utilities/DevLoadingView.js +64 -0
- package/Libraries/Utilities/DevSettings.d.ts +32 -0
- package/Libraries/Utilities/DevSettings.js +55 -48
- package/Libraries/Utilities/DeviceInfo.js +1 -3
- package/Libraries/Utilities/DeviceInfo.win32.js +0 -2
- package/Libraries/Utilities/Dimensions.d.ts +79 -0
- package/Libraries/Utilities/Dimensions.js +30 -49
- package/Libraries/Utilities/Dimensions.win32.js +106 -18
- package/Libraries/Utilities/FeatureDetection.js +31 -0
- package/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
- package/Libraries/Utilities/FocusManager.win32.js +42 -0
- package/Libraries/Utilities/GlobalPerformanceLogger.js +4 -5
- package/Libraries/Utilities/HMRClient.js +102 -39
- package/Libraries/Utilities/HMRClientProdShim.js +2 -1
- package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/NativeAppearance.js +5 -28
- package/Libraries/Utilities/NativeDevLoadingView.js +5 -17
- package/Libraries/Utilities/NativeDeviceInfo.js +4 -40
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +5 -30
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +5 -26
- package/Libraries/Utilities/NativePlatformConstantsWin.js +4 -21
- package/Libraries/Utilities/PerformanceLoggerContext.js +17 -10
- package/Libraries/Utilities/PixelRatio.d.ts +64 -0
- package/Libraries/Utilities/PixelRatio.js +6 -6
- package/Libraries/Utilities/Platform.android.js +37 -16
- package/Libraries/Utilities/Platform.d.ts +106 -0
- package/Libraries/Utilities/Platform.flow.js +91 -0
- package/Libraries/Utilities/Platform.flow.win32.js +125 -0
- package/Libraries/Utilities/Platform.ios.js +39 -19
- package/Libraries/Utilities/Platform.win32.js +42 -15
- package/Libraries/Utilities/PolyfillFunctions.js +6 -6
- package/Libraries/Utilities/RCTLog.js +6 -5
- package/Libraries/Utilities/ReactNativeTestTools.js +36 -58
- package/Libraries/Utilities/SceneTracker.js +6 -5
- package/Libraries/Utilities/__mocks__/BackHandler.js +7 -12
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +2 -2
- package/Libraries/Utilities/binaryToBase64.js +6 -4
- package/Libraries/Utilities/codegenNativeCommands.js +6 -6
- package/Libraries/Utilities/codegenNativeComponent.js +25 -15
- package/Libraries/Utilities/createPerformanceLogger.js +259 -244
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +12 -6
- package/Libraries/Utilities/defineLazyObjectProperty.js +3 -3
- package/Libraries/Utilities/differ/deepDiffer.js +3 -3
- package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
- package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
- package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
- package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
- package/Libraries/Utilities/dismissKeyboard.js +1 -1
- package/Libraries/Utilities/infoLog.js +3 -2
- package/Libraries/Utilities/logError.js +2 -2
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +8 -8
- package/Libraries/Utilities/stringifyViewConfig.js +22 -0
- package/Libraries/Utilities/useColorScheme.js +10 -16
- package/Libraries/Utilities/useMergeRefs.js +59 -0
- package/Libraries/Utilities/useRefEffect.js +45 -0
- package/Libraries/Utilities/useWindowDimensions.js +15 -8
- package/Libraries/Utilities/warnOnce.js +3 -5
- package/Libraries/Vibration/NativeVibration.js +5 -17
- package/Libraries/Vibration/Vibration.d.ts +43 -0
- package/Libraries/Vibration/Vibration.js +16 -14
- package/Libraries/WebSocket/NativeWebSocketModule.js +5 -27
- package/Libraries/WebSocket/WebSocket.js +47 -27
- package/Libraries/WebSocket/WebSocketEvent.js +5 -2
- package/Libraries/WebSocket/WebSocketInterceptor.js +46 -27
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +6 -6
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +7 -7
- package/Libraries/__tests__/ButtonWin32-test.js +17 -0
- package/Libraries/platform-types.d.ts +25 -0
- package/Libraries/promiseRejectionTrackingOptions.js +72 -0
- package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
- package/Libraries/vendor/core/ErrorUtils.js +2 -2
- package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
- package/Libraries/vendor/emitter/EventEmitter.js +123 -193
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
- package/babel.config.js +3 -0
- package/flow/HermesInternalType.js +114 -0
- package/flow/Position.js +1 -1
- package/flow/Stringish.js +1 -1
- package/flow/console.js +1 -1
- package/flow/global.js +87 -0
- package/flow/jest.js +266 -168
- package/flow/react.js +15 -0
- package/index.js +365 -255
- package/index.win32.js +773 -42
- package/interface.js +9 -9
- package/jest/MockNativeMethods.js +1 -1
- package/jest/__tests__/setup-test.js +18 -0
- package/jest/assetFileTransformer.js +7 -5
- package/jest/local-setup.js +28 -0
- package/jest/mockComponent.js +28 -16
- package/jest/mockModal.js +32 -0
- package/jest/mockNativeComponent.js +40 -0
- package/jest/mockScrollView.js +35 -0
- package/jest/react-native-env.js +16 -0
- package/jest/renderer.js +29 -22
- package/jest/setup.js +194 -89
- package/jest-snapshot-resolver.js +2 -0
- package/jest.config.js +38 -0
- package/just-task.js +11 -53
- package/metro.config.js +5 -20
- package/metroShortPathAssetDataPlugin.js +15 -0
- package/overrides.json +321 -249
- package/package.json +88 -46
- package/react-native.config.js +2 -0
- package/rn-get-polyfills.js +3 -6
- package/saveAssetPlugin.js +45 -0
- package/src/private/animated/NativeAnimatedHelper.js +440 -0
- package/src/private/animated/NativeAnimatedHelper.win32.js +443 -0
- package/src/private/animated/NativeAnimatedValidation.js +64 -0
- package/src/private/animated/useAnimatedPropsMemo.js +356 -0
- package/src/private/components/HScrollViewNativeComponents.js +30 -0
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +32 -0
- package/src/private/components/VScrollViewNativeComponents.js +25 -0
- package/src/private/debugging/FuseboxSessionObserver.js +42 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +20 -0
- package/src/private/debugging/setUpFuseboxReactDevToolsDispatcher.js +114 -0
- package/src/private/devmenu/DevMenu.d.ts +20 -0
- package/src/private/devmenu/DevMenu.js +31 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +390 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +81 -0
- package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
- package/src/private/renderer/errorhandling/ErrorHandlers.js +126 -0
- package/src/private/setup/setUpDOM.js +36 -0
- package/src/private/setup/setUpIntersectionObserver.js +27 -0
- package/src/private/setup/setUpMutationObserver.js +31 -0
- package/src/private/setup/setUpPerformanceObserver.js +64 -0
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +147 -0
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
- package/src/private/specs/components/SwitchNativeComponent.js +61 -0
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +42 -0
- package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +48 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +70 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +56 -0
- package/src/private/specs/modules/NativeAlertManager.js +35 -0
- package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
- package/src/private/specs/modules/NativeAppState.js +33 -0
- package/src/private/specs/modules/NativeAppearance.js +30 -0
- package/src/private/specs/modules/NativeBlobModule.js +61 -0
- package/src/private/specs/modules/NativeBugReporting.js +20 -0
- package/src/private/specs/modules/NativeClipboard.js +21 -0
- package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
- package/src/private/specs/modules/NativeDevMenu.js +23 -0
- package/src/private/specs/modules/NativeDevSettings.js +34 -0
- package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
- package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
- package/src/private/specs/modules/NativeExceptionsManager.js +91 -0
- package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
- package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
- package/src/private/specs/modules/NativeI18nManager.js +28 -0
- package/src/private/specs/modules/NativeImageEditor.js +52 -0
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
- package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
- package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
- package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
- package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
- package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
- package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
- package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
- package/src/private/specs/modules/NativeLinkingManager.js +27 -0
- package/src/private/specs/modules/NativeLogBox.js +20 -0
- package/src/private/specs/modules/NativeModalManager.js +21 -0
- package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
- package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
- package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
- package/src/private/specs/modules/NativePlatformConstantsWin.js +44 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +103 -0
- package/src/private/specs/modules/NativeReactDevToolsSettingsManager.js +22 -0
- package/src/private/specs/modules/NativeRedBox.js +20 -0
- package/src/private/specs/modules/NativeSampleTurboModule.js +66 -0
- package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
- package/src/private/specs/modules/NativeSettingsManager.js +25 -0
- package/src/private/specs/modules/NativeShareModule.js +23 -0
- package/src/private/specs/modules/NativeSoundManager.js +22 -0
- package/src/private/specs/modules/NativeSourceCode.js +36 -0
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
- package/src/private/specs/modules/NativeTiming.js +26 -0
- package/src/private/specs/modules/NativeToastAndroid.js +38 -0
- package/src/private/specs/modules/NativeUIManager.js +111 -0
- package/src/private/specs/modules/NativeVibration.js +24 -0
- package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
- package/src/private/styles/composeStyles.js +27 -0
- package/src/private/webapis/dom/geometry/DOMRect.js +82 -0
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +188 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +230 -0
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +71 -0
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +361 -0
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
- package/src/private/webapis/dom/nodes/utilities/Traversal.js +54 -0
- package/src/private/webapis/dom/oldstylecollections/ArrayLikeUtils.js +46 -0
- package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +76 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +345 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +167 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +277 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +43 -0
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +186 -0
- package/src/private/webapis/mutationobserver/MutationObserverManager.js +227 -0
- package/src/private/webapis/mutationobserver/MutationRecord.js +82 -0
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +58 -0
- package/src/private/webapis/performance/EventTiming.js +145 -0
- package/src/private/webapis/performance/LongTasks.js +39 -0
- package/src/private/webapis/performance/MemoryInfo.js +54 -0
- package/src/private/webapis/performance/Performance.js +287 -0
- package/src/private/webapis/performance/PerformanceEntry.js +68 -0
- package/src/private/webapis/performance/PerformanceObserver.js +232 -0
- package/src/private/webapis/performance/RawPerformanceEntry.js +105 -0
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +91 -0
- package/src/private/webapis/performance/UserTiming.js +72 -0
- package/src/private/webapis/performance/Utilities.js +18 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +92 -0
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
- package/src-win/Libraries/Components/Button/ButtonWin32.Props.ts +45 -0
- package/src-win/Libraries/Components/Button/ButtonWin32.tsx +94 -0
- package/src-win/Libraries/Components/EnterString.win32.tsx +110 -0
- package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +185 -0
- package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +502 -0
- package/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
- package/src-win/Libraries/Components/Touchable/TouchableWin32.Props.tsx +46 -0
- package/src-win/Libraries/Components/Touchable/TouchableWin32.Types.tsx +137 -0
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +624 -0
- package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
- package/src-win/Libraries/Components/View/ViewWin32.d.ts +30 -0
- package/src-win/Libraries/Image/ImageTypes.ts +27 -0
- package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +22 -0
- package/src-win/Libraries/Image/Tests/img/dpitest.png +0 -0
- package/src-win/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
- package/src-win/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
- package/src-win/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
- package/src-win/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
- package/src-win/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
- package/src-win/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
- package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +13 -0
- package/src-win/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +17 -0
- package/src-win/Libraries/PersonaCoin/PersonaCoinTypes.ts +36 -0
- package/src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +38 -0
- package/src-win/Libraries/Text/Text.d.ts +309 -0
- package/src-win/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
- package/src-win/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
- package/src-win/Libraries/platform-types.d.ts +25 -0
- package/types/index.d.ts +219 -0
- package/types/modules/BatchedBridge.d.ts +32 -0
- package/types/modules/Codegen.d.ts +80 -0
- package/types/modules/Devtools.d.ts +32 -0
- package/types/modules/LaunchScreen.d.ts +18 -0
- package/types/modules/globals.d.ts +599 -0
- package/types/private/TimerMixin.d.ts +19 -0
- package/types/private/Utilities.d.ts +10 -0
- package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
- package/types/public/Insets.d.ts +15 -0
- package/types/public/ReactNativeRenderer.d.ts +144 -0
- package/types/public/ReactNativeTypes.d.ts +139 -0
- package/IntegrationTests/AsyncStorageTest.js +0 -217
- package/IntegrationTests/PropertiesUpdateTest.js +0 -29
- package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -92
- package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -91
- package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -108
- package/IntegrationTests/launchWebSocketServer.command +0 -18
- package/Libraries/Animated/examples/demo.html +0 -712
- package/Libraries/Animated/examples/pic1.jpg +0 -0
- package/Libraries/Animated/examples/pic2.jpg +0 -0
- package/Libraries/Animated/examples/pic3.jpg +0 -0
- package/Libraries/Animated/release/gulpfile.js +0 -155
- package/Libraries/Animated/src/Animated.js +0 -49
- package/Libraries/Animated/src/AnimatedEvent.js +0 -233
- package/Libraries/Animated/src/AnimatedImplementation.js +0 -712
- package/Libraries/Animated/src/AnimatedMock.js +0 -156
- package/Libraries/Animated/src/AnimatedWeb.js +0 -23
- package/Libraries/Animated/src/Easing.js +0 -252
- package/Libraries/Animated/src/NativeAnimatedHelper.js +0 -342
- package/Libraries/Animated/src/NativeAnimatedModule.js +0 -66
- package/Libraries/Animated/src/SpringConfig.js +0 -103
- package/Libraries/Animated/src/animations/Animation.js +0 -73
- package/Libraries/Animated/src/animations/DecayAnimation.js +0 -120
- package/Libraries/Animated/src/animations/SpringAnimation.js +0 -359
- package/Libraries/Animated/src/animations/TimingAnimation.js +0 -165
- package/Libraries/Animated/src/bezier.js +0 -153
- package/Libraries/Animated/src/components/AnimatedFlatList.js +0 -32
- package/Libraries/Animated/src/components/AnimatedImage.js +0 -25
- package/Libraries/Animated/src/components/AnimatedScrollView.js +0 -32
- package/Libraries/Animated/src/components/AnimatedSectionList.js +0 -32
- package/Libraries/Animated/src/components/AnimatedText.js +0 -25
- package/Libraries/Animated/src/components/AnimatedView.js +0 -23
- package/Libraries/Animated/src/createAnimatedComponent.js +0 -223
- package/Libraries/Animated/src/nodes/AnimatedAddition.js +0 -63
- package/Libraries/Animated/src/nodes/AnimatedDiffClamp.js +0 -71
- package/Libraries/Animated/src/nodes/AnimatedDivision.js +0 -68
- package/Libraries/Animated/src/nodes/AnimatedInterpolation.js +0 -373
- package/Libraries/Animated/src/nodes/AnimatedModulo.js +0 -62
- package/Libraries/Animated/src/nodes/AnimatedMultiplication.js +0 -63
- package/Libraries/Animated/src/nodes/AnimatedNode.js +0 -184
- package/Libraries/Animated/src/nodes/AnimatedProps.js +0 -176
- package/Libraries/Animated/src/nodes/AnimatedStyle.js +0 -127
- package/Libraries/Animated/src/nodes/AnimatedSubtraction.js +0 -63
- package/Libraries/Animated/src/nodes/AnimatedTracking.js +0 -102
- package/Libraries/Animated/src/nodes/AnimatedTransform.js +0 -121
- package/Libraries/Animated/src/nodes/AnimatedValue.js +0 -265
- package/Libraries/Animated/src/nodes/AnimatedValueXY.js +0 -226
- package/Libraries/Animated/src/nodes/AnimatedWithChildren.js +0 -87
- package/Libraries/Animated/src/polyfills/InteractionManager.js +0 -15
- package/Libraries/Animated/src/polyfills/Set.js +0 -26
- package/Libraries/Animated/src/polyfills/flattenStyle.js +0 -13
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -162
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -271
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.win32.js +0 -33
- package/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js +0 -23
- package/Libraries/Components/AppleTV/TVEventHandler.js +0 -52
- package/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js +0 -74
- package/Libraries/Components/CheckBox/CheckBox.android.js +0 -228
- package/Libraries/Components/CheckBox/CheckBox.ios.js +0 -13
- package/Libraries/Components/CheckBox/CheckBox.win32.js +0 -12
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -46
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -189
- package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -46
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -22
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +0 -12
- package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +0 -13
- package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
- package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +0 -13
- package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
- package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -68
- package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -68
- package/Libraries/Components/Picker/Picker.js +0 -159
- package/Libraries/Components/Picker/Picker.win32.d.ts +0 -1
- package/Libraries/Components/Picker/Picker.win32.js +0 -80
- package/Libraries/Components/Picker/PickerAndroid.android.js +0 -146
- package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
- package/Libraries/Components/Picker/PickerAndroid.js +0 -12
- package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
- package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
- package/Libraries/Components/Picker/PickerIOS.js +0 -14
- package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -63
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +0 -12
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -46
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -77
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -8
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -35
- package/Libraries/Components/ScrollResponder.js +0 -773
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -77
- package/Libraries/Components/ScrollView/__mocks__/ScrollViewMock.js +0 -39
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -46
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -46
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -46
- package/Libraries/Components/Slider/Slider.js +0 -276
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -60
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -22
- package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -26
- package/Libraries/Components/Text/TextWin32.Props.js +0 -3
- package/Libraries/Components/Text/TextWin32.d.ts +0 -6
- package/Libraries/Components/Text/TextWin32.js +0 -41
- package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -84
- package/Libraries/Components/TextInput/RCTSinglelineTextInputViewConfig.js +0 -134
- package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
- package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
- package/Libraries/Components/TextInput/TextInput.win32.d.ts +0 -68
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +0 -39
- package/Libraries/Components/Touchable/TVTouchable.js +0 -55
- package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.d.ts +0 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.js +0 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.d.ts +0 -16
- package/Libraries/Components/Touchable/__mocks__/ensureComponentIsNative.js +0 -12
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -347
- package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -384
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -74
- package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -8
- package/Libraries/Components/View/Tests/ViewWin32Test.js +0 -235
- package/Libraries/Components/View/ViewWin32.Props.d.ts +0 -149
- package/Libraries/Components/View/ViewWin32.Props.js +0 -11
- package/Libraries/Core/setUpSystrace.js +0 -21
- package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
- package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
- package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.js +0 -82
- package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
- package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
- package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
- package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
- package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
- package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
- package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
- package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
- package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
- package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
- package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
- package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -44
- package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
- package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
- package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
- package/Libraries/HeapCapture/HeapCapture.js +0 -31
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -20
- package/Libraries/Image/ImagePickerIOS.js +0 -105
- package/Libraries/Image/ImageViewViewConfig.js +0 -68
- package/Libraries/Image/NativeImagePickerIOS.js +0 -40
- package/Libraries/Image/assetPathUtils.js +0 -91
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -62
- package/Libraries/Interaction/InteractionMixin.js +0 -55
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Linking/NativeLinking.js +0 -41
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -21
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -20
- package/Libraries/Performance/PureComponentDebug.js +0 -73
- package/Libraries/Performance/QuickPerformanceLogger.js +0 -101
- package/Libraries/Performance/SamplingProfiler.js +0 -39
- package/Libraries/ReactNative/DummyUIManager.js +0 -123
- package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
- package/Libraries/ReactNative/RootTagContext.js +0 -15
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -20493
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -7440
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -7718
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -21091
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -7677
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -7955
- package/Libraries/Renderer/shims/ReactTypes.js +0 -192
- package/Libraries/Settings/Settings.android.js +0 -33
- package/Libraries/Storage/AsyncStorage.js +0 -360
- package/Libraries/Storage/NativeAsyncStorage.js +0 -44
- package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.android.js +0 -18
- package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.js +0 -17
- package/Libraries/StyleSheet/StyleSheetValidation.js +0 -97
- package/Libraries/StyleSheet/StyleSheetValidation.win32.js +0 -102
- package/Libraries/Utilities/BackHandler.win32.d.ts +0 -2
- package/Libraries/Utilities/JSDevSupportModule.js +0 -40
- package/Libraries/Utilities/LoadingView.android.js +0 -29
- package/Libraries/Utilities/LoadingView.ios.js +0 -40
- package/Libraries/Utilities/LoadingView.js +0 -16
- package/Libraries/Utilities/MatrixMath.js +0 -752
- package/Libraries/Utilities/NativeJSDevSupport.js +0 -25
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -211
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -38
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -134
- package/Libraries/polyfills/Object.es7.js +0 -58
- package/Libraries/polyfills/console.js +0 -641
- package/Libraries/polyfills/error-guard.js +0 -115
- package/Libraries/promiseRejectionIsError.js +0 -24
- package/Libraries/vendor/emitter/EmitterSubscription.js +0 -59
- package/Libraries/vendor/emitter/EventSubscription.js +0 -40
- package/Libraries/vendor/emitter/EventSubscriptionVendor.js +0 -101
- package/RNTester/APIExamples/AccessibilityExampleWin32.d.ts +0 -8
- package/RNTester/APIExamples/AccessibilityExampleWin32.js +0 -262
- package/RNTester/APIExamples/ThemingModuleAPI.d.ts +0 -8
- package/RNTester/APIExamples/ThemingModuleAPI.js +0 -80
- package/RNTester/js/RNTesterApp.android.js +0 -363
- package/RNTester/js/RNTesterApp.ios.js +0 -272
- package/RNTester/js/RNTesterApp.win32.js +0 -285
- package/RNTester/js/assets/bandaged.png +0 -0
- package/RNTester/js/assets/bunny.png +0 -0
- package/RNTester/js/assets/call.png +0 -0
- package/RNTester/js/assets/dislike.png +0 -0
- package/RNTester/js/assets/fist.png +0 -0
- package/RNTester/js/assets/flowers.png +0 -0
- package/RNTester/js/assets/flux@3x.png +0 -0
- package/RNTester/js/assets/hawk.png +0 -0
- package/RNTester/js/assets/heart.png +0 -0
- package/RNTester/js/assets/helloworld.html +0 -25
- package/RNTester/js/assets/imageMask.png +0 -0
- package/RNTester/js/assets/like.png +0 -0
- package/RNTester/js/assets/liking.png +0 -0
- package/RNTester/js/assets/messagingtest.html +0 -28
- package/RNTester/js/assets/party.png +0 -0
- package/RNTester/js/assets/poke.png +0 -0
- package/RNTester/js/assets/relay@3x.png +0 -0
- package/RNTester/js/assets/slider-left.png +0 -0
- package/RNTester/js/assets/slider-left@2x.png +0 -0
- package/RNTester/js/assets/slider-right.png +0 -0
- package/RNTester/js/assets/slider-right@2x.png +0 -0
- package/RNTester/js/assets/slider.png +0 -0
- package/RNTester/js/assets/slider@2x.png +0 -0
- package/RNTester/js/assets/superlike.png +0 -0
- package/RNTester/js/assets/trees.jpg +0 -0
- package/RNTester/js/assets/tumblr_mfqekpMktw1rn90umo1_500.gif +0 -0
- package/RNTester/js/assets/uie_comment_highlighted@2x.png +0 -0
- package/RNTester/js/assets/uie_comment_normal@2x.png +0 -0
- package/RNTester/js/assets/uie_thumb_big.png +0 -0
- package/RNTester/js/assets/uie_thumb_normal@2x.png +0 -0
- package/RNTester/js/assets/uie_thumb_selected@2x.png +0 -0
- package/RNTester/js/assets/victory.png +0 -0
- package/RNTester/js/components/ListExampleShared.js +0 -377
- package/RNTester/js/components/ListExampleShared.win32.js +0 -384
- package/RNTester/js/components/RNTesterBlock.js +0 -105
- package/RNTester/js/components/RNTesterButton.js +0 -50
- package/RNTester/js/components/RNTesterExampleContainer.js +0 -80
- package/RNTester/js/components/RNTesterExampleFilter.js +0 -120
- package/RNTester/js/components/RNTesterExampleFilter.win32.js +0 -120
- package/RNTester/js/components/RNTesterExampleList.js +0 -254
- package/RNTester/js/components/RNTesterPage.js +0 -76
- package/RNTester/js/components/RNTesterSettingSwitchRow.js +0 -60
- package/RNTester/js/components/RNTesterTheme.js +0 -90
- package/RNTester/js/components/RNTesterTitle.js +0 -58
- package/RNTester/js/components/TextInlineView.js +0 -207
- package/RNTester/js/components/TextLegend.js +0 -248
- package/RNTester/js/components/createExamplePage.js +0 -31
- package/RNTester/js/examples/Accessibility/AccessibilityAndroidExample.android.js +0 -177
- package/RNTester/js/examples/Accessibility/AccessibilityExample.js +0 -792
- package/RNTester/js/examples/Accessibility/AccessibilityIOSExample.js +0 -72
- package/RNTester/js/examples/Accessibility/check.png +0 -0
- package/RNTester/js/examples/Accessibility/mixed.png +0 -0
- package/RNTester/js/examples/Accessibility/uncheck.png +0 -0
- package/RNTester/js/examples/ActionSheetIOS/ActionSheetIOSExample.js +0 -342
- package/RNTester/js/examples/ActivityIndicator/ActivityIndicatorExample.js +0 -162
- package/RNTester/js/examples/Alert/AlertExample.js +0 -158
- package/RNTester/js/examples/Alert/AlertIOSExample.js +0 -204
- package/RNTester/js/examples/Animated/AnimatedExample.js +0 -347
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExApp.js +0 -407
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExBobble.js +0 -171
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExChained.js +0 -120
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExScroll.js +0 -124
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSet.js +0 -149
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSlides.md +0 -107
- package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExTilt.js +0 -154
- package/RNTester/js/examples/AppState/AppStateExample.js +0 -106
- package/RNTester/js/examples/Appearance/AppearanceExample.js +0 -219
- package/RNTester/js/examples/AsyncStorage/AsyncStorageExample.js +0 -103
- package/RNTester/js/examples/Border/BorderExample.js +0 -301
- package/RNTester/js/examples/BoxShadow/BoxShadowExample.js +0 -100
- package/RNTester/js/examples/Button/ButtonExample.js +0 -127
- package/RNTester/js/examples/CheckBox/CheckBoxExample.js +0 -148
- package/RNTester/js/examples/Clipboard/ClipboardExample.js +0 -68
- package/RNTester/js/examples/ColorGradientWin32Example.js +0 -109
- package/RNTester/js/examples/Crash/CrashExample.js +0 -52
- package/RNTester/js/examples/DatePicker/DatePickerAndroidExample.js +0 -170
- package/RNTester/js/examples/DatePicker/DatePickerIOSExample.js +0 -150
- package/RNTester/js/examples/DevSettings/DevSettingsExample.js +0 -47
- package/RNTester/js/examples/Dimensions/DimensionsExample.js +0 -68
- package/RNTester/js/examples/FlatList/FlatListExample.js +0 -287
- package/RNTester/js/examples/Image/ImageCapInsetsExample.js +0 -68
- package/RNTester/js/examples/Image/ImageExample.js +0 -955
- package/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +0 -121
- package/RNTester/js/examples/JSResponderHandlerExample/JSResponderHandlerExample.js +0 -77
- package/RNTester/js/examples/KeyboardAvoidingView/KeyboardAvoidingViewExample.js +0 -120
- package/RNTester/js/examples/Layout/LayoutAnimationExample.js +0 -221
- package/RNTester/js/examples/Layout/LayoutEventsExample.js +0 -165
- package/RNTester/js/examples/Layout/LayoutExample.js +0 -206
- package/RNTester/js/examples/Linking/LinkingExample.js +0 -128
- package/RNTester/js/examples/MaskedView/MaskedViewExample.js +0 -236
- package/RNTester/js/examples/Modal/ModalExample.js +0 -283
- package/RNTester/js/examples/MultiColumn/MultiColumnExample.js +0 -189
- package/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +0 -702
- package/RNTester/js/examples/NewAppScreen/NewAppScreenExample.js +0 -77
- package/RNTester/js/examples/OrientationChange/OrientationChangeExample.js +0 -66
- package/RNTester/js/examples/PanResponder/PanResponderExample.js +0 -154
- package/RNTester/js/examples/PermissionsAndroid/PermissionsExample.js +0 -130
- package/RNTester/js/examples/Picker/PickerExample.js +0 -220
- package/RNTester/js/examples/Picker/PickerIOSExample.js +0 -190
- package/RNTester/js/examples/PlatformColor/PlatformColorExample.js +0 -355
- package/RNTester/js/examples/PointerEvents/PointerEventsExample.js +0 -240
- package/RNTester/js/examples/Pressable/PressableExample.js +0 -426
- package/RNTester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js +0 -94
- package/RNTester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js +0 -103
- package/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +0 -267
- package/RNTester/js/examples/RCTRootView/RCTRootViewIOSExample.js +0 -95
- package/RNTester/js/examples/RTL/RTLExample.js +0 -747
- package/RNTester/js/examples/RefreshControl/RefreshControlExample.js +0 -127
- package/RNTester/js/examples/RootViewSizeFlexibilityExample/RootViewSizeFlexibilityExampleApp.js +0 -68
- package/RNTester/js/examples/SafeAreaView/SafeAreaViewExample.js +0 -137
- package/RNTester/js/examples/ScrollView/ScrollViewAnimatedExample.js +0 -107
- package/RNTester/js/examples/ScrollView/ScrollViewExample.js +0 -346
- package/RNTester/js/examples/ScrollView/ScrollViewSimpleExample.js +0 -105
- package/RNTester/js/examples/SectionList/SectionListExample.js +0 -301
- package/RNTester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js +0 -183
- package/RNTester/js/examples/SetPropertiesExample/SetPropertiesExampleApp.js +0 -34
- package/RNTester/js/examples/Share/ShareExample.js +0 -124
- package/RNTester/js/examples/Slider/SliderExample.js +0 -136
- package/RNTester/js/examples/Snapshot/SnapshotExample.js +0 -69
- package/RNTester/js/examples/Snapshot/SnapshotViewIOS.android.js +0 -12
- package/RNTester/js/examples/Snapshot/SnapshotViewIOS.ios.js +0 -67
- package/RNTester/js/examples/StatusBar/StatusBarExample.js +0 -522
- package/RNTester/js/examples/Switch/SwitchExample.js +0 -239
- package/RNTester/js/examples/TVEventHandler/TVEventHandlerExample.js +0 -88
- package/RNTester/js/examples/Text/TextExample.android.js +0 -864
- package/RNTester/js/examples/Text/TextExample.ios.js +0 -1153
- package/RNTester/js/examples/TextInput/TextInputExample.android.js +0 -424
- package/RNTester/js/examples/TextInput/TextInputExample.ios.js +0 -710
- package/RNTester/js/examples/TextInput/TextInputSharedExamples.js +0 -618
- package/RNTester/js/examples/Timer/TimerExample.js +0 -373
- package/RNTester/js/examples/ToastAndroid/ToastAndroidExample.android.js +0 -136
- package/RNTester/js/examples/Touchable/TouchableExample.js +0 -664
- package/RNTester/js/examples/Transform/TransformExample.js +0 -336
- package/RNTester/js/examples/TransparentHitTest/TransparentHitTestExample.js +0 -50
- package/RNTester/js/examples/TurboModule/SampleTurboModuleExample.js +0 -190
- package/RNTester/js/examples/TurboModule/TurboModuleExample.js +0 -26
- package/RNTester/js/examples/Vibration/VibrationExample.js +0 -127
- package/RNTester/js/examples/View/ViewExample.js +0 -471
- package/RNTester/js/examples/WebSocket/WebSocketExample.js +0 -356
- package/RNTester/js/examples/WebSocket/http_test_server.js +0 -33
- package/RNTester/js/examples/WebSocket/websocket_test_server.js +0 -46
- package/RNTester/js/examples/XHR/XHRExample.js +0 -62
- package/RNTester/js/examples/XHR/XHRExampleAbortController.js +0 -58
- package/RNTester/js/examples/XHR/XHRExampleBinaryUpload.js +0 -149
- package/RNTester/js/examples/XHR/XHRExampleDownload.js +0 -242
- package/RNTester/js/examples/XHR/XHRExampleFetch.js +0 -133
- package/RNTester/js/examples/XHR/XHRExampleHeaders.js +0 -114
- package/RNTester/js/examples/XHR/XHRExampleOnTimeOut.js +0 -99
- package/RNTester/js/types/RNTesterTypes.js +0 -47
- package/RNTester/js/utils/RNTesterActions.js +0 -53
- package/RNTester/js/utils/RNTesterList.android.js +0 -257
- package/RNTester/js/utils/RNTesterList.ios.js +0 -366
- package/RNTester/js/utils/RNTesterList.win32.js +0 -240
- package/RNTester/js/utils/RNTesterNavigationReducer.js +0 -49
- package/RNTester/js/utils/RNTesterStatePersister.js +0 -86
- package/RNTester/js/utils/URIActionMap.js +0 -48
- package/api-extractor.json +0 -25
- package/demo/DocPagePropsList.d.ts +0 -18
- package/demo/DocPagePropsList.js +0 -7
- package/demo/DocPagePropsList.js.map +0 -1
- package/docs/api/index.md +0 -12
- package/docs/api/react-native-win32.accessibilityactionevent.md +0 -13
- package/docs/api/react-native-win32.accessibilityactioninfo.md +0 -14
- package/docs/api/react-native-win32.accessibilityactionname.md +0 -11
- package/docs/api/react-native-win32.accessibilityannotationinfo.md +0 -16
- package/docs/api/react-native-win32.accessibilitystate.md +0 -14
- package/docs/api/react-native-win32.annotationtype.md +0 -11
- package/docs/api/react-native-win32.ariarole.md +0 -11
- package/docs/api/react-native-win32.basepropswin32.md +0 -17
- package/docs/api/react-native-win32.buttonwin32._constructor_.md +0 -20
- package/docs/api/react-native-win32.buttonwin32.md +0 -27
- package/docs/api/react-native-win32.buttonwin32.render.md +0 -15
- package/docs/api/react-native-win32.buttonwin32omitstyles.md +0 -11
- package/docs/api/react-native-win32.colorgradientwin32.md +0 -15
- package/docs/api/react-native-win32.cursor.md +0 -11
- package/docs/api/react-native-win32.eventphase.md +0 -21
- package/docs/api/react-native-win32.gradientcolorstop.md +0 -16
- package/docs/api/react-native-win32.gradientcolorvaluewin32.md +0 -16
- package/docs/api/react-native-win32.ibuttonwin32props.md +0 -25
- package/docs/api/react-native-win32.ibuttonwin32props.onblur.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.onfocus.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.onmouseenter.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.onmouseleave.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.ontouchend.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.ontouchstart.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32props.style.md +0 -13
- package/docs/api/react-native-win32.ibuttonwin32style.md +0 -13
- package/docs/api/react-native-win32.ichildasfunction.md +0 -13
- package/docs/api/react-native-win32.idimensions.height.md +0 -11
- package/docs/api/react-native-win32.idimensions.md +0 -21
- package/docs/api/react-native-win32.idimensions.width.md +0 -11
- package/docs/api/react-native-win32.ihandledkeyboardevent.md +0 -11
- package/docs/api/react-native-win32.ikeyboardevent.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.altkey.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.ctrlkey.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.eventphase.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.key.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.md +0 -23
- package/docs/api/react-native-win32.inativekeyboardevent.metakey.md +0 -11
- package/docs/api/react-native-win32.inativekeyboardevent.shiftkey.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.brandiconsource.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.color.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.disabled.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.displayname.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.emailaddress.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.initials.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.md +0 -29
- package/docs/api/react-native-win32.ipersonacoinprops.onerror.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.onload.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.presence.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.size.md +0 -11
- package/docs/api/react-native-win32.ipersonacoinprops.source.md +0 -11
- package/docs/api/react-native-win32.iposition.left.md +0 -11
- package/docs/api/react-native-win32.iposition.md +0 -21
- package/docs/api/react-native-win32.iposition.top.md +0 -11
- package/docs/api/react-native-win32.ipressevent.md +0 -24
- package/docs/api/react-native-win32.ipressinlocation.locationx.md +0 -11
- package/docs/api/react-native-win32.ipressinlocation.locationy.md +0 -11
- package/docs/api/react-native-win32.ipressinlocation.md +0 -23
- package/docs/api/react-native-win32.ipressinlocation.pagex.md +0 -11
- package/docs/api/react-native-win32.ipressinlocation.pagey.md +0 -11
- package/docs/api/react-native-win32.irenderchild.md +0 -13
- package/docs/api/react-native-win32.irenderstyle.md +0 -13
- package/docs/api/react-native-win32.irespondersyntheticevent.md +0 -21
- package/docs/api/react-native-win32.irespondersyntheticevent.touchhistory.md +0 -16
- package/docs/api/react-native-win32.isignal.md +0 -13
- package/docs/api/react-native-win32.istate.md +0 -13
- package/docs/api/react-native-win32.istateconditions.md +0 -15
- package/docs/api/react-native-win32.itextwin32props.md +0 -20
- package/docs/api/react-native-win32.itextwin32props.textstyle.md +0 -25
- package/docs/api/react-native-win32.itextwin32props.tooltip.md +0 -13
- package/docs/api/react-native-win32.itouchablewin32props.children.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.disabled.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.filterkeys.md +0 -13
- package/docs/api/react-native-win32.itouchablewin32props.md +0 -36
- package/docs/api/react-native-win32.itouchablewin32props.onlongpress.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.rejectrespondertermination.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.renderstyle.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablegethighlightdelayms.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablegethitslop.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablegetlongpressdelayms.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressoutdelayms.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressrectoffset.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressin.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressout.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypress.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypressdown.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandlelongpress.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchablehandlepress.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32props.touchsounddisabled.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32state.isfocused.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32state.ishovered.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32state.ispressed.md +0 -11
- package/docs/api/react-native-win32.itouchablewin32state.md +0 -20
- package/docs/api/react-native-win32.itouchinfo.currentpagex.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.currentpagey.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.currenttimestamp.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.md +0 -29
- package/docs/api/react-native-win32.itouchinfo.previouspagex.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.previouspagey.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.previoustimestamp.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.startpagex.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.startpagey.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.starttimestamp.md +0 -11
- package/docs/api/react-native-win32.itouchinfo.touchactive.md +0 -11
- package/docs/api/react-native-win32.itransitions.md +0 -15
- package/docs/api/react-native-win32.iviewwin32.focus.md +0 -11
- package/docs/api/react-native-win32.iviewwin32.md +0 -18
- package/docs/api/react-native-win32.iviewwin32props.acceptskeyboardfocus.md +0 -16
- package/docs/api/react-native-win32.iviewwin32props.accessibilityactions.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.accessibilityannotation.md +0 -15
- package/docs/api/react-native-win32.iviewwin32props.accessibilitylevel.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.accessibilitypositioninset.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.accessibilitysetsize.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.animationclass.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.children.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.cursor.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.focusable.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.keydownevents.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.keyupevents.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.md +0 -44
- package/docs/api/react-native-win32.iviewwin32props.onblur.md +0 -15
- package/docs/api/react-native-win32.iviewwin32props.onblurcapture.md +0 -15
- package/docs/api/react-native-win32.iviewwin32props.onfocus.md +0 -15
- package/docs/api/react-native-win32.iviewwin32props.onfocuscapture.md +0 -15
- package/docs/api/react-native-win32.iviewwin32props.onkeydown.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.onkeydowncapture.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.onkeyup.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.onkeyupcapture.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.onmouseenter.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.onmouseleave.md +0 -11
- package/docs/api/react-native-win32.iviewwin32props.tooltip.md +0 -13
- package/docs/api/react-native-win32.iviewwin32props.type.md +0 -11
- package/docs/api/react-native-win32.md +0 -85
- package/docs/api/react-native-win32.omittedaccessibilitypropswin32.md +0 -15
- package/docs/api/react-native-win32.personacoin.md +0 -11
- package/docs/api/react-native-win32.personacoinpresence.md +0 -25
- package/docs/api/react-native-win32.personacoinsize.md +0 -23
- package/docs/api/react-native-win32.sharedaccessibilitypropsiosandwin32.md +0 -13
- package/docs/api/react-native-win32.textstyle.md +0 -13
- package/docs/api/react-native-win32.textwin32._constructor_.md +0 -20
- package/docs/api/react-native-win32.textwin32.md +0 -25
- package/docs/api/react-native-win32.textwin32.render.md +0 -15
- package/docs/api/react-native-win32.textwin32omittypes.md +0 -11
- package/docs/api/react-native-win32.touchablewin32._constructor_.md +0 -20
- package/docs/api/react-native-win32.touchablewin32.componentwillunmount.md +0 -15
- package/docs/api/react-native-win32.touchablewin32.focus.md +0 -11
- package/docs/api/react-native-win32.touchablewin32.md +0 -34
- package/docs/api/react-native-win32.touchablewin32.render.md +0 -15
- package/docs/api/react-native-win32.usefrom.md +0 -13
- package/docs/api/react-native-win32.viewwin32.md +0 -11
- package/docs/api/react-native-win32.viewwin32omittypes.md +0 -11
- package/etc/react-native-win32.api.md +0 -481
- package/flow/Promise.js +0 -47
- package/flow/fbjs.js +0 -258
- package/flow/use-subscription.js +0 -19
- package/jest/preprocessor.js +0 -120
- package/typings-index.d.ts +0 -20
- package/typings-index.js +0 -40
|
@@ -1,54 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @flow
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const Text = require('../../Text/Text');
|
|
19
|
-
const TextAncestor = require('../../Text/TextAncestor');
|
|
20
|
-
const TextInputState = require('./TextInputState');
|
|
21
|
-
const TouchableWithoutFeedback = require('../Touchable/TouchableWithoutFeedback');
|
|
22
|
-
|
|
23
|
-
const invariant = require('invariant');
|
|
24
|
-
const nullthrows = require('nullthrows');
|
|
25
|
-
const setAndForwardRef = require('../../Utilities/setAndForwardRef');
|
|
26
|
-
|
|
27
|
-
import type {TextStyleProp, ViewStyleProp} from '../../StyleSheet/StyleSheet';
|
|
28
|
-
import type {ColorValue} from '../../StyleSheet/StyleSheetTypes';
|
|
11
|
+
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
|
+
import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
|
|
13
|
+
import type {
|
|
14
|
+
PressEvent,
|
|
15
|
+
ScrollEvent,
|
|
16
|
+
SyntheticEvent,
|
|
17
|
+
} from '../../Types/CoreEventTypes';
|
|
29
18
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
30
|
-
import type {
|
|
31
|
-
|
|
32
|
-
import
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
import type {TextInputType} from './TextInput.flow';
|
|
20
|
+
|
|
21
|
+
import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
22
|
+
import usePressability from '../../Pressability/usePressability';
|
|
23
|
+
import flattenStyle from '../../StyleSheet/flattenStyle';
|
|
24
|
+
import StyleSheet, {
|
|
25
|
+
type ColorValue,
|
|
26
|
+
type TextStyleProp,
|
|
27
|
+
type ViewStyleProp,
|
|
28
|
+
} from '../../StyleSheet/StyleSheet';
|
|
29
|
+
import Text from '../../Text/Text';
|
|
30
|
+
import TextAncestor from '../../Text/TextAncestor';
|
|
31
|
+
import Platform from '../../Utilities/Platform';
|
|
32
|
+
import useMergeRefs from '../../Utilities/useMergeRefs';
|
|
33
|
+
import TextInputState from './TextInputState';
|
|
34
|
+
import invariant from 'invariant';
|
|
35
|
+
import nullthrows from 'nullthrows';
|
|
36
|
+
import * as React from 'react';
|
|
37
|
+
import {useCallback, useLayoutEffect, useRef, useState} from 'react';
|
|
35
38
|
|
|
36
39
|
type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
|
|
40
|
+
type TextInputInstance = HostInstance & {
|
|
41
|
+
+clear: () => void,
|
|
42
|
+
+isFocused: () => boolean,
|
|
43
|
+
+getNativeRef: () => ?HostInstance,
|
|
44
|
+
+setSelection: (start: number, end: number) => void,
|
|
45
|
+
};
|
|
37
46
|
|
|
38
47
|
let AndroidTextInput;
|
|
39
48
|
let AndroidTextInputCommands;
|
|
40
|
-
let RCTMultilineTextInputView;
|
|
41
49
|
let RCTSinglelineTextInputView;
|
|
50
|
+
let RCTSinglelineTextInputNativeCommands;
|
|
51
|
+
let RCTMultilineTextInputView;
|
|
52
|
+
let RCTMultilineTextInputNativeCommands;
|
|
42
53
|
|
|
43
54
|
if (Platform.OS === 'android') {
|
|
44
55
|
AndroidTextInput = require('./AndroidTextInputNativeComponent').default;
|
|
45
|
-
AndroidTextInputCommands =
|
|
46
|
-
.Commands;
|
|
56
|
+
AndroidTextInputCommands =
|
|
57
|
+
require('./AndroidTextInputNativeComponent').Commands;
|
|
47
58
|
} else if (Platform.OS === 'ios') {
|
|
48
|
-
|
|
49
|
-
.default;
|
|
50
|
-
|
|
51
|
-
.
|
|
59
|
+
RCTSinglelineTextInputView =
|
|
60
|
+
require('./RCTSingelineTextInputNativeComponent').default;
|
|
61
|
+
RCTSinglelineTextInputNativeCommands =
|
|
62
|
+
require('./RCTSingelineTextInputNativeComponent').Commands;
|
|
63
|
+
RCTMultilineTextInputView =
|
|
64
|
+
require('./RCTMultilineTextInputNativeComponent').default;
|
|
65
|
+
RCTMultilineTextInputNativeCommands =
|
|
66
|
+
require('./RCTMultilineTextInputNativeComponent').Commands;
|
|
52
67
|
}
|
|
53
68
|
|
|
54
69
|
export type ChangeEvent = SyntheticEvent<
|
|
@@ -124,6 +139,9 @@ type DataDetectorTypesType =
|
|
|
124
139
|
| 'link'
|
|
125
140
|
| 'address'
|
|
126
141
|
| 'calendarEvent'
|
|
142
|
+
| 'trackingNumber'
|
|
143
|
+
| 'flightNumber'
|
|
144
|
+
| 'lookupSuggestion'
|
|
127
145
|
| 'none'
|
|
128
146
|
| 'all';
|
|
129
147
|
|
|
@@ -135,10 +153,10 @@ export type KeyboardType =
|
|
|
135
153
|
| 'phone-pad'
|
|
136
154
|
| 'number-pad'
|
|
137
155
|
| 'decimal-pad'
|
|
156
|
+
| 'url'
|
|
138
157
|
// iOS-only
|
|
139
158
|
| 'ascii-capable'
|
|
140
159
|
| 'numbers-and-punctuation'
|
|
141
|
-
| 'url'
|
|
142
160
|
| 'name-phone-pad'
|
|
143
161
|
| 'twitter'
|
|
144
162
|
| 'web-search'
|
|
@@ -147,6 +165,16 @@ export type KeyboardType =
|
|
|
147
165
|
// Android-only
|
|
148
166
|
| 'visible-password';
|
|
149
167
|
|
|
168
|
+
export type InputMode =
|
|
169
|
+
| 'none'
|
|
170
|
+
| 'text'
|
|
171
|
+
| 'decimal'
|
|
172
|
+
| 'numeric'
|
|
173
|
+
| 'tel'
|
|
174
|
+
| 'search'
|
|
175
|
+
| 'email'
|
|
176
|
+
| 'url';
|
|
177
|
+
|
|
150
178
|
export type ReturnKeyType =
|
|
151
179
|
// Cross Platform
|
|
152
180
|
| 'done'
|
|
@@ -165,6 +193,8 @@ export type ReturnKeyType =
|
|
|
165
193
|
| 'route'
|
|
166
194
|
| 'yahoo';
|
|
167
195
|
|
|
196
|
+
export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
|
|
197
|
+
|
|
168
198
|
export type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
|
|
169
199
|
|
|
170
200
|
export type TextContentType =
|
|
@@ -175,6 +205,15 @@ export type TextContentType =
|
|
|
175
205
|
| 'addressState'
|
|
176
206
|
| 'countryName'
|
|
177
207
|
| 'creditCardNumber'
|
|
208
|
+
| 'creditCardExpiration'
|
|
209
|
+
| 'creditCardExpirationMonth'
|
|
210
|
+
| 'creditCardExpirationYear'
|
|
211
|
+
| 'creditCardSecurityCode'
|
|
212
|
+
| 'creditCardType'
|
|
213
|
+
| 'creditCardName'
|
|
214
|
+
| 'creditCardGivenName'
|
|
215
|
+
| 'creditCardMiddleName'
|
|
216
|
+
| 'creditCardFamilyName'
|
|
178
217
|
| 'emailAddress'
|
|
179
218
|
| 'familyName'
|
|
180
219
|
| 'fullStreetAddress'
|
|
@@ -195,31 +234,32 @@ export type TextContentType =
|
|
|
195
234
|
| 'username'
|
|
196
235
|
| 'password'
|
|
197
236
|
| 'newPassword'
|
|
198
|
-
| 'oneTimeCode'
|
|
237
|
+
| 'oneTimeCode'
|
|
238
|
+
| 'birthdate'
|
|
239
|
+
| 'birthdateDay'
|
|
240
|
+
| 'birthdateMonth'
|
|
241
|
+
| 'birthdateYear'
|
|
242
|
+
| 'cellularEID'
|
|
243
|
+
| 'cellularIMEI'
|
|
244
|
+
| 'dateTime'
|
|
245
|
+
| 'flightNumber'
|
|
246
|
+
| 'shipmentTrackingNumber';
|
|
247
|
+
|
|
248
|
+
export type enterKeyHintType =
|
|
249
|
+
// Cross Platform
|
|
250
|
+
| 'done'
|
|
251
|
+
| 'go'
|
|
252
|
+
| 'next'
|
|
253
|
+
| 'search'
|
|
254
|
+
| 'send'
|
|
255
|
+
// Android-only
|
|
256
|
+
| 'previous'
|
|
257
|
+
// iOS-only
|
|
258
|
+
| 'enter';
|
|
199
259
|
|
|
200
260
|
type PasswordRules = string;
|
|
201
261
|
|
|
202
262
|
type IOSProps = $ReadOnly<{|
|
|
203
|
-
/**
|
|
204
|
-
* If `false`, disables spell-check style (i.e. red underlines).
|
|
205
|
-
* The default value is inherited from `autoCorrect`.
|
|
206
|
-
* @platform ios
|
|
207
|
-
*/
|
|
208
|
-
spellCheck?: ?boolean,
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Determines the color of the keyboard.
|
|
212
|
-
* @platform ios
|
|
213
|
-
*/
|
|
214
|
-
keyboardAppearance?: ?('default' | 'light' | 'dark'),
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* If `true`, the keyboard disables the return key when there is no text and
|
|
218
|
-
* automatically enables it when there is text. The default value is `false`.
|
|
219
|
-
* @platform ios
|
|
220
|
-
*/
|
|
221
|
-
enablesReturnKeyAutomatically?: ?boolean,
|
|
222
|
-
|
|
223
263
|
/**
|
|
224
264
|
* When the clear button should appear on the right side of the text view.
|
|
225
265
|
* This property is supported only for single-line TextInput component.
|
|
@@ -255,6 +295,13 @@ type IOSProps = $ReadOnly<{|
|
|
|
255
295
|
| ?DataDetectorTypesType
|
|
256
296
|
| $ReadOnlyArray<DataDetectorTypesType>,
|
|
257
297
|
|
|
298
|
+
/**
|
|
299
|
+
* If `true`, the keyboard disables the return key when there is no text and
|
|
300
|
+
* automatically enables it when there is text. The default value is `false`.
|
|
301
|
+
* @platform ios
|
|
302
|
+
*/
|
|
303
|
+
enablesReturnKeyAutomatically?: ?boolean,
|
|
304
|
+
|
|
258
305
|
/**
|
|
259
306
|
* An optional identifier which links a custom InputAccessoryView to
|
|
260
307
|
* this text input. The InputAccessoryView is rendered above the
|
|
@@ -264,11 +311,16 @@ type IOSProps = $ReadOnly<{|
|
|
|
264
311
|
inputAccessoryViewID?: ?string,
|
|
265
312
|
|
|
266
313
|
/**
|
|
267
|
-
*
|
|
268
|
-
* expected semantic meaning for the content that users enter.
|
|
314
|
+
* An optional label that overrides the default input accessory view button label.
|
|
269
315
|
* @platform ios
|
|
270
316
|
*/
|
|
271
|
-
|
|
317
|
+
inputAccessoryViewButtonLabel?: ?string,
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Determines the color of the keyboard.
|
|
321
|
+
* @platform ios
|
|
322
|
+
*/
|
|
323
|
+
keyboardAppearance?: ?('default' | 'light' | 'dark'),
|
|
272
324
|
|
|
273
325
|
/**
|
|
274
326
|
* Provide rules for your password.
|
|
@@ -293,61 +345,62 @@ type IOSProps = $ReadOnly<{|
|
|
|
293
345
|
* @platform ios
|
|
294
346
|
*/
|
|
295
347
|
scrollEnabled?: ?boolean,
|
|
296
|
-
|}>;
|
|
297
348
|
|
|
298
|
-
type AndroidProps = $ReadOnly<{|
|
|
299
349
|
/**
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
* *Android Only*
|
|
304
|
-
*
|
|
305
|
-
* The following values work on Android only:
|
|
306
|
-
*
|
|
307
|
-
* - `username`
|
|
308
|
-
* - `password`
|
|
309
|
-
* - `email`
|
|
310
|
-
* - `name`
|
|
311
|
-
* - `tel`
|
|
312
|
-
* - `street-address`
|
|
313
|
-
* - `postal-code`
|
|
314
|
-
* - `cc-number`
|
|
315
|
-
* - `cc-csc`
|
|
316
|
-
* - `cc-exp`
|
|
317
|
-
* - `cc-exp-month`
|
|
318
|
-
* - `cc-exp-year`
|
|
319
|
-
* - `off`
|
|
320
|
-
*
|
|
321
|
-
* @platform android
|
|
350
|
+
* If `false`, disables spell-check style (i.e. red underlines).
|
|
351
|
+
* The default value is inherited from `autoCorrect`.
|
|
352
|
+
* @platform ios
|
|
322
353
|
*/
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
354
|
+
spellCheck?: ?boolean,
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Give the keyboard and the system information about the
|
|
358
|
+
* expected semantic meaning for the content that users enter.
|
|
359
|
+
* `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.
|
|
360
|
+
* Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.
|
|
361
|
+
* For backwards compatibility, when both set, `textContentType` takes precedence on iOS.
|
|
362
|
+
* @platform ios
|
|
363
|
+
*/
|
|
364
|
+
textContentType?: ?TextContentType,
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Set line break strategy on iOS.
|
|
368
|
+
* @platform ios
|
|
369
|
+
*/
|
|
370
|
+
lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Set line break mode on iOS.
|
|
374
|
+
* @platform ios
|
|
375
|
+
*/
|
|
376
|
+
lineBreakModeIOS?: ?(
|
|
377
|
+
| 'wordWrapping'
|
|
378
|
+
| 'char'
|
|
379
|
+
| 'clip'
|
|
380
|
+
| 'head'
|
|
381
|
+
| 'middle'
|
|
382
|
+
| 'tail'
|
|
337
383
|
),
|
|
338
384
|
|
|
339
385
|
/**
|
|
340
|
-
*
|
|
341
|
-
*
|
|
386
|
+
* If `false`, the iOS system will not insert an extra space after a paste operation
|
|
387
|
+
* neither delete one or two spaces after a cut or delete operation.
|
|
388
|
+
*
|
|
389
|
+
* The default value is `true`.
|
|
390
|
+
*
|
|
391
|
+
* @platform ios
|
|
342
392
|
*/
|
|
343
|
-
|
|
393
|
+
smartInsertDelete?: ?boolean,
|
|
394
|
+
|}>;
|
|
344
395
|
|
|
396
|
+
type AndroidProps = $ReadOnly<{|
|
|
345
397
|
/**
|
|
346
|
-
*
|
|
347
|
-
* `
|
|
398
|
+
* When provided it will set the color of the cursor (or "caret") in the component.
|
|
399
|
+
* Unlike the behavior of `selectionColor` the cursor color will be set independently
|
|
400
|
+
* from the color of the text selection box.
|
|
348
401
|
* @platform android
|
|
349
402
|
*/
|
|
350
|
-
|
|
403
|
+
cursorColor?: ?ColorValue,
|
|
351
404
|
|
|
352
405
|
/**
|
|
353
406
|
* When `false`, if there is a small amount of space available around a text input
|
|
@@ -359,18 +412,13 @@ type AndroidProps = $ReadOnly<{|
|
|
|
359
412
|
*/
|
|
360
413
|
disableFullscreenUI?: ?boolean,
|
|
361
414
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* The color of the `TextInput` underline.
|
|
371
|
-
* @platform android
|
|
372
|
-
*/
|
|
373
|
-
underlineColorAndroid?: ?ColorValue,
|
|
415
|
+
importantForAutofill?: ?(
|
|
416
|
+
| 'auto'
|
|
417
|
+
| 'no'
|
|
418
|
+
| 'noExcludeDescendants'
|
|
419
|
+
| 'yes'
|
|
420
|
+
| 'yesExcludeDescendants'
|
|
421
|
+
),
|
|
374
422
|
|
|
375
423
|
/**
|
|
376
424
|
* If defined, the provided image resource will be rendered on the left.
|
|
@@ -391,20 +439,44 @@ type AndroidProps = $ReadOnly<{|
|
|
|
391
439
|
*/
|
|
392
440
|
inlineImagePadding?: ?number,
|
|
393
441
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
442
|
+
/**
|
|
443
|
+
* Sets the number of lines for a `TextInput`. Use it with multiline set to
|
|
444
|
+
* `true` to be able to fill the lines.
|
|
445
|
+
* @platform android
|
|
446
|
+
*/
|
|
447
|
+
numberOfLines?: ?number,
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Sets the return key to the label. Use it instead of `returnKeyType`.
|
|
451
|
+
* @platform android
|
|
452
|
+
*/
|
|
453
|
+
returnKeyLabel?: ?string,
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Sets the number of rows for a `TextInput`. Use it with multiline set to
|
|
457
|
+
* `true` to be able to fill the lines.
|
|
458
|
+
* @platform android
|
|
459
|
+
*/
|
|
460
|
+
rows?: ?number,
|
|
401
461
|
|
|
402
462
|
/**
|
|
403
463
|
* When `false`, it will prevent the soft keyboard from showing when the field is focused.
|
|
404
464
|
* Defaults to `true`.
|
|
405
|
-
* @platform android
|
|
406
465
|
*/
|
|
407
466
|
showSoftInputOnFocus?: ?boolean,
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
|
|
470
|
+
* The default value is `simple`.
|
|
471
|
+
* @platform android
|
|
472
|
+
*/
|
|
473
|
+
textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* The color of the `TextInput` underline.
|
|
477
|
+
* @platform android
|
|
478
|
+
*/
|
|
479
|
+
underlineColorAndroid?: ?ColorValue,
|
|
408
480
|
|}>;
|
|
409
481
|
|
|
410
482
|
export type Props = $ReadOnly<{|
|
|
@@ -422,6 +494,137 @@ export type Props = $ReadOnly<{|
|
|
|
422
494
|
*/
|
|
423
495
|
autoCapitalize?: ?AutoCapitalize,
|
|
424
496
|
|
|
497
|
+
/**
|
|
498
|
+
* Specifies autocomplete hints for the system, so it can provide autofill.
|
|
499
|
+
* On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
|
|
500
|
+
* To disable autocomplete, set autoComplete to off.
|
|
501
|
+
*
|
|
502
|
+
* The following values work across platforms:
|
|
503
|
+
*
|
|
504
|
+
* - `additional-name`
|
|
505
|
+
* - `address-line1`
|
|
506
|
+
* - `address-line2`
|
|
507
|
+
* - `birthdate-day` (iOS 17+)
|
|
508
|
+
* - `birthdate-full` (iOS 17+)
|
|
509
|
+
* - `birthdate-month` (iOS 17+)
|
|
510
|
+
* - `birthdate-year` (iOS 17+)
|
|
511
|
+
* - `cc-number`
|
|
512
|
+
* - `cc-csc` (iOS 17+)
|
|
513
|
+
* - `cc-exp` (iOS 17+)
|
|
514
|
+
* - `cc-exp-day` (iOS 17+)
|
|
515
|
+
* - `cc-exp-month` (iOS 17+)
|
|
516
|
+
* - `cc-exp-year` (iOS 17+)
|
|
517
|
+
* - `country`
|
|
518
|
+
* - `current-password`
|
|
519
|
+
* - `email`
|
|
520
|
+
* - `family-name`
|
|
521
|
+
* - `given-name`
|
|
522
|
+
* - `honorific-prefix`
|
|
523
|
+
* - `honorific-suffix`
|
|
524
|
+
* - `name`
|
|
525
|
+
* - `new-password`
|
|
526
|
+
* - `off`
|
|
527
|
+
* - `one-time-code`
|
|
528
|
+
* - `postal-code`
|
|
529
|
+
* - `street-address`
|
|
530
|
+
* - `tel`
|
|
531
|
+
* - `username`
|
|
532
|
+
*
|
|
533
|
+
* The following values work on iOS only:
|
|
534
|
+
*
|
|
535
|
+
* - `cc-name` (iOS 17+)
|
|
536
|
+
* - `cc-given-name` (iOS 17+)
|
|
537
|
+
* - `cc-middle-name` (iOS 17+)
|
|
538
|
+
* - `cc-family-name` (iOS 17+)
|
|
539
|
+
* - `cc-type` (iOS 17+)
|
|
540
|
+
* - `nickname`
|
|
541
|
+
* - `organization`
|
|
542
|
+
* - `organization-title`
|
|
543
|
+
* - `url`
|
|
544
|
+
*
|
|
545
|
+
* The following values work on Android only:
|
|
546
|
+
*
|
|
547
|
+
* - `gender`
|
|
548
|
+
* - `name-family`
|
|
549
|
+
* - `name-given`
|
|
550
|
+
* - `name-middle`
|
|
551
|
+
* - `name-middle-initial`
|
|
552
|
+
* - `name-prefix`
|
|
553
|
+
* - `name-suffix`
|
|
554
|
+
* - `password`
|
|
555
|
+
* - `password-new`
|
|
556
|
+
* - `postal-address`
|
|
557
|
+
* - `postal-address-country`
|
|
558
|
+
* - `postal-address-extended`
|
|
559
|
+
* - `postal-address-extended-postal-code`
|
|
560
|
+
* - `postal-address-locality`
|
|
561
|
+
* - `postal-address-region`
|
|
562
|
+
* - `sms-otp`
|
|
563
|
+
* - `tel-country-code`
|
|
564
|
+
* - `tel-national`
|
|
565
|
+
* - `tel-device`
|
|
566
|
+
* - `username-new`
|
|
567
|
+
*/
|
|
568
|
+
autoComplete?: ?(
|
|
569
|
+
| 'additional-name'
|
|
570
|
+
| 'address-line1'
|
|
571
|
+
| 'address-line2'
|
|
572
|
+
| 'birthdate-day'
|
|
573
|
+
| 'birthdate-full'
|
|
574
|
+
| 'birthdate-month'
|
|
575
|
+
| 'birthdate-year'
|
|
576
|
+
| 'cc-csc'
|
|
577
|
+
| 'cc-exp'
|
|
578
|
+
| 'cc-exp-day'
|
|
579
|
+
| 'cc-exp-month'
|
|
580
|
+
| 'cc-exp-year'
|
|
581
|
+
| 'cc-number'
|
|
582
|
+
| 'cc-name'
|
|
583
|
+
| 'cc-given-name'
|
|
584
|
+
| 'cc-middle-name'
|
|
585
|
+
| 'cc-family-name'
|
|
586
|
+
| 'cc-type'
|
|
587
|
+
| 'country'
|
|
588
|
+
| 'current-password'
|
|
589
|
+
| 'email'
|
|
590
|
+
| 'family-name'
|
|
591
|
+
| 'gender'
|
|
592
|
+
| 'given-name'
|
|
593
|
+
| 'honorific-prefix'
|
|
594
|
+
| 'honorific-suffix'
|
|
595
|
+
| 'name'
|
|
596
|
+
| 'name-family'
|
|
597
|
+
| 'name-given'
|
|
598
|
+
| 'name-middle'
|
|
599
|
+
| 'name-middle-initial'
|
|
600
|
+
| 'name-prefix'
|
|
601
|
+
| 'name-suffix'
|
|
602
|
+
| 'new-password'
|
|
603
|
+
| 'nickname'
|
|
604
|
+
| 'one-time-code'
|
|
605
|
+
| 'organization'
|
|
606
|
+
| 'organization-title'
|
|
607
|
+
| 'password'
|
|
608
|
+
| 'password-new'
|
|
609
|
+
| 'postal-address'
|
|
610
|
+
| 'postal-address-country'
|
|
611
|
+
| 'postal-address-extended'
|
|
612
|
+
| 'postal-address-extended-postal-code'
|
|
613
|
+
| 'postal-address-locality'
|
|
614
|
+
| 'postal-address-region'
|
|
615
|
+
| 'postal-code'
|
|
616
|
+
| 'street-address'
|
|
617
|
+
| 'sms-otp'
|
|
618
|
+
| 'tel'
|
|
619
|
+
| 'tel-country-code'
|
|
620
|
+
| 'tel-national'
|
|
621
|
+
| 'tel-device'
|
|
622
|
+
| 'url'
|
|
623
|
+
| 'username'
|
|
624
|
+
| 'username-new'
|
|
625
|
+
| 'off'
|
|
626
|
+
),
|
|
627
|
+
|
|
425
628
|
/**
|
|
426
629
|
* If `false`, disables auto-correct. The default value is `true`.
|
|
427
630
|
*/
|
|
@@ -440,38 +643,86 @@ export type Props = $ReadOnly<{|
|
|
|
440
643
|
allowFontScaling?: ?boolean,
|
|
441
644
|
|
|
442
645
|
/**
|
|
443
|
-
*
|
|
444
|
-
*
|
|
445
|
-
*
|
|
446
|
-
*
|
|
447
|
-
*
|
|
646
|
+
* If `true`, caret is hidden. The default value is `false`.
|
|
647
|
+
*
|
|
648
|
+
* On Android devices manufactured by Xiaomi with Android Q,
|
|
649
|
+
* when keyboardType equals 'email-address'this will be set
|
|
650
|
+
* in native to 'true' to prevent a system related crash. This
|
|
651
|
+
* will cause cursor to be disabled as a side-effect.
|
|
652
|
+
*
|
|
448
653
|
*/
|
|
449
|
-
|
|
654
|
+
caretHidden?: ?boolean,
|
|
655
|
+
|
|
656
|
+
/*
|
|
657
|
+
* If `true`, contextMenuHidden is hidden. The default value is `false`.
|
|
658
|
+
*/
|
|
659
|
+
contextMenuHidden?: ?boolean,
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Provides an initial value that will change when the user starts typing.
|
|
663
|
+
* Useful for simple use-cases where you do not want to deal with listening
|
|
664
|
+
* to events and updating the value prop to keep the controlled state in sync.
|
|
665
|
+
*/
|
|
666
|
+
defaultValue?: ?Stringish,
|
|
450
667
|
|
|
451
668
|
/**
|
|
452
669
|
* If `false`, text is not editable. The default value is `true`.
|
|
453
670
|
*/
|
|
454
671
|
editable?: ?boolean,
|
|
455
672
|
|
|
673
|
+
forwardedRef?: ?ReactRefSetter<TextInputInstance>,
|
|
674
|
+
|
|
456
675
|
/**
|
|
457
|
-
*
|
|
458
|
-
*
|
|
459
|
-
* The following values work across platforms:
|
|
676
|
+
* `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
|
|
460
677
|
*
|
|
461
|
-
*
|
|
462
|
-
* - `numeric`
|
|
463
|
-
* - `number-pad`
|
|
464
|
-
* - `decimal-pad`
|
|
465
|
-
* - `email-address`
|
|
466
|
-
* - `phone-pad`
|
|
678
|
+
* The following values is supported:
|
|
467
679
|
*
|
|
468
|
-
*
|
|
680
|
+
* - `enter`
|
|
681
|
+
* - `done`
|
|
682
|
+
* - `go`
|
|
683
|
+
* - `next`
|
|
684
|
+
* - `previous`
|
|
685
|
+
* - `search`
|
|
686
|
+
* - `send`
|
|
687
|
+
*/
|
|
688
|
+
enterKeyHint?: ?enterKeyHintType,
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* `inputMode` works like the `inputmode` attribute in HTML, it determines which
|
|
692
|
+
* keyboard to open, e.g.`numeric` and has precedence over keyboardType
|
|
469
693
|
*
|
|
470
|
-
*
|
|
694
|
+
* Support the following values:
|
|
695
|
+
*
|
|
696
|
+
* - `none`
|
|
697
|
+
* - `text`
|
|
698
|
+
* - `decimal`
|
|
699
|
+
* - `numeric`
|
|
700
|
+
* - `tel`
|
|
701
|
+
* - `search`
|
|
702
|
+
* - `email`
|
|
703
|
+
* - `url`
|
|
704
|
+
*/
|
|
705
|
+
inputMode?: ?InputMode,
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Determines which keyboard to open, e.g.`numeric`.
|
|
709
|
+
*
|
|
710
|
+
* The following values work across platforms:
|
|
711
|
+
*
|
|
712
|
+
* - `default`
|
|
713
|
+
* - `numeric`
|
|
714
|
+
* - `number-pad`
|
|
715
|
+
* - `decimal-pad`
|
|
716
|
+
* - `email-address`
|
|
717
|
+
* - `phone-pad`
|
|
718
|
+
* - `url`
|
|
719
|
+
*
|
|
720
|
+
* *iOS Only*
|
|
721
|
+
*
|
|
722
|
+
* The following values work on iOS only:
|
|
471
723
|
*
|
|
472
724
|
* - `ascii-capable`
|
|
473
725
|
* - `numbers-and-punctuation`
|
|
474
|
-
* - `url`
|
|
475
726
|
* - `name-phone-pad`
|
|
476
727
|
* - `twitter`
|
|
477
728
|
* - `web-search`
|
|
@@ -481,42 +732,18 @@ export type Props = $ReadOnly<{|
|
|
|
481
732
|
* The following values work on Android only:
|
|
482
733
|
*
|
|
483
734
|
* - `visible-password`
|
|
735
|
+
*
|
|
484
736
|
*/
|
|
485
737
|
keyboardType?: ?KeyboardType,
|
|
486
738
|
|
|
487
739
|
/**
|
|
488
|
-
*
|
|
489
|
-
*
|
|
490
|
-
*
|
|
491
|
-
*
|
|
492
|
-
*
|
|
493
|
-
* The following values work across platforms:
|
|
494
|
-
*
|
|
495
|
-
* - `done`
|
|
496
|
-
* - `go`
|
|
497
|
-
* - `next`
|
|
498
|
-
* - `search`
|
|
499
|
-
* - `send`
|
|
500
|
-
*
|
|
501
|
-
* *Android Only*
|
|
502
|
-
*
|
|
503
|
-
* The following values work on Android only:
|
|
504
|
-
*
|
|
505
|
-
* - `none`
|
|
506
|
-
* - `previous`
|
|
507
|
-
*
|
|
508
|
-
* *iOS Only*
|
|
509
|
-
*
|
|
510
|
-
* The following values work on iOS only:
|
|
511
|
-
*
|
|
512
|
-
* - `default`
|
|
513
|
-
* - `emergency-call`
|
|
514
|
-
* - `google`
|
|
515
|
-
* - `join`
|
|
516
|
-
* - `route`
|
|
517
|
-
* - `yahoo`
|
|
740
|
+
* Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
|
|
741
|
+
* Possible values:
|
|
742
|
+
* `null/undefined` (default): inherit from the parent node or the global default (0)
|
|
743
|
+
* `0`: no max, ignore parent/global default
|
|
744
|
+
* `>= 1`: sets the maxFontSizeMultiplier of this node to this value
|
|
518
745
|
*/
|
|
519
|
-
|
|
746
|
+
maxFontSizeMultiplier?: ?number,
|
|
520
747
|
|
|
521
748
|
/**
|
|
522
749
|
* Limits the maximum number of characters that can be entered. Use this
|
|
@@ -535,11 +762,6 @@ export type Props = $ReadOnly<{|
|
|
|
535
762
|
*/
|
|
536
763
|
onBlur?: ?(e: BlurEvent) => mixed,
|
|
537
764
|
|
|
538
|
-
/**
|
|
539
|
-
* Callback that is called when the text input is focused.
|
|
540
|
-
*/
|
|
541
|
-
onFocus?: ?(e: FocusEvent) => mixed,
|
|
542
|
-
|
|
543
765
|
/**
|
|
544
766
|
* Callback that is called when the text input's text changes.
|
|
545
767
|
*/
|
|
@@ -565,6 +787,35 @@ export type Props = $ReadOnly<{|
|
|
|
565
787
|
*/
|
|
566
788
|
onEndEditing?: ?(e: EditingEvent) => mixed,
|
|
567
789
|
|
|
790
|
+
/**
|
|
791
|
+
* Callback that is called when the text input is focused.
|
|
792
|
+
*/
|
|
793
|
+
onFocus?: ?(e: FocusEvent) => mixed,
|
|
794
|
+
|
|
795
|
+
/**
|
|
796
|
+
* Callback that is called when a key is pressed.
|
|
797
|
+
* This will be called with `{ nativeEvent: { key: keyValue } }`
|
|
798
|
+
* where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
|
|
799
|
+
* the typed-in character otherwise including `' '` for space.
|
|
800
|
+
* Fires before `onChange` callbacks.
|
|
801
|
+
*/
|
|
802
|
+
onKeyPress?: ?(e: KeyPressEvent) => mixed,
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Called when a single tap gesture is detected.
|
|
806
|
+
*/
|
|
807
|
+
onPress?: ?(event: PressEvent) => mixed,
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Called when a touch is engaged.
|
|
811
|
+
*/
|
|
812
|
+
onPressIn?: ?(event: PressEvent) => mixed,
|
|
813
|
+
|
|
814
|
+
/**
|
|
815
|
+
* Called when a touch is released.
|
|
816
|
+
*/
|
|
817
|
+
onPressOut?: ?(event: PressEvent) => mixed,
|
|
818
|
+
|
|
568
819
|
/**
|
|
569
820
|
* Callback that is called when the text input selection is changed.
|
|
570
821
|
* This will be called with
|
|
@@ -578,15 +829,6 @@ export type Props = $ReadOnly<{|
|
|
|
578
829
|
*/
|
|
579
830
|
onSubmitEditing?: ?(e: EditingEvent) => mixed,
|
|
580
831
|
|
|
581
|
-
/**
|
|
582
|
-
* Callback that is called when a key is pressed.
|
|
583
|
-
* This will be called with `{ nativeEvent: { key: keyValue } }`
|
|
584
|
-
* where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
|
|
585
|
-
* the typed-in character otherwise including `' '` for space.
|
|
586
|
-
* Fires before `onChange` callbacks.
|
|
587
|
-
*/
|
|
588
|
-
onKeyPress?: ?(e: KeyPressEvent) => mixed,
|
|
589
|
-
|
|
590
832
|
/**
|
|
591
833
|
* Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.
|
|
592
834
|
* May also contain other properties from ScrollEvent but on Android contentSize
|
|
@@ -604,16 +846,52 @@ export type Props = $ReadOnly<{|
|
|
|
604
846
|
*/
|
|
605
847
|
placeholderTextColor?: ?ColorValue,
|
|
606
848
|
|
|
849
|
+
/** `readOnly` works like the `readonly` attribute in HTML.
|
|
850
|
+
* If `true`, text is not editable. The default value is `false`.
|
|
851
|
+
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
|
|
852
|
+
* for more details.
|
|
853
|
+
*/
|
|
854
|
+
readOnly?: ?boolean,
|
|
855
|
+
|
|
607
856
|
/**
|
|
608
|
-
*
|
|
609
|
-
*
|
|
857
|
+
* Determines how the return key should look. On Android you can also use
|
|
858
|
+
* `returnKeyLabel`.
|
|
859
|
+
*
|
|
860
|
+
* *Cross platform*
|
|
861
|
+
*
|
|
862
|
+
* The following values work across platforms:
|
|
863
|
+
*
|
|
864
|
+
* - `done`
|
|
865
|
+
* - `go`
|
|
866
|
+
* - `next`
|
|
867
|
+
* - `search`
|
|
868
|
+
* - `send`
|
|
869
|
+
*
|
|
870
|
+
* *Android Only*
|
|
871
|
+
*
|
|
872
|
+
* The following values work on Android only:
|
|
873
|
+
*
|
|
874
|
+
* - `none`
|
|
875
|
+
* - `previous`
|
|
876
|
+
*
|
|
877
|
+
* *iOS Only*
|
|
878
|
+
*
|
|
879
|
+
* The following values work on iOS only:
|
|
880
|
+
*
|
|
881
|
+
* - `default`
|
|
882
|
+
* - `emergency-call`
|
|
883
|
+
* - `google`
|
|
884
|
+
* - `join`
|
|
885
|
+
* - `route`
|
|
886
|
+
* - `yahoo`
|
|
610
887
|
*/
|
|
611
|
-
|
|
888
|
+
returnKeyType?: ?ReturnKeyType,
|
|
612
889
|
|
|
613
890
|
/**
|
|
614
|
-
*
|
|
891
|
+
* If `true`, the text input obscures the text entered so that sensitive text
|
|
892
|
+
* like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
|
|
615
893
|
*/
|
|
616
|
-
|
|
894
|
+
secureTextEntry?: ?boolean,
|
|
617
895
|
|
|
618
896
|
/**
|
|
619
897
|
* The start and end of the text input's selection. Set start and end to
|
|
@@ -625,22 +903,15 @@ export type Props = $ReadOnly<{|
|
|
|
625
903
|
|}>,
|
|
626
904
|
|
|
627
905
|
/**
|
|
628
|
-
* The
|
|
629
|
-
* component, which means the native value will be forced to match this
|
|
630
|
-
* value prop if provided. For most uses, this works great, but in some
|
|
631
|
-
* cases this may cause flickering - one common cause is preventing edits
|
|
632
|
-
* by keeping value the same. In addition to simply setting the same value,
|
|
633
|
-
* either set `editable={false}`, or set/update `maxLength` to prevent
|
|
634
|
-
* unwanted edits without flicker.
|
|
906
|
+
* The highlight and cursor color of the text input.
|
|
635
907
|
*/
|
|
636
|
-
|
|
908
|
+
selectionColor?: ?ColorValue,
|
|
637
909
|
|
|
638
910
|
/**
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
* to events and updating the value prop to keep the controlled state in sync.
|
|
911
|
+
* The text selection handle color.
|
|
912
|
+
* @platform android
|
|
642
913
|
*/
|
|
643
|
-
|
|
914
|
+
selectionHandleColor?: ?ColorValue,
|
|
644
915
|
|
|
645
916
|
/**
|
|
646
917
|
* If `true`, all text will automatically be selected on focus.
|
|
@@ -653,9 +924,34 @@ export type Props = $ReadOnly<{|
|
|
|
653
924
|
* multiline fields. Note that for multiline fields, setting `blurOnSubmit`
|
|
654
925
|
* to `true` means that pressing return will blur the field and trigger the
|
|
655
926
|
* `onSubmitEditing` event instead of inserting a newline into the field.
|
|
927
|
+
*
|
|
928
|
+
* @deprecated
|
|
929
|
+
* Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
|
|
930
|
+
* override any behavior defined by `blurOnSubmit`.
|
|
931
|
+
* @see submitBehavior
|
|
656
932
|
*/
|
|
657
933
|
blurOnSubmit?: ?boolean,
|
|
658
934
|
|
|
935
|
+
/**
|
|
936
|
+
* When the return key is pressed,
|
|
937
|
+
*
|
|
938
|
+
* For single line inputs:
|
|
939
|
+
*
|
|
940
|
+
* - `'newline`' defaults to `'blurAndSubmit'`
|
|
941
|
+
* - `undefined` defaults to `'blurAndSubmit'`
|
|
942
|
+
*
|
|
943
|
+
* For multiline inputs:
|
|
944
|
+
*
|
|
945
|
+
* - `'newline'` adds a newline
|
|
946
|
+
* - `undefined` defaults to `'newline'`
|
|
947
|
+
*
|
|
948
|
+
* For both single line and multiline inputs:
|
|
949
|
+
*
|
|
950
|
+
* - `'submit'` will only send a submit event and not blur the input
|
|
951
|
+
* - `'blurAndSubmit`' will both blur the input and send a submit event
|
|
952
|
+
*/
|
|
953
|
+
submitBehavior?: ?SubmitBehavior,
|
|
954
|
+
|
|
659
955
|
/**
|
|
660
956
|
* Note that not all Text styles are supported, an incomplete list of what is not supported includes:
|
|
661
957
|
*
|
|
@@ -676,29 +972,199 @@ export type Props = $ReadOnly<{|
|
|
|
676
972
|
style?: ?TextStyleProp,
|
|
677
973
|
|
|
678
974
|
/**
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
*
|
|
975
|
+
* The value to show for the text input. `TextInput` is a controlled
|
|
976
|
+
* component, which means the native value will be forced to match this
|
|
977
|
+
* value prop if provided. For most uses, this works great, but in some
|
|
978
|
+
* cases this may cause flickering - one common cause is preventing edits
|
|
979
|
+
* by keeping value the same. In addition to simply setting the same value,
|
|
980
|
+
* either set `editable={false}`, or set/update `maxLength` to prevent
|
|
981
|
+
* unwanted edits without flicker.
|
|
686
982
|
*/
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
forwardedRef?: ?ReactRefSetter<
|
|
690
|
-
React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
|
|
691
|
-
>,
|
|
983
|
+
value?: ?Stringish,
|
|
692
984
|
|}>;
|
|
693
985
|
|
|
694
|
-
type
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
986
|
+
type ViewCommands = $NonMaybeType<
|
|
987
|
+
| typeof AndroidTextInputCommands
|
|
988
|
+
| typeof RCTMultilineTextInputNativeCommands
|
|
989
|
+
| typeof RCTSinglelineTextInputNativeCommands,
|
|
990
|
+
>;
|
|
991
|
+
|
|
992
|
+
type LastNativeSelection = {|
|
|
993
|
+
selection: Selection,
|
|
994
|
+
mostRecentEventCount: number,
|
|
995
|
+
|};
|
|
699
996
|
|
|
700
997
|
const emptyFunctionThatReturnsTrue = () => true;
|
|
701
998
|
|
|
999
|
+
/**
|
|
1000
|
+
* This hook handles the synchronization between the state of the text input
|
|
1001
|
+
* in native and in JavaScript. This is necessary due to the asynchronous nature
|
|
1002
|
+
* of text input events.
|
|
1003
|
+
*/
|
|
1004
|
+
function useTextInputStateSynchronization_STATE({
|
|
1005
|
+
props,
|
|
1006
|
+
mostRecentEventCount,
|
|
1007
|
+
selection,
|
|
1008
|
+
inputRef,
|
|
1009
|
+
text,
|
|
1010
|
+
viewCommands,
|
|
1011
|
+
}: {
|
|
1012
|
+
props: Props,
|
|
1013
|
+
mostRecentEventCount: number,
|
|
1014
|
+
selection: ?Selection,
|
|
1015
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
1016
|
+
text: string,
|
|
1017
|
+
viewCommands: ViewCommands,
|
|
1018
|
+
}): {
|
|
1019
|
+
setLastNativeText: string => void,
|
|
1020
|
+
setLastNativeSelection: LastNativeSelection => void,
|
|
1021
|
+
} {
|
|
1022
|
+
const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
|
|
1023
|
+
const [lastNativeSelectionState, setLastNativeSelection] =
|
|
1024
|
+
useState<LastNativeSelection>({
|
|
1025
|
+
selection: {start: -1, end: -1},
|
|
1026
|
+
mostRecentEventCount: mostRecentEventCount,
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
const lastNativeSelection = lastNativeSelectionState.selection;
|
|
1030
|
+
|
|
1031
|
+
// This is necessary in case native updates the text and JS decides
|
|
1032
|
+
// that the update should be ignored and we should stick with the value
|
|
1033
|
+
// that we have in JS.
|
|
1034
|
+
useLayoutEffect(() => {
|
|
1035
|
+
const nativeUpdate: {text?: string, selection?: Selection} = {};
|
|
1036
|
+
|
|
1037
|
+
if (lastNativeText !== props.value && typeof props.value === 'string') {
|
|
1038
|
+
nativeUpdate.text = props.value;
|
|
1039
|
+
setLastNativeText(props.value);
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
if (
|
|
1043
|
+
selection &&
|
|
1044
|
+
lastNativeSelection &&
|
|
1045
|
+
(lastNativeSelection.start !== selection.start ||
|
|
1046
|
+
lastNativeSelection.end !== selection.end)
|
|
1047
|
+
) {
|
|
1048
|
+
nativeUpdate.selection = selection;
|
|
1049
|
+
setLastNativeSelection({selection, mostRecentEventCount});
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
if (Object.keys(nativeUpdate).length === 0) {
|
|
1053
|
+
return;
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
if (inputRef.current != null) {
|
|
1057
|
+
viewCommands.setTextAndSelection(
|
|
1058
|
+
inputRef.current,
|
|
1059
|
+
mostRecentEventCount,
|
|
1060
|
+
text,
|
|
1061
|
+
selection?.start ?? -1,
|
|
1062
|
+
selection?.end ?? -1,
|
|
1063
|
+
);
|
|
1064
|
+
}
|
|
1065
|
+
}, [
|
|
1066
|
+
mostRecentEventCount,
|
|
1067
|
+
inputRef,
|
|
1068
|
+
props.value,
|
|
1069
|
+
props.defaultValue,
|
|
1070
|
+
lastNativeText,
|
|
1071
|
+
selection,
|
|
1072
|
+
lastNativeSelection,
|
|
1073
|
+
text,
|
|
1074
|
+
viewCommands,
|
|
1075
|
+
]);
|
|
1076
|
+
|
|
1077
|
+
return {setLastNativeText, setLastNativeSelection};
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
/**
|
|
1081
|
+
* This hook handles the synchronization between the state of the text input
|
|
1082
|
+
* in native and in JavaScript. This is necessary due to the asynchronous nature
|
|
1083
|
+
* of text input events.
|
|
1084
|
+
*/
|
|
1085
|
+
function useTextInputStateSynchronization_REFS({
|
|
1086
|
+
props,
|
|
1087
|
+
mostRecentEventCount,
|
|
1088
|
+
selection,
|
|
1089
|
+
inputRef,
|
|
1090
|
+
text,
|
|
1091
|
+
viewCommands,
|
|
1092
|
+
}: {
|
|
1093
|
+
props: Props,
|
|
1094
|
+
mostRecentEventCount: number,
|
|
1095
|
+
selection: ?Selection,
|
|
1096
|
+
inputRef: React.RefObject<null | HostInstance>,
|
|
1097
|
+
text: string,
|
|
1098
|
+
viewCommands: ViewCommands,
|
|
1099
|
+
}): {
|
|
1100
|
+
setLastNativeText: string => void,
|
|
1101
|
+
setLastNativeSelection: LastNativeSelection => void,
|
|
1102
|
+
} {
|
|
1103
|
+
const lastNativeTextRef = useRef<?Stringish>(props.value);
|
|
1104
|
+
const lastNativeSelectionRef = useRef<LastNativeSelection>({
|
|
1105
|
+
selection: {start: -1, end: -1},
|
|
1106
|
+
mostRecentEventCount: mostRecentEventCount,
|
|
1107
|
+
});
|
|
1108
|
+
|
|
1109
|
+
// This is necessary in case native updates the text and JS decides
|
|
1110
|
+
// that the update should be ignored and we should stick with the value
|
|
1111
|
+
// that we have in JS.
|
|
1112
|
+
useLayoutEffect(() => {
|
|
1113
|
+
const nativeUpdate: {text?: string, selection?: Selection} = {};
|
|
1114
|
+
|
|
1115
|
+
const lastNativeSelection = lastNativeSelectionRef.current.selection;
|
|
1116
|
+
|
|
1117
|
+
if (
|
|
1118
|
+
lastNativeTextRef.current !== props.value &&
|
|
1119
|
+
typeof props.value === 'string'
|
|
1120
|
+
) {
|
|
1121
|
+
nativeUpdate.text = props.value;
|
|
1122
|
+
lastNativeTextRef.current = props.value;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
if (
|
|
1126
|
+
selection &&
|
|
1127
|
+
lastNativeSelection &&
|
|
1128
|
+
(lastNativeSelection.start !== selection.start ||
|
|
1129
|
+
lastNativeSelection.end !== selection.end)
|
|
1130
|
+
) {
|
|
1131
|
+
nativeUpdate.selection = selection;
|
|
1132
|
+
lastNativeSelectionRef.current = {selection, mostRecentEventCount};
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
if (Object.keys(nativeUpdate).length === 0) {
|
|
1136
|
+
return;
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
if (inputRef.current != null) {
|
|
1140
|
+
viewCommands.setTextAndSelection(
|
|
1141
|
+
inputRef.current,
|
|
1142
|
+
mostRecentEventCount,
|
|
1143
|
+
text,
|
|
1144
|
+
selection?.start ?? -1,
|
|
1145
|
+
selection?.end ?? -1,
|
|
1146
|
+
);
|
|
1147
|
+
}
|
|
1148
|
+
}, [
|
|
1149
|
+
mostRecentEventCount,
|
|
1150
|
+
inputRef,
|
|
1151
|
+
props.value,
|
|
1152
|
+
props.defaultValue,
|
|
1153
|
+
selection,
|
|
1154
|
+
text,
|
|
1155
|
+
viewCommands,
|
|
1156
|
+
]);
|
|
1157
|
+
|
|
1158
|
+
return {
|
|
1159
|
+
setLastNativeText: lastNativeText => {
|
|
1160
|
+
lastNativeTextRef.current = lastNativeText;
|
|
1161
|
+
},
|
|
1162
|
+
setLastNativeSelection: lastNativeSelection => {
|
|
1163
|
+
lastNativeSelectionRef.current = lastNativeSelection;
|
|
1164
|
+
},
|
|
1165
|
+
};
|
|
1166
|
+
}
|
|
1167
|
+
|
|
702
1168
|
/**
|
|
703
1169
|
* A foundational component for inputting text into the app via a
|
|
704
1170
|
* keyboard. Props provide configurability for several features, such as
|
|
@@ -753,8 +1219,8 @@ const emptyFunctionThatReturnsTrue = () => true;
|
|
|
753
1219
|
* return (
|
|
754
1220
|
* <TextInput
|
|
755
1221
|
* {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
|
|
756
|
-
* editable
|
|
757
|
-
* maxLength
|
|
1222
|
+
* editable={true}
|
|
1223
|
+
* maxLength={40}
|
|
758
1224
|
* />
|
|
759
1225
|
* );
|
|
760
1226
|
* }
|
|
@@ -778,8 +1244,8 @@ const emptyFunctionThatReturnsTrue = () => true;
|
|
|
778
1244
|
* borderBottomWidth: 1 }}
|
|
779
1245
|
* >
|
|
780
1246
|
* <UselessTextInput
|
|
781
|
-
* multiline
|
|
782
|
-
* numberOfLines
|
|
1247
|
+
* multiline={true}
|
|
1248
|
+
* numberOfLines={4}
|
|
783
1249
|
* onChangeText={(text) => this.setState({text})}
|
|
784
1250
|
* value={this.state.text}
|
|
785
1251
|
* />
|
|
@@ -811,95 +1277,61 @@ const emptyFunctionThatReturnsTrue = () => true;
|
|
|
811
1277
|
*
|
|
812
1278
|
*/
|
|
813
1279
|
function InternalTextInput(props: Props): React.Node {
|
|
814
|
-
const
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
1280
|
+
const {
|
|
1281
|
+
'aria-busy': ariaBusy,
|
|
1282
|
+
'aria-checked': ariaChecked,
|
|
1283
|
+
'aria-disabled': ariaDisabled,
|
|
1284
|
+
'aria-expanded': ariaExpanded,
|
|
1285
|
+
'aria-selected': ariaSelected,
|
|
1286
|
+
accessibilityState,
|
|
1287
|
+
id,
|
|
1288
|
+
tabIndex,
|
|
1289
|
+
selection: propsSelection,
|
|
1290
|
+
selectionColor,
|
|
1291
|
+
selectionHandleColor,
|
|
1292
|
+
cursorColor,
|
|
1293
|
+
...otherProps
|
|
1294
|
+
} = props;
|
|
1295
|
+
|
|
1296
|
+
const inputRef = useRef<null | HostInstance>(null);
|
|
1297
|
+
|
|
1298
|
+
const selection: ?Selection =
|
|
1299
|
+
propsSelection == null
|
|
826
1300
|
? null
|
|
827
1301
|
: {
|
|
828
|
-
start:
|
|
829
|
-
end:
|
|
1302
|
+
start: propsSelection.start,
|
|
1303
|
+
end: propsSelection.end ?? propsSelection.start,
|
|
830
1304
|
};
|
|
831
1305
|
|
|
832
|
-
const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
|
|
833
|
-
|
|
834
|
-
const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
|
|
835
|
-
const [lastNativeSelectionState, setLastNativeSelection] = useState<{|
|
|
836
|
-
selection: ?Selection,
|
|
837
|
-
mostRecentEventCount: number,
|
|
838
|
-
|}>({selection, mostRecentEventCount});
|
|
839
|
-
|
|
840
|
-
const lastNativeSelection = lastNativeSelectionState.selection;
|
|
841
|
-
const lastNativeSelectionEventCount =
|
|
842
|
-
lastNativeSelectionState.mostRecentEventCount;
|
|
843
|
-
|
|
844
|
-
if (lastNativeSelectionEventCount < mostRecentEventCount) {
|
|
845
|
-
selection = null;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
1306
|
const text =
|
|
849
1307
|
typeof props.value === 'string'
|
|
850
1308
|
? props.value
|
|
851
1309
|
: typeof props.defaultValue === 'string'
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
// This is necessary in case native updates the text and JS decides
|
|
856
|
-
// that the update should be ignored and we should stick with the value
|
|
857
|
-
// that we have in JS.
|
|
858
|
-
useEffect(() => {
|
|
859
|
-
const nativeUpdate = {};
|
|
1310
|
+
? props.defaultValue
|
|
1311
|
+
: '';
|
|
860
1312
|
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
1313
|
+
const viewCommands =
|
|
1314
|
+
AndroidTextInputCommands ||
|
|
1315
|
+
(props.multiline === true
|
|
1316
|
+
? RCTMultilineTextInputNativeCommands
|
|
1317
|
+
: RCTSinglelineTextInputNativeCommands);
|
|
865
1318
|
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
if (AndroidTextInputCommands && inputRef.current != null) {
|
|
881
|
-
AndroidTextInputCommands.setTextAndSelection(
|
|
882
|
-
inputRef.current,
|
|
883
|
-
mostRecentEventCount,
|
|
884
|
-
text,
|
|
885
|
-
selection?.start ?? -1,
|
|
886
|
-
selection?.end ?? -1,
|
|
887
|
-
);
|
|
888
|
-
} else if (inputRef.current != null) {
|
|
889
|
-
inputRef.current.setNativeProps(nativeUpdate);
|
|
890
|
-
}
|
|
891
|
-
}, [
|
|
892
|
-
mostRecentEventCount,
|
|
893
|
-
inputRef,
|
|
894
|
-
props.value,
|
|
895
|
-
props.defaultValue,
|
|
896
|
-
lastNativeText,
|
|
897
|
-
selection,
|
|
898
|
-
lastNativeSelection,
|
|
899
|
-
text,
|
|
900
|
-
]);
|
|
1319
|
+
const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
|
|
1320
|
+
const useTextInputStateSynchronization =
|
|
1321
|
+
ReactNativeFeatureFlags.useRefsForTextInputState()
|
|
1322
|
+
? useTextInputStateSynchronization_REFS
|
|
1323
|
+
: useTextInputStateSynchronization_STATE;
|
|
1324
|
+
const {setLastNativeText, setLastNativeSelection} =
|
|
1325
|
+
useTextInputStateSynchronization({
|
|
1326
|
+
props,
|
|
1327
|
+
inputRef,
|
|
1328
|
+
mostRecentEventCount,
|
|
1329
|
+
selection,
|
|
1330
|
+
text,
|
|
1331
|
+
viewCommands,
|
|
1332
|
+
});
|
|
901
1333
|
|
|
902
|
-
|
|
1334
|
+
useLayoutEffect(() => {
|
|
903
1335
|
const inputRefValue = inputRef.current;
|
|
904
1336
|
|
|
905
1337
|
if (inputRefValue != null) {
|
|
@@ -907,98 +1339,84 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
907
1339
|
|
|
908
1340
|
return () => {
|
|
909
1341
|
TextInputState.unregisterInput(inputRefValue);
|
|
910
|
-
};
|
|
911
|
-
}
|
|
912
|
-
}, [inputRef]);
|
|
913
|
-
|
|
914
|
-
useEffect(() => {
|
|
915
|
-
// When unmounting we need to blur the input
|
|
916
|
-
return () => {
|
|
917
|
-
if (isFocused()) {
|
|
918
|
-
nullthrows(inputRef.current).blur();
|
|
919
|
-
}
|
|
920
|
-
};
|
|
921
|
-
}, [inputRef]);
|
|
922
1342
|
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
mostRecentEventCount,
|
|
928
|
-
'',
|
|
929
|
-
0,
|
|
930
|
-
0,
|
|
931
|
-
);
|
|
932
|
-
} else if (inputRef.current != null) {
|
|
933
|
-
inputRef.current.setNativeProps({text: ''});
|
|
1343
|
+
if (TextInputState.currentlyFocusedInput() === inputRefValue) {
|
|
1344
|
+
nullthrows(inputRefValue).blur();
|
|
1345
|
+
}
|
|
1346
|
+
};
|
|
934
1347
|
}
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
// TODO: Fix this returning true on null === null, when no input is focused
|
|
938
|
-
function isFocused(): boolean {
|
|
939
|
-
return TextInputState.currentlyFocusedInput() === inputRef.current;
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
function getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
|
|
943
|
-
return inputRef.current;
|
|
944
|
-
}
|
|
1348
|
+
}, []);
|
|
945
1349
|
|
|
946
|
-
const
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
inputRef.current = ref;
|
|
1350
|
+
const setLocalRef = useCallback(
|
|
1351
|
+
(instance: TextInputInstance | null) => {
|
|
1352
|
+
inputRef.current = instance;
|
|
950
1353
|
|
|
951
1354
|
/*
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
if (
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1355
|
+
Hi reader from the future. I'm sorry for this.
|
|
1356
|
+
|
|
1357
|
+
This is a hack. Ideally we would forwardRef to the underlying
|
|
1358
|
+
host component. However, since TextInput has it's own methods that can be
|
|
1359
|
+
called as well, if we used the standard forwardRef then these
|
|
1360
|
+
methods wouldn't be accessible and thus be a breaking change.
|
|
1361
|
+
|
|
1362
|
+
We have a couple of options of how to handle this:
|
|
1363
|
+
- Return a new ref with everything we methods from both. This is problematic
|
|
1364
|
+
because we need React to also know it is a host component which requires
|
|
1365
|
+
internals of the class implementation of the ref.
|
|
1366
|
+
- Break the API and have some other way to call one set of the methods or
|
|
1367
|
+
the other. This is our long term approach as we want to eventually
|
|
1368
|
+
get the methods on host components off the ref. So instead of calling
|
|
1369
|
+
ref.measure() you might call ReactNative.measure(ref). This would hopefully
|
|
1370
|
+
let the ref for TextInput then have the methods like `.clear`. Or we do it
|
|
1371
|
+
the other way and make it TextInput.clear(textInputRef) which would be fine
|
|
1372
|
+
too. Either way though is a breaking change that is longer term.
|
|
1373
|
+
- Mutate this ref. :( Gross, but accomplishes what we need in the meantime
|
|
1374
|
+
before we can get to the long term breaking change.
|
|
1375
|
+
*/
|
|
1376
|
+
if (instance != null) {
|
|
1377
|
+
// $FlowFixMe[incompatible-use] - See the explanation above.
|
|
1378
|
+
Object.assign(instance, {
|
|
1379
|
+
clear(): void {
|
|
1380
|
+
if (inputRef.current != null) {
|
|
1381
|
+
viewCommands.setTextAndSelection(
|
|
1382
|
+
inputRef.current,
|
|
1383
|
+
mostRecentEventCount,
|
|
1384
|
+
'',
|
|
1385
|
+
0,
|
|
1386
|
+
0,
|
|
1387
|
+
);
|
|
1388
|
+
}
|
|
1389
|
+
},
|
|
1390
|
+
// TODO: Fix this returning true on null === null, when no input is focused
|
|
1391
|
+
isFocused(): boolean {
|
|
1392
|
+
return TextInputState.currentlyFocusedInput() === inputRef.current;
|
|
1393
|
+
},
|
|
1394
|
+
getNativeRef(): ?HostInstance {
|
|
1395
|
+
return inputRef.current;
|
|
1396
|
+
},
|
|
1397
|
+
setSelection(start: number, end: number): void {
|
|
1398
|
+
if (inputRef.current != null) {
|
|
1399
|
+
viewCommands.setTextAndSelection(
|
|
1400
|
+
inputRef.current,
|
|
1401
|
+
mostRecentEventCount,
|
|
1402
|
+
null,
|
|
1403
|
+
start,
|
|
1404
|
+
end,
|
|
1405
|
+
);
|
|
1406
|
+
}
|
|
1407
|
+
},
|
|
1408
|
+
});
|
|
977
1409
|
}
|
|
978
1410
|
},
|
|
979
|
-
|
|
1411
|
+
[mostRecentEventCount, viewCommands],
|
|
1412
|
+
);
|
|
980
1413
|
|
|
981
|
-
const
|
|
982
|
-
if (props.editable || props.editable === undefined) {
|
|
983
|
-
nullthrows(inputRef.current).focus();
|
|
984
|
-
}
|
|
985
|
-
};
|
|
1414
|
+
const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
|
|
986
1415
|
|
|
987
1416
|
const _onChange = (event: ChangeEvent) => {
|
|
988
|
-
|
|
989
|
-
// Do nothing
|
|
990
|
-
} else if (inputRef.current != null) {
|
|
991
|
-
// Make sure to fire the mostRecentEventCount first so it is already set on
|
|
992
|
-
// native when the text value is set.
|
|
993
|
-
// This is now only relevant on iOS until we migrate to ViewCommands everywhere
|
|
994
|
-
inputRef.current.setNativeProps({
|
|
995
|
-
mostRecentEventCount: event.nativeEvent.eventCount,
|
|
996
|
-
});
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
const text = event.nativeEvent.text;
|
|
1417
|
+
const currentText = event.nativeEvent.text;
|
|
1000
1418
|
props.onChange && props.onChange(event);
|
|
1001
|
-
props.onChangeText && props.onChangeText(
|
|
1419
|
+
props.onChangeText && props.onChangeText(currentText);
|
|
1002
1420
|
|
|
1003
1421
|
if (inputRef.current == null) {
|
|
1004
1422
|
// calling `props.onChange` or `props.onChangeText`
|
|
@@ -1006,7 +1424,7 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1006
1424
|
return;
|
|
1007
1425
|
}
|
|
1008
1426
|
|
|
1009
|
-
setLastNativeText(
|
|
1427
|
+
setLastNativeText(currentText);
|
|
1010
1428
|
// This must happen last, after we call setLastNativeText.
|
|
1011
1429
|
// Different ordering can cause bugs when editing AndroidTextInputs
|
|
1012
1430
|
// with multiple Fragments.
|
|
@@ -1048,31 +1466,151 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1048
1466
|
};
|
|
1049
1467
|
|
|
1050
1468
|
let textInput = null;
|
|
1051
|
-
let additionalTouchableProps: {|
|
|
1052
|
-
rejectResponderTermination?: $PropertyType<
|
|
1053
|
-
Props,
|
|
1054
|
-
'rejectResponderTermination',
|
|
1055
|
-
>,
|
|
1056
|
-
// This is a hack to let Flow know we want an exact object
|
|
1057
|
-
|} = {...null};
|
|
1058
1469
|
|
|
1059
|
-
|
|
1060
|
-
const RCTTextInputView = props.multiline
|
|
1061
|
-
? RCTMultilineTextInputView
|
|
1062
|
-
: RCTSinglelineTextInputView;
|
|
1470
|
+
const multiline = props.multiline ?? false;
|
|
1063
1471
|
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1472
|
+
let submitBehavior: SubmitBehavior;
|
|
1473
|
+
if (props.submitBehavior != null) {
|
|
1474
|
+
// `submitBehavior` is set explicitly
|
|
1475
|
+
if (!multiline && props.submitBehavior === 'newline') {
|
|
1476
|
+
// For single line text inputs, `'newline'` is not a valid option
|
|
1477
|
+
submitBehavior = 'blurAndSubmit';
|
|
1478
|
+
} else {
|
|
1479
|
+
submitBehavior = props.submitBehavior;
|
|
1480
|
+
}
|
|
1481
|
+
} else if (multiline) {
|
|
1482
|
+
if (props.blurOnSubmit === true) {
|
|
1483
|
+
submitBehavior = 'blurAndSubmit';
|
|
1484
|
+
} else {
|
|
1485
|
+
submitBehavior = 'newline';
|
|
1486
|
+
}
|
|
1487
|
+
} else {
|
|
1488
|
+
// Single line
|
|
1489
|
+
if (props.blurOnSubmit !== false) {
|
|
1490
|
+
submitBehavior = 'blurAndSubmit';
|
|
1491
|
+
} else {
|
|
1492
|
+
submitBehavior = 'submit';
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
const accessible = props.accessible !== false;
|
|
1497
|
+
const focusable = props.focusable !== false;
|
|
1498
|
+
|
|
1499
|
+
const {
|
|
1500
|
+
editable,
|
|
1501
|
+
hitSlop,
|
|
1502
|
+
onPress,
|
|
1503
|
+
onPressIn,
|
|
1504
|
+
onPressOut,
|
|
1505
|
+
rejectResponderTermination,
|
|
1506
|
+
} = props;
|
|
1507
|
+
|
|
1508
|
+
const config = React.useMemo(
|
|
1509
|
+
() => ({
|
|
1510
|
+
hitSlop,
|
|
1511
|
+
onPress: (event: PressEvent) => {
|
|
1512
|
+
onPress?.(event);
|
|
1513
|
+
if (editable !== false) {
|
|
1514
|
+
if (inputRef.current != null) {
|
|
1515
|
+
inputRef.current.focus();
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
},
|
|
1519
|
+
onPressIn: onPressIn,
|
|
1520
|
+
onPressOut: onPressOut,
|
|
1521
|
+
cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
|
|
1522
|
+
}),
|
|
1523
|
+
[
|
|
1524
|
+
editable,
|
|
1525
|
+
hitSlop,
|
|
1526
|
+
onPress,
|
|
1527
|
+
onPressIn,
|
|
1528
|
+
onPressOut,
|
|
1529
|
+
rejectResponderTermination,
|
|
1530
|
+
],
|
|
1531
|
+
);
|
|
1067
1532
|
|
|
1068
|
-
|
|
1069
|
-
|
|
1533
|
+
// Hide caret during test runs due to a flashing caret
|
|
1534
|
+
// makes screenshot tests flakey
|
|
1535
|
+
let caretHidden = props.caretHidden;
|
|
1536
|
+
if (Platform.isTesting) {
|
|
1537
|
+
caretHidden = true;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
// TextInput handles onBlur and onFocus events
|
|
1541
|
+
// so omitting onBlur and onFocus pressability handlers here.
|
|
1542
|
+
const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
|
|
1543
|
+
|
|
1544
|
+
let _accessibilityState;
|
|
1545
|
+
if (
|
|
1546
|
+
accessibilityState != null ||
|
|
1547
|
+
ariaBusy != null ||
|
|
1548
|
+
ariaChecked != null ||
|
|
1549
|
+
ariaDisabled != null ||
|
|
1550
|
+
ariaExpanded != null ||
|
|
1551
|
+
ariaSelected != null
|
|
1552
|
+
) {
|
|
1553
|
+
_accessibilityState = {
|
|
1554
|
+
busy: ariaBusy ?? accessibilityState?.busy,
|
|
1555
|
+
checked: ariaChecked ?? accessibilityState?.checked,
|
|
1556
|
+
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
1557
|
+
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
1558
|
+
selected: ariaSelected ?? accessibilityState?.selected,
|
|
1559
|
+
};
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1562
|
+
// Keep the original (potentially nested) style when possible, as React can diff these more efficiently
|
|
1563
|
+
let _style = props.style;
|
|
1564
|
+
const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
|
|
1565
|
+
if (flattenedStyle != null) {
|
|
1566
|
+
let overrides: ?{...TextStyleInternal} = null;
|
|
1567
|
+
if (typeof flattenedStyle?.fontWeight === 'number') {
|
|
1568
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1569
|
+
overrides.fontWeight =
|
|
1570
|
+
// $FlowFixMe[incompatible-cast]
|
|
1571
|
+
(flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
if (flattenedStyle.verticalAlign != null) {
|
|
1575
|
+
overrides = overrides || ({}: {...TextStyleInternal});
|
|
1576
|
+
overrides.textAlignVertical =
|
|
1577
|
+
verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
|
|
1578
|
+
overrides.verticalAlign = undefined;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
if (overrides != null) {
|
|
1582
|
+
// $FlowFixMe[incompatible-type]
|
|
1583
|
+
_style = [_style, overrides];
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
if (Platform.OS === 'ios') {
|
|
1588
|
+
const RCTTextInputView =
|
|
1589
|
+
props.multiline === true
|
|
1590
|
+
? RCTMultilineTextInputView
|
|
1591
|
+
: RCTSinglelineTextInputView;
|
|
1592
|
+
|
|
1593
|
+
const useMultilineDefaultStyle =
|
|
1594
|
+
props.multiline === true &&
|
|
1595
|
+
(flattenedStyle == null ||
|
|
1596
|
+
(flattenedStyle.padding == null &&
|
|
1597
|
+
flattenedStyle.paddingVertical == null &&
|
|
1598
|
+
flattenedStyle.paddingTop == null));
|
|
1070
1599
|
|
|
1071
1600
|
textInput = (
|
|
1072
1601
|
<RCTTextInputView
|
|
1073
|
-
|
|
1074
|
-
{
|
|
1602
|
+
// $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
|
|
1603
|
+
ref={ref}
|
|
1604
|
+
{...otherProps}
|
|
1605
|
+
{...eventHandlers}
|
|
1606
|
+
accessibilityState={_accessibilityState}
|
|
1607
|
+
accessible={accessible}
|
|
1608
|
+
submitBehavior={submitBehavior}
|
|
1609
|
+
caretHidden={caretHidden}
|
|
1075
1610
|
dataDetectorTypes={props.dataDetectorTypes}
|
|
1611
|
+
focusable={tabIndex !== undefined ? !tabIndex : focusable}
|
|
1612
|
+
mostRecentEventCount={mostRecentEventCount}
|
|
1613
|
+
nativeID={id ?? props.nativeID}
|
|
1076
1614
|
onBlur={_onBlur}
|
|
1077
1615
|
onChange={_onChange}
|
|
1078
1616
|
onContentSizeChange={props.onContentSizeChange}
|
|
@@ -1081,90 +1619,247 @@ function InternalTextInput(props: Props): React.Node {
|
|
|
1081
1619
|
onSelectionChange={_onSelectionChange}
|
|
1082
1620
|
onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
|
|
1083
1621
|
selection={selection}
|
|
1084
|
-
|
|
1622
|
+
selectionColor={selectionColor}
|
|
1623
|
+
style={StyleSheet.compose(
|
|
1624
|
+
useMultilineDefaultStyle ? styles.multilineDefault : null,
|
|
1625
|
+
_style,
|
|
1626
|
+
)}
|
|
1085
1627
|
text={text}
|
|
1086
1628
|
/>
|
|
1087
1629
|
);
|
|
1088
1630
|
} else if (Platform.OS === 'android') {
|
|
1089
|
-
const style = [props.style];
|
|
1090
1631
|
const autoCapitalize = props.autoCapitalize || 'sentences';
|
|
1632
|
+
const _accessibilityLabelledBy =
|
|
1633
|
+
props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
|
|
1634
|
+
const placeholder = props.placeholder ?? '';
|
|
1091
1635
|
let children = props.children;
|
|
1092
|
-
|
|
1093
|
-
React.Children.forEach(children, () => ++childCount);
|
|
1636
|
+
const childCount = React.Children.count(children);
|
|
1094
1637
|
invariant(
|
|
1095
|
-
!(props.value && childCount),
|
|
1638
|
+
!(props.value != null && childCount),
|
|
1096
1639
|
'Cannot specify both value and children.',
|
|
1097
1640
|
);
|
|
1098
1641
|
if (childCount > 1) {
|
|
1099
1642
|
children = <Text>{children}</Text>;
|
|
1100
1643
|
}
|
|
1101
|
-
|
|
1644
|
+
// For consistency with iOS set cursor/selectionHandle color as selectionColor
|
|
1645
|
+
const colorProps = {
|
|
1646
|
+
selectionColor,
|
|
1647
|
+
selectionHandleColor:
|
|
1648
|
+
selectionHandleColor === undefined
|
|
1649
|
+
? selectionColor
|
|
1650
|
+
: selectionHandleColor,
|
|
1651
|
+
cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
|
|
1652
|
+
};
|
|
1102
1653
|
textInput = (
|
|
1103
|
-
/* $FlowFixMe the types for AndroidTextInput don't match up
|
|
1104
|
-
|
|
1654
|
+
/* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
|
|
1655
|
+
* exactly with the props for TextInput. This will need to get fixed */
|
|
1656
|
+
/* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't
|
|
1657
|
+
* match up exactly with the props for TextInput. This will need to get
|
|
1658
|
+
* fixed */
|
|
1659
|
+
/* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't
|
|
1660
|
+
* match up exactly with the props for TextInput. This will need to get
|
|
1661
|
+
* fixed */
|
|
1105
1662
|
<AndroidTextInput
|
|
1106
|
-
|
|
1107
|
-
{
|
|
1663
|
+
// $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
|
|
1664
|
+
ref={ref}
|
|
1665
|
+
{...otherProps}
|
|
1666
|
+
{...colorProps}
|
|
1667
|
+
{...eventHandlers}
|
|
1668
|
+
accessibilityState={_accessibilityState}
|
|
1669
|
+
accessibilityLabelledBy={_accessibilityLabelledBy}
|
|
1670
|
+
accessible={accessible}
|
|
1108
1671
|
autoCapitalize={autoCapitalize}
|
|
1672
|
+
submitBehavior={submitBehavior}
|
|
1673
|
+
caretHidden={caretHidden}
|
|
1109
1674
|
children={children}
|
|
1110
1675
|
disableFullscreenUI={props.disableFullscreenUI}
|
|
1676
|
+
focusable={tabIndex !== undefined ? !tabIndex : focusable}
|
|
1111
1677
|
mostRecentEventCount={mostRecentEventCount}
|
|
1678
|
+
nativeID={id ?? props.nativeID}
|
|
1679
|
+
numberOfLines={props.rows ?? props.numberOfLines}
|
|
1112
1680
|
onBlur={_onBlur}
|
|
1113
1681
|
onChange={_onChange}
|
|
1114
1682
|
onFocus={_onFocus}
|
|
1115
|
-
/* $FlowFixMe the types for AndroidTextInput don't match
|
|
1116
|
-
* with the props for TextInput. This will need to get fixed
|
|
1683
|
+
/* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match
|
|
1684
|
+
* up exactly with the props for TextInput. This will need to get fixed
|
|
1685
|
+
*/
|
|
1686
|
+
/* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput
|
|
1687
|
+
* don't match up exactly with the props for TextInput. This will need
|
|
1688
|
+
* to get fixed */
|
|
1117
1689
|
onScroll={_onScroll}
|
|
1118
1690
|
onSelectionChange={_onSelectionChange}
|
|
1119
|
-
|
|
1120
|
-
style={
|
|
1691
|
+
placeholder={placeholder}
|
|
1692
|
+
style={_style}
|
|
1121
1693
|
text={text}
|
|
1122
1694
|
textBreakStrategy={props.textBreakStrategy}
|
|
1123
1695
|
/>
|
|
1124
1696
|
);
|
|
1125
1697
|
}
|
|
1126
1698
|
return (
|
|
1127
|
-
<TextAncestor.Provider value={true}>
|
|
1128
|
-
<TouchableWithoutFeedback
|
|
1129
|
-
onLayout={props.onLayout}
|
|
1130
|
-
onPress={_onPress}
|
|
1131
|
-
accessible={props.accessible}
|
|
1132
|
-
accessibilityLabel={props.accessibilityLabel}
|
|
1133
|
-
accessibilityRole={props.accessibilityRole}
|
|
1134
|
-
accessibilityState={props.accessibilityState}
|
|
1135
|
-
nativeID={props.nativeID}
|
|
1136
|
-
testID={props.testID}
|
|
1137
|
-
{...additionalTouchableProps}>
|
|
1138
|
-
{textInput}
|
|
1139
|
-
</TouchableWithoutFeedback>
|
|
1140
|
-
</TextAncestor.Provider>
|
|
1699
|
+
<TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>
|
|
1141
1700
|
);
|
|
1142
1701
|
}
|
|
1143
1702
|
|
|
1144
|
-
const
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
return <InternalTextInput {...props} forwardedRef={forwardedRef} />;
|
|
1154
|
-
});
|
|
1703
|
+
const enterKeyHintToReturnTypeMap = {
|
|
1704
|
+
enter: 'default',
|
|
1705
|
+
done: 'done',
|
|
1706
|
+
go: 'go',
|
|
1707
|
+
next: 'next',
|
|
1708
|
+
previous: 'previous',
|
|
1709
|
+
search: 'search',
|
|
1710
|
+
send: 'send',
|
|
1711
|
+
};
|
|
1155
1712
|
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1713
|
+
const inputModeToKeyboardTypeMap = {
|
|
1714
|
+
none: 'default',
|
|
1715
|
+
text: 'default',
|
|
1716
|
+
decimal: 'decimal-pad',
|
|
1717
|
+
numeric: 'number-pad',
|
|
1718
|
+
tel: 'phone-pad',
|
|
1719
|
+
search: Platform.OS === 'ios' ? 'web-search' : 'default',
|
|
1720
|
+
email: 'email-address',
|
|
1721
|
+
url: 'url',
|
|
1161
1722
|
};
|
|
1162
1723
|
|
|
1163
|
-
//
|
|
1164
|
-
|
|
1165
|
-
|
|
1724
|
+
// Map HTML autocomplete values to Android autoComplete values
|
|
1725
|
+
const autoCompleteWebToAutoCompleteAndroidMap = {
|
|
1726
|
+
'address-line1': 'postal-address-region',
|
|
1727
|
+
'address-line2': 'postal-address-locality',
|
|
1728
|
+
bday: 'birthdate-full',
|
|
1729
|
+
'bday-day': 'birthdate-day',
|
|
1730
|
+
'bday-month': 'birthdate-month',
|
|
1731
|
+
'bday-year': 'birthdate-year',
|
|
1732
|
+
'cc-csc': 'cc-csc',
|
|
1733
|
+
'cc-exp': 'cc-exp',
|
|
1734
|
+
'cc-exp-month': 'cc-exp-month',
|
|
1735
|
+
'cc-exp-year': 'cc-exp-year',
|
|
1736
|
+
'cc-number': 'cc-number',
|
|
1737
|
+
country: 'postal-address-country',
|
|
1738
|
+
'current-password': 'password',
|
|
1739
|
+
email: 'email',
|
|
1740
|
+
'honorific-prefix': 'name-prefix',
|
|
1741
|
+
'honorific-suffix': 'name-suffix',
|
|
1742
|
+
name: 'name',
|
|
1743
|
+
'additional-name': 'name-middle',
|
|
1744
|
+
'family-name': 'name-family',
|
|
1745
|
+
'given-name': 'name-given',
|
|
1746
|
+
'new-password': 'password-new',
|
|
1747
|
+
off: 'off',
|
|
1748
|
+
'one-time-code': 'sms-otp',
|
|
1749
|
+
'postal-code': 'postal-code',
|
|
1750
|
+
sex: 'gender',
|
|
1751
|
+
'street-address': 'street-address',
|
|
1752
|
+
tel: 'tel',
|
|
1753
|
+
'tel-country-code': 'tel-country-code',
|
|
1754
|
+
'tel-national': 'tel-national',
|
|
1755
|
+
username: 'username',
|
|
1756
|
+
};
|
|
1166
1757
|
|
|
1167
|
-
//
|
|
1758
|
+
// Map HTML autocomplete values to iOS textContentType values
|
|
1759
|
+
const autoCompleteWebToTextContentTypeMap = {
|
|
1760
|
+
'address-line1': 'streetAddressLine1',
|
|
1761
|
+
'address-line2': 'streetAddressLine2',
|
|
1762
|
+
bday: 'birthdate',
|
|
1763
|
+
'bday-day': 'birthdateDay',
|
|
1764
|
+
'bday-month': 'birthdateMonth',
|
|
1765
|
+
'bday-year': 'birthdateYear',
|
|
1766
|
+
'cc-csc': 'creditCardSecurityCode',
|
|
1767
|
+
'cc-exp-month': 'creditCardExpirationMonth',
|
|
1768
|
+
'cc-exp-year': 'creditCardExpirationYear',
|
|
1769
|
+
'cc-exp': 'creditCardExpiration',
|
|
1770
|
+
'cc-given-name': 'creditCardGivenName',
|
|
1771
|
+
'cc-additional-name': 'creditCardMiddleName',
|
|
1772
|
+
'cc-family-name': 'creditCardFamilyName',
|
|
1773
|
+
'cc-name': 'creditCardName',
|
|
1774
|
+
'cc-number': 'creditCardNumber',
|
|
1775
|
+
'cc-type': 'creditCardType',
|
|
1776
|
+
'current-password': 'password',
|
|
1777
|
+
country: 'countryName',
|
|
1778
|
+
email: 'emailAddress',
|
|
1779
|
+
name: 'name',
|
|
1780
|
+
'additional-name': 'middleName',
|
|
1781
|
+
'family-name': 'familyName',
|
|
1782
|
+
'given-name': 'givenName',
|
|
1783
|
+
nickname: 'nickname',
|
|
1784
|
+
'honorific-prefix': 'namePrefix',
|
|
1785
|
+
'honorific-suffix': 'nameSuffix',
|
|
1786
|
+
'new-password': 'newPassword',
|
|
1787
|
+
off: 'none',
|
|
1788
|
+
'one-time-code': 'oneTimeCode',
|
|
1789
|
+
organization: 'organizationName',
|
|
1790
|
+
'organization-title': 'jobTitle',
|
|
1791
|
+
'postal-code': 'postalCode',
|
|
1792
|
+
'street-address': 'fullStreetAddress',
|
|
1793
|
+
tel: 'telephoneNumber',
|
|
1794
|
+
url: 'URL',
|
|
1795
|
+
username: 'username',
|
|
1796
|
+
};
|
|
1797
|
+
|
|
1798
|
+
const ExportedForwardRef: component(
|
|
1799
|
+
ref: React.RefSetter<TextInputInstance>,
|
|
1800
|
+
...props: React.ElementConfig<typeof InternalTextInput>
|
|
1801
|
+
// $FlowFixMe[incompatible-call]
|
|
1802
|
+
) = React.forwardRef(function TextInput(
|
|
1803
|
+
{
|
|
1804
|
+
allowFontScaling = true,
|
|
1805
|
+
rejectResponderTermination = true,
|
|
1806
|
+
underlineColorAndroid = 'transparent',
|
|
1807
|
+
autoComplete,
|
|
1808
|
+
textContentType,
|
|
1809
|
+
readOnly,
|
|
1810
|
+
editable,
|
|
1811
|
+
enterKeyHint,
|
|
1812
|
+
returnKeyType,
|
|
1813
|
+
inputMode,
|
|
1814
|
+
showSoftInputOnFocus,
|
|
1815
|
+
keyboardType,
|
|
1816
|
+
...restProps
|
|
1817
|
+
},
|
|
1818
|
+
forwardedRef: ReactRefSetter<TextInputInstance>,
|
|
1819
|
+
) {
|
|
1820
|
+
return (
|
|
1821
|
+
<InternalTextInput
|
|
1822
|
+
allowFontScaling={allowFontScaling}
|
|
1823
|
+
rejectResponderTermination={rejectResponderTermination}
|
|
1824
|
+
underlineColorAndroid={underlineColorAndroid}
|
|
1825
|
+
editable={readOnly !== undefined ? !readOnly : editable}
|
|
1826
|
+
returnKeyType={
|
|
1827
|
+
enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType
|
|
1828
|
+
}
|
|
1829
|
+
keyboardType={
|
|
1830
|
+
inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
|
|
1831
|
+
}
|
|
1832
|
+
showSoftInputOnFocus={
|
|
1833
|
+
inputMode == null ? showSoftInputOnFocus : inputMode !== 'none'
|
|
1834
|
+
}
|
|
1835
|
+
autoComplete={
|
|
1836
|
+
Platform.OS === 'android'
|
|
1837
|
+
? // $FlowFixMe[invalid-computed-prop]
|
|
1838
|
+
// $FlowFixMe[prop-missing]
|
|
1839
|
+
autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
|
|
1840
|
+
autoComplete
|
|
1841
|
+
: undefined
|
|
1842
|
+
}
|
|
1843
|
+
textContentType={
|
|
1844
|
+
textContentType != null
|
|
1845
|
+
? textContentType
|
|
1846
|
+
: Platform.OS === 'ios' &&
|
|
1847
|
+
autoComplete &&
|
|
1848
|
+
autoComplete in autoCompleteWebToTextContentTypeMap
|
|
1849
|
+
? // $FlowFixMe[invalid-computed-prop]
|
|
1850
|
+
// $FlowFixMe[prop-missing]
|
|
1851
|
+
autoCompleteWebToTextContentTypeMap[autoComplete]
|
|
1852
|
+
: textContentType
|
|
1853
|
+
}
|
|
1854
|
+
{...restProps}
|
|
1855
|
+
forwardedRef={forwardedRef}
|
|
1856
|
+
/>
|
|
1857
|
+
);
|
|
1858
|
+
});
|
|
1859
|
+
|
|
1860
|
+
ExportedForwardRef.displayName = 'TextInput';
|
|
1861
|
+
|
|
1862
|
+
// $FlowFixMe[prop-missing]
|
|
1168
1863
|
ExportedForwardRef.State = {
|
|
1169
1864
|
currentlyFocusedInput: TextInputState.currentlyFocusedInput,
|
|
1170
1865
|
|
|
@@ -1173,18 +1868,17 @@ ExportedForwardRef.State = {
|
|
|
1173
1868
|
blurTextInput: TextInputState.blurTextInput,
|
|
1174
1869
|
};
|
|
1175
1870
|
|
|
1176
|
-
type TextInputComponentStatics = $ReadOnly<{|
|
|
1871
|
+
export type TextInputComponentStatics = $ReadOnly<{|
|
|
1177
1872
|
State: $ReadOnly<{|
|
|
1178
1873
|
currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
|
|
1179
1874
|
currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
|
|
1180
1875
|
focusTextInput: typeof TextInputState.focusTextInput,
|
|
1181
1876
|
blurTextInput: typeof TextInputState.blurTextInput,
|
|
1182
1877
|
|}>,
|
|
1183
|
-
propTypes: typeof DeprecatedTextInputPropTypes,
|
|
1184
1878
|
|}>;
|
|
1185
1879
|
|
|
1186
1880
|
const styles = StyleSheet.create({
|
|
1187
|
-
|
|
1881
|
+
multilineDefault: {
|
|
1188
1882
|
// This default top inset makes RCTMultilineTextInputView seem as close as possible
|
|
1189
1883
|
// to single-line RCTSinglelineTextInputView defaults, using the system defaults
|
|
1190
1884
|
// of font size 17 and a height of 31 points.
|
|
@@ -1192,11 +1886,12 @@ const styles = StyleSheet.create({
|
|
|
1192
1886
|
},
|
|
1193
1887
|
});
|
|
1194
1888
|
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1889
|
+
const verticalAlignToTextAlignVerticalMap = {
|
|
1890
|
+
auto: 'auto',
|
|
1891
|
+
top: 'top',
|
|
1892
|
+
bottom: 'bottom',
|
|
1893
|
+
middle: 'center',
|
|
1894
|
+
};
|
|
1895
|
+
|
|
1896
|
+
// $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
|
|
1897
|
+
module.exports = ((ExportedForwardRef: any): TextInputType);
|