@react-native-oh/react-native-harmony 0.72.82 → 0.77.18-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSE-Meta +21 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +87 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +175 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +13 -0
- package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +34 -0
- package/Libraries/Alert/Alert.d.ts +91 -0
- package/Libraries/Alert/Alert.js +181 -0
- package/Libraries/Alert/NativeAlertManager.js +13 -0
- package/Libraries/Alert/RCTAlertManager.android.js +27 -0
- package/Libraries/Alert/RCTAlertManager.ios.js +25 -0
- package/Libraries/Alert/RCTAlertManager.js.flow +18 -0
- package/Libraries/Alert/delegates/AlertDelegate.harmony.ts +84 -0
- package/Libraries/Alert/delegates/AlertDelegate.ts +33 -0
- package/Libraries/Alert/{AlertManager.ts → delegates/AlertManager.harmony.ts} +10 -4
- package/Libraries/Alert/delegates/BaseAlertDelegate.ts +37 -0
- 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 +171 -0
- package/Libraries/Animated/animations/DecayAnimation.js +121 -0
- package/Libraries/Animated/animations/SpringAnimation.js +372 -0
- package/Libraries/Animated/animations/TimingAnimation.js +173 -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 +64 -0
- package/Libraries/Animated/nodes/AnimatedColor.js +320 -0
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +72 -0
- package/Libraries/Animated/nodes/AnimatedDivision.js +80 -0
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +416 -0
- package/Libraries/Animated/nodes/AnimatedModulo.js +63 -0
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +63 -0
- package/Libraries/Animated/nodes/AnimatedNode.js +200 -0
- package/Libraries/Animated/nodes/AnimatedObject.js +162 -0
- package/Libraries/Animated/nodes/AnimatedProps.js +281 -0
- package/Libraries/Animated/nodes/AnimatedStyle.js +251 -0
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +64 -0
- package/Libraries/Animated/nodes/AnimatedTracking.js +100 -0
- package/Libraries/Animated/nodes/AnimatedTransform.js +198 -0
- package/Libraries/Animated/nodes/AnimatedValue.js +303 -0
- package/Libraries/Animated/nodes/AnimatedValueXY.js +236 -0
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
- package/Libraries/Animated/shouldUseTurboAnimatedModule.harmony.ts +10 -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/AppDelegate/RCTAppDelegate+Protected.h +16 -0
- package/Libraries/AppDelegate/RCTAppDelegate.h +122 -0
- package/Libraries/AppDelegate/RCTAppDelegate.mm +330 -0
- package/Libraries/AppDelegate/RCTAppSetupUtils.h +59 -0
- package/Libraries/AppDelegate/RCTAppSetupUtils.mm +167 -0
- package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +32 -0
- package/Libraries/AppDelegate/RCTDependencyProvider.h +26 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.h +198 -0
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +310 -0
- package/Libraries/AppDelegate/RCTUIConfiguratorProtocol.h +56 -0
- package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +99 -0
- package/Libraries/AppState/AppState.d.ts +58 -0
- package/Libraries/AppState/AppState.js +128 -0
- package/Libraries/AppState/NativeAppState.js +13 -0
- package/Libraries/BatchedBridge/BatchedBridge.js +28 -0
- package/Libraries/BatchedBridge/MessageQueue.js +492 -0
- package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
- package/Libraries/BatchedBridge/NativeModules.js +212 -0
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +38 -0
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +22 -0
- package/Libraries/Blob/Blob.js +158 -0
- package/Libraries/Blob/BlobManager.js +179 -0
- package/Libraries/Blob/BlobRegistry.js +43 -0
- package/Libraries/Blob/BlobTypes.js +30 -0
- package/Libraries/Blob/File.js +55 -0
- package/Libraries/Blob/FileReader.js +186 -0
- package/Libraries/Blob/NativeBlobModule.js +13 -0
- package/Libraries/Blob/NativeFileReaderModule.js +13 -0
- package/Libraries/Blob/RCTBlobCollector.h +26 -0
- package/Libraries/Blob/RCTBlobCollector.mm +57 -0
- package/Libraries/Blob/RCTBlobManager.h +35 -0
- package/Libraries/Blob/RCTBlobManager.mm +358 -0
- package/Libraries/Blob/RCTBlobPlugins.h +41 -0
- package/Libraries/Blob/RCTBlobPlugins.mm +34 -0
- package/Libraries/Blob/RCTFileReaderModule.h +12 -0
- package/Libraries/Blob/RCTFileReaderModule.mm +96 -0
- package/Libraries/Blob/React-RCTBlob.podspec +68 -0
- package/Libraries/Blob/URL.js +173 -0
- package/Libraries/Blob/URLSearchParams.js +71 -0
- package/Libraries/Blob/URLSearchParams.js.flow +23 -0
- package/Libraries/Blob/__mocks__/BlobModule.js +16 -0
- package/Libraries/Blob/__mocks__/FileReaderModule.js +20 -0
- package/Libraries/BugReporting/BugReporting.js +140 -0
- package/Libraries/BugReporting/NativeBugReporting.js +13 -0
- package/Libraries/BugReporting/dumpReactTree.js +151 -0
- package/Libraries/BugReporting/getReactData.js +187 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +173 -0
- package/Libraries/Components/AccessibilityInfo/{AccessibilityInfo.harmony.js → AccessibilityInfo.js} +142 -69
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +13 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +13 -0
- package/Libraries/Components/AccessibilityInfo/delegates/AccessibilityInfoDelegate.harmony.ts +44 -0
- package/Libraries/Components/AccessibilityInfo/delegates/AccessibilityInfoDelegate.ts +28 -0
- package/Libraries/Components/AccessibilityInfo/delegates/BaseAccessibilityInfoDelegate.ts +69 -0
- package/Libraries/Components/AccessibilityInfo/{NativeAccessibilityInfoHarmony.ts → delegates/NativeAccessibilityInfoHarmony.harmony.ts} +9 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +20 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +177 -0
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +13 -0
- package/Libraries/Components/Button.d.ts +42 -0
- package/Libraries/Components/{Button/Button.harmony.js → Button.js} +132 -133
- package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
- package/Libraries/Components/Clipboard/Clipboard.js +40 -0
- package/Libraries/Components/Clipboard/NativeClipboard.js +13 -0
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +13 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +394 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +14 -0
- package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
- package/Libraries/Components/Keyboard/Keyboard.js +205 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
- package/Libraries/Components/Keyboard/{KeyboardAvoidingView.harmony.js → KeyboardAvoidingView.js} +72 -23
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +13 -0
- package/Libraries/Components/Keyboard/delegates/BaseKeyboardAvoidingViewDelegate.ts +28 -0
- package/Libraries/Components/Keyboard/delegates/KeyboardAvoidingViewDelegate.harmony.ts +42 -0
- package/Libraries/Components/Keyboard/delegates/KeyboardAvoidingViewDelegate.ts +6 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
- package/Libraries/Components/Pressable/Pressable.js +369 -0
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +109 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +113 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +13 -0
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +13 -0
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +13 -0
- package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
- package/Libraries/Components/RefreshControl/{RefreshControl.harmony.js → RefreshControl.js} +62 -53
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +31 -0
- package/Libraries/Components/RefreshControl/delegates/BaseRefreshControlDelegate.ts +31 -0
- package/Libraries/Components/RefreshControl/delegates/RefreshControlDelegate.harmony.tsx +29 -0
- package/Libraries/Components/RefreshControl/delegates/RefreshControlDelegate.ts +21 -0
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +13 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.harmony.tsx +93 -31
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +34 -0
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +13 -0
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +73 -0
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +32 -0
- package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
- package/Libraries/Components/ScrollView/{ScrollView.harmony.js → ScrollView.js} +342 -357
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +52 -0
- package/Libraries/Components/ScrollView/ScrollViewContext.js +24 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +31 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +81 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +310 -0
- package/Libraries/Components/ScrollView/delegates/BaseScrollViewDelegate.ts +36 -0
- package/Libraries/Components/ScrollView/delegates/BaseScrollViewNativeComponentDelegate.ts +12 -0
- package/Libraries/Components/ScrollView/delegates/ScrollViewDelegate.harmony.tsx +41 -0
- package/Libraries/Components/ScrollView/delegates/ScrollViewDelegate.ts +23 -0
- package/Libraries/Components/ScrollView/delegates/ScrollViewNativeComponentDelegate.harmony.ts +89 -0
- package/Libraries/Components/ScrollView/delegates/ScrollViewNativeComponentDelegate.ts +14 -0
- package/Libraries/Components/ScrollView/delegates/types.ts +1 -0
- package/Libraries/Components/ScrollView/processDecelerationRate.harmony.ts +19 -0
- package/Libraries/Components/ScrollView/{processDecelerationRate.harmony.js → processDecelerationRate.js} +12 -6
- package/Libraries/Components/Sound/NativeSoundManager.js +13 -0
- package/Libraries/Components/Sound/SoundManager.js +21 -0
- package/Libraries/Components/StaticRenderer.js +37 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +13 -0
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +13 -0
- package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
- package/Libraries/Components/StatusBar/{StatusBar.harmony.js → StatusBar.js} +124 -91
- package/Libraries/Components/StatusBar/delegates/BaseStatusBarDelegate.ts +25 -0
- package/Libraries/Components/StatusBar/delegates/NativeStatusBarManagerHarmony.harmony.ts +53 -0
- package/Libraries/Components/StatusBar/delegates/StatusBarDelegate.harmony.ts +83 -0
- package/Libraries/Components/StatusBar/delegates/StatusBarDelegate.ts +44 -0
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +13 -0
- package/Libraries/Components/Switch/Switch.d.ts +115 -0
- package/Libraries/Components/Switch/Switch.js +257 -0
- package/Libraries/Components/Switch/SwitchNativeComponent.js +13 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +751 -0
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +123 -0
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +13 -0
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +45 -0
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +43 -0
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +168 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +1007 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +1109 -0
- package/Libraries/Components/TextInput/{TextInput.harmony.js → TextInput.js} +568 -336
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
- package/Libraries/Components/TextInput/TextInputState.js +216 -0
- package/Libraries/Components/TextInput/delegates/BaseTextInputDelegate.ts +39 -0
- package/Libraries/Components/TextInput/delegates/BaseTextInputStateDelegate.ts +12 -0
- package/Libraries/Components/TextInput/delegates/TextInputDelegate.harmony.tsx +98 -0
- package/Libraries/Components/TextInput/delegates/TextInputDelegate.ts +40 -0
- package/Libraries/Components/TextInput/delegates/TextInputStateDelegate.harmony.tsx +20 -0
- package/Libraries/Components/TextInput/delegates/TextInputStateDelegate.ts +15 -0
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +13 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +74 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
- package/Libraries/Components/Touchable/BoundingDimensions.js +53 -0
- package/Libraries/Components/Touchable/PooledClass.js +133 -0
- package/Libraries/Components/Touchable/Position.js +40 -0
- package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
- package/Libraries/Components/Touchable/Touchable.js +973 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +222 -0
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
- package/Libraries/Components/Touchable/{TouchableHighlight.harmony.js → TouchableHighlight.js} +49 -47
- package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
- package/Libraries/Components/Touchable/{TouchableNativeFeedback.harmony.js → TouchableNativeFeedback.js} +79 -73
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +339 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +238 -0
- package/Libraries/Components/Touchable/delegates/BaseTouchableHighlightDelegate.ts +13 -0
- package/Libraries/Components/Touchable/delegates/BaseTouchableNativeFeedbackDelegate.ts +13 -0
- package/Libraries/Components/Touchable/delegates/BaseTouchableWithoutFeedbackDelegate.ts +13 -0
- package/Libraries/Components/Touchable/delegates/TouchableHighlightDelegate.harmony.ts +14 -0
- package/Libraries/Components/Touchable/delegates/TouchableHighlightDelegate.ts +6 -0
- package/Libraries/Components/Touchable/delegates/TouchableNativeFeedbackDelegate.harmony.ts +14 -0
- package/Libraries/Components/Touchable/delegates/TouchableNativeFeedbackDelegate.ts +6 -0
- package/Libraries/Components/Touchable/delegates/TouchableWithoutFeedbackDelegate.harmony.ts +14 -0
- package/Libraries/Components/Touchable/delegates/TouchableWithoutFeedbackDelegate.ts +6 -0
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +13 -0
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +41 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +218 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +60 -0
- package/Libraries/Components/View/View.d.ts +29 -0
- package/Libraries/Components/View/{View.harmony.js → View.js} +37 -53
- package/Libraries/Components/View/ViewAccessibility.d.ts +404 -0
- package/Libraries/Components/View/ViewAccessibility.js +167 -0
- package/Libraries/Components/View/ViewNativeComponent.js +36 -0
- package/Libraries/Components/View/ViewPropTypes.d.ts +221 -0
- package/Libraries/Components/View/ViewPropTypes.js +656 -0
- package/Libraries/Components/delegates/BaseButtonDelegate.ts +15 -0
- package/Libraries/Components/delegates/ButtonDelegate.harmony.ts +41 -0
- package/Libraries/Components/delegates/ButtonDelegate.ts +27 -0
- package/Libraries/Core/Devtools/getDevServer.js +43 -0
- package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
- package/Libraries/Core/Devtools/openFileInEditor.js +26 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +23 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +59 -0
- package/Libraries/Core/Devtools/parseHermesStack.js +147 -0
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +50 -0
- package/Libraries/Core/ExceptionsManager.js +282 -0
- package/Libraries/Core/ExtendedError.js +33 -0
- package/Libraries/Core/InitializeCore.js +60 -0
- package/Libraries/Core/NativeExceptionsManager.js +13 -0
- package/Libraries/Core/RawEventEmitter.js +39 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +65 -0
- package/Libraries/Core/ReactNativeVersion.js +23 -0
- package/Libraries/Core/ReactNativeVersionCheck.js +52 -0
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +13 -0
- package/Libraries/Core/Timers/JSTimers.js +487 -0
- package/Libraries/Core/Timers/NativeTiming.js +13 -0
- package/Libraries/Core/Timers/immediateShim.js +68 -0
- package/Libraries/Core/Timers/queueMicrotask.js +41 -0
- package/Libraries/Core/__mocks__/ErrorUtils.js +33 -0
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +19 -0
- package/Libraries/Core/checkNativeVersion.js +18 -0
- package/Libraries/Core/polyfillPromise.js +38 -0
- package/Libraries/Core/registerCallableModule.d.ts +16 -0
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpAlert.js +23 -0
- package/Libraries/Core/setUpBatchedBridge.js +50 -0
- package/Libraries/Core/setUpDeveloperTools.js +82 -0
- package/Libraries/Core/setUpErrorHandling.js +35 -0
- package/Libraries/Core/setUpGlobals.js +36 -0
- package/Libraries/Core/setUpNavigator.js +22 -0
- package/Libraries/Core/setUpPerformance.js +31 -0
- package/Libraries/Core/setUpPlatform.harmony.js +30 -0
- package/Libraries/Core/setUpPlatform.js +1 -0
- package/Libraries/Core/setUpReactDevTools.js +252 -0
- package/Libraries/Core/setUpReactRefresh.js +47 -0
- package/Libraries/Core/setUpRegeneratorRuntime.js +46 -0
- package/Libraries/Core/setUpSegmentFetcher.js +53 -0
- package/Libraries/Core/setUpTimers.js +125 -0
- package/Libraries/Core/setUpXHR.js +41 -0
- 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 +122 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +43 -0
- package/Libraries/EventEmitter/RCTEventEmitter.js +25 -0
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +18 -0
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +48 -0
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/FBLazyVector/FBLazyVector/FBLazyIterator.h +127 -0
- package/Libraries/FBLazyVector/FBLazyVector/FBLazyVector.h +102 -0
- package/Libraries/FBLazyVector/FBLazyVector.podspec +31 -0
- package/Libraries/HeapCapture/HeapCapture.js +29 -0
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +13 -0
- package/Libraries/Image/AssetRegistry.js +13 -0
- package/Libraries/Image/AssetSourceResolver.harmony.ts +75 -29
- package/Libraries/Image/AssetSourceResolver.js +202 -0
- package/Libraries/Image/AssetUtils.js +47 -0
- package/Libraries/Image/Image.android.js +322 -0
- package/Libraries/Image/Image.d.ts +373 -0
- package/Libraries/Image/Image.harmony.ts +17 -0
- package/Libraries/Image/Image.ios.js +252 -0
- package/Libraries/Image/Image.js.flow +13 -0
- package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
- package/Libraries/Image/ImageBackground.js +106 -0
- package/Libraries/Image/ImageInjection.js +87 -0
- package/Libraries/Image/ImageProps.js +296 -0
- package/Libraries/Image/ImageResizeMode.d.ts +56 -0
- package/Libraries/Image/ImageResizeMode.js +39 -0
- package/Libraries/Image/ImageSource.d.ts +74 -0
- package/Libraries/Image/ImageSource.js +135 -0
- package/Libraries/Image/ImageSourceUtils.js +80 -0
- package/Libraries/Image/ImageTypes.flow.js +78 -0
- package/Libraries/Image/ImageUtils.js +25 -0
- package/Libraries/Image/ImageViewNativeComponent.js +175 -0
- package/Libraries/Image/NativeImageEditor.js +13 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +13 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +13 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
- package/Libraries/Image/NativeImageStoreIOS.js +13 -0
- package/Libraries/Image/RCTAnimatedImage.h +21 -0
- package/Libraries/Image/RCTAnimatedImage.mm +175 -0
- package/Libraries/Image/RCTBundleAssetImageLoader.h +12 -0
- package/Libraries/Image/RCTBundleAssetImageLoader.mm +83 -0
- package/Libraries/Image/RCTDisplayWeakRefreshable.h +23 -0
- package/Libraries/Image/RCTDisplayWeakRefreshable.mm +31 -0
- package/Libraries/Image/RCTGIFImageDecoder.h +12 -0
- package/Libraries/Image/RCTGIFImageDecoder.mm +63 -0
- package/Libraries/Image/RCTImageBlurUtils.h +13 -0
- package/Libraries/Image/RCTImageBlurUtils.mm +100 -0
- package/Libraries/Image/RCTImageCache.h +45 -0
- package/Libraries/Image/RCTImageCache.mm +164 -0
- package/Libraries/Image/RCTImageDataDecoder.h +53 -0
- package/Libraries/Image/RCTImageEditingManager.h +12 -0
- package/Libraries/Image/RCTImageEditingManager.mm +113 -0
- package/Libraries/Image/RCTImageLoader.h +43 -0
- package/Libraries/Image/RCTImageLoader.mm +1302 -0
- package/Libraries/Image/RCTImageLoaderLoggable.h +32 -0
- package/Libraries/Image/RCTImageLoaderProtocol.h +135 -0
- package/Libraries/Image/RCTImageLoaderWithAttributionProtocol.h +48 -0
- package/Libraries/Image/RCTImagePlugins.h +44 -0
- package/Libraries/Image/RCTImagePlugins.mm +37 -0
- package/Libraries/Image/RCTImageShadowView.h +12 -0
- package/Libraries/Image/RCTImageShadowView.mm +24 -0
- package/Libraries/Image/RCTImageStoreManager.h +55 -0
- package/Libraries/Image/RCTImageStoreManager.mm +296 -0
- package/Libraries/Image/RCTImageURLLoader.h +83 -0
- package/Libraries/Image/RCTImageURLLoaderWithAttribution.h +78 -0
- package/Libraries/Image/RCTImageURLLoaderWithAttribution.mm +32 -0
- package/Libraries/Image/RCTImageUtils.h +94 -0
- package/Libraries/Image/RCTImageUtils.mm +389 -0
- package/Libraries/Image/RCTImageView.h +27 -0
- package/Libraries/Image/RCTImageView.mm +504 -0
- package/Libraries/Image/RCTImageViewManager.h +12 -0
- package/Libraries/Image/RCTImageViewManager.mm +116 -0
- package/Libraries/Image/RCTLocalAssetImageLoader.h +13 -0
- package/Libraries/Image/RCTLocalAssetImageLoader.mm +83 -0
- package/Libraries/Image/RCTResizeMode.h +53 -0
- package/Libraries/Image/RCTResizeMode.mm +25 -0
- package/Libraries/Image/RCTUIImageViewAnimated.h +13 -0
- package/Libraries/Image/RCTUIImageViewAnimated.mm +346 -0
- package/Libraries/Image/React-RCTImage.podspec +60 -0
- package/Libraries/Image/RelativeImageStub.js +28 -0
- package/Libraries/Image/TextInlineImageNativeComponent.js +51 -0
- package/Libraries/Image/nativeImageSource.js +64 -0
- package/Libraries/Image/resolveAssetSource.js +143 -0
- package/Libraries/Inspector/BorderBox.js +32 -0
- package/Libraries/Inspector/BoxInspector.js +109 -0
- package/Libraries/Inspector/ElementBox.js +143 -0
- package/Libraries/Inspector/ElementProperties.js +120 -0
- package/Libraries/Inspector/Inspector.js +206 -0
- package/Libraries/Inspector/InspectorOverlay.js +65 -0
- package/Libraries/Inspector/InspectorPanel.js +164 -0
- package/Libraries/Inspector/NetworkOverlay.js +611 -0
- package/Libraries/Inspector/PerformanceOverlay.js +63 -0
- package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
- package/Libraries/Inspector/StyleInspector.js +70 -0
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
- package/Libraries/Inspector/resolveBoxStyle.js +114 -0
- package/Libraries/Interaction/FrameRateLogger.js +72 -0
- package/Libraries/Interaction/InteractionManager.d.ts +74 -0
- package/Libraries/Interaction/InteractionManager.js +216 -0
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/JSEventLoopWatchdog.js +88 -0
- package/Libraries/Interaction/NativeFrameRateLogger.js +13 -0
- package/Libraries/Interaction/PanResponder.d.ts +202 -0
- package/Libraries/Interaction/PanResponder.js +579 -0
- package/Libraries/Interaction/TaskQueue.js +183 -0
- package/Libraries/Interaction/TouchHistoryMath.js +156 -0
- package/Libraries/JSInspector/InspectorAgent.js +27 -0
- package/Libraries/JSInspector/JSInspector.js +33 -0
- package/Libraries/JSInspector/NetworkAgent.js +295 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +200 -0
- package/Libraries/Linking/Linking.d.ts +61 -0
- package/Libraries/Linking/Linking.js +133 -0
- package/Libraries/Linking/NativeIntentAndroid.js +13 -0
- package/Libraries/Linking/NativeLinkingManager.js +13 -0
- package/Libraries/LinkingIOS/RCTLinkingManager.h +27 -0
- package/Libraries/LinkingIOS/RCTLinkingManager.mm +204 -0
- package/Libraries/LinkingIOS/RCTLinkingPlugins.h +40 -0
- package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +33 -0
- package/Libraries/LinkingIOS/React-RCTLinking.podspec +56 -0
- package/Libraries/Lists/FillRateHelper.js +19 -0
- package/Libraries/Lists/FlatList.d.ts +244 -0
- package/Libraries/Lists/FlatList.js +717 -0
- package/Libraries/Lists/SectionList.d.ts +267 -0
- package/Libraries/Lists/SectionList.js +269 -0
- package/Libraries/Lists/SectionListModern.js +249 -0
- package/Libraries/Lists/ViewabilityHelper.js +24 -0
- package/Libraries/Lists/VirtualizeUtils.js +18 -0
- package/Libraries/Lists/VirtualizedList.js +23 -0
- package/Libraries/Lists/VirtualizedListContext.js +18 -0
- package/Libraries/Lists/VirtualizedSectionList.js +22 -0
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +118 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +134 -0
- package/Libraries/LogBox/Data/LogBoxData.js +511 -0
- package/Libraries/LogBox/Data/LogBoxLog.js +257 -0
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +65 -0
- package/Libraries/LogBox/Data/parseLogBoxLog.js +514 -0
- package/Libraries/LogBox/LogBox.d.ts +28 -0
- package/Libraries/LogBox/LogBox.js +291 -0
- package/Libraries/LogBox/LogBoxInspectorContainer.js +68 -0
- package/Libraries/LogBox/LogBoxNotificationContainer.js +105 -0
- package/Libraries/LogBox/UI/AnsiHighlight.js +121 -0
- package/Libraries/LogBox/UI/LogBoxButton.js +70 -0
- 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 +89 -0
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +164 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +70 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +108 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +125 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +188 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +133 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +114 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +221 -0
- package/Libraries/LogBox/UI/LogBoxMessage.js +169 -0
- package/Libraries/LogBox/UI/LogBoxNotification.js +83 -0
- 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 +65 -0
- package/Libraries/Modal/Modal.d.ts +116 -0
- package/Libraries/Modal/Modal.js +365 -0
- package/Libraries/Modal/ModalInjection.js +15 -0
- package/Libraries/Modal/NativeModalManager.js +13 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +13 -0
- package/Libraries/NativeAnimation/Drivers/RCTAnimationDriver.h +38 -0
- package/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.h +12 -0
- package/Libraries/NativeAnimation/Drivers/RCTDecayAnimation.mm +125 -0
- package/Libraries/NativeAnimation/Drivers/RCTEventAnimation.h +20 -0
- package/Libraries/NativeAnimation/Drivers/RCTEventAnimation.mm +36 -0
- package/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.h +12 -0
- package/Libraries/NativeAnimation/Drivers/RCTFrameAnimation.mm +151 -0
- package/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.h +12 -0
- package/Libraries/NativeAnimation/Drivers/RCTSpringAnimation.mm +200 -0
- package/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.mm +25 -0
- package/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.h +50 -0
- package/Libraries/NativeAnimation/Nodes/RCTAnimatedNode.mm +126 -0
- package/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.h +14 -0
- package/Libraries/NativeAnimation/Nodes/RCTColorAnimatedNode.mm +29 -0
- package/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.mm +64 -0
- package/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.mm +32 -0
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.h +26 -0
- package/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm +169 -0
- package/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.mm +22 -0
- package/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.mm +26 -0
- package/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.h +14 -0
- package/Libraries/NativeAnimation/Nodes/RCTObjectAnimatedNode.mm +66 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.h +26 -0
- package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.mm +146 -0
- package/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.h +14 -0
- package/Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.mm +62 -0
- package/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.mm +25 -0
- package/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.h +12 -0
- package/Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.mm +47 -0
- package/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.h +14 -0
- package/Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.mm +55 -0
- package/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.h +30 -0
- package/Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.mm +60 -0
- package/Libraries/NativeAnimation/RCTAnimationPlugins.h +41 -0
- package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +34 -0
- package/Libraries/NativeAnimation/RCTAnimationUtils.h +46 -0
- package/Libraries/NativeAnimation/RCTAnimationUtils.mm +129 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.h +28 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +395 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +94 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +511 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +25 -0
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +411 -0
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +56 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +423 -0
- package/Libraries/NativeComponent/BaseViewConfig.harmony.js +12 -326
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +423 -0
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +14 -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 +55 -0
- package/Libraries/NativeComponent/delegates/BaseViewConfigIgnoreDelegate.ts +10 -0
- package/Libraries/NativeComponent/delegates/ViewConfigIgnoreDelegate.harmony.ts +13 -0
- package/Libraries/NativeComponent/delegates/ViewConfigIgnoreDelegate.ts +10 -0
- package/Libraries/NativeModules/specs/NativeDevMenu.js +13 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +13 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +13 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +13 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +13 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +13 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +13 -0
- package/Libraries/Network/FormData.js +108 -0
- package/Libraries/Network/NativeNetworkingAndroid.js +13 -0
- package/Libraries/Network/NativeNetworkingIOS.js +13 -0
- package/Libraries/Network/RCTDataRequestHandler.h +16 -0
- package/Libraries/Network/RCTDataRequestHandler.mm +86 -0
- package/Libraries/Network/RCTFileRequestHandler.h +16 -0
- package/Libraries/Network/RCTFileRequestHandler.mm +100 -0
- package/Libraries/Network/RCTHTTPRequestHandler.h +22 -0
- package/Libraries/Network/RCTHTTPRequestHandler.mm +195 -0
- package/Libraries/Network/RCTNetworkPlugins.h +43 -0
- package/Libraries/Network/RCTNetworkPlugins.mm +36 -0
- package/Libraries/Network/RCTNetworkTask.h +47 -0
- package/Libraries/Network/RCTNetworkTask.mm +228 -0
- package/Libraries/Network/RCTNetworking.android.js +95 -0
- package/Libraries/Network/RCTNetworking.h +86 -0
- package/Libraries/Network/RCTNetworking.ios.js +112 -0
- package/Libraries/Network/RCTNetworking.js.flow +89 -0
- package/Libraries/Network/RCTNetworking.mm +823 -0
- package/Libraries/Network/React-RCTNetwork.podspec +56 -0
- package/Libraries/Network/XHRInterceptor.js +214 -0
- package/Libraries/Network/XMLHttpRequest.js +698 -0
- package/Libraries/Network/convertRequestBody.js +43 -0
- package/Libraries/Network/fetch.js +19 -0
- package/Libraries/NewAppScreen/components/Colors.js +19 -0
- package/Libraries/NewAppScreen/components/DebugInstructions.js +41 -0
- package/Libraries/NewAppScreen/components/Header.js +77 -0
- package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +148 -0
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +39 -0
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/NewAppScreen/index.js +25 -0
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +13 -0
- package/Libraries/Performance/SamplingProfiler.js +39 -0
- package/Libraries/Performance/Systrace.d.ts +66 -0
- package/Libraries/Performance/Systrace.js +139 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +13 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +163 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +299 -0
- package/Libraries/Pressability/HoverState.js +58 -0
- package/Libraries/Pressability/Pressability.js +954 -0
- package/Libraries/Pressability/PressabilityDebug.js +85 -0
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
- package/Libraries/Pressability/PressabilityTypes.js +18 -0
- package/Libraries/Pressability/usePressability.js +60 -0
- package/Libraries/Promise.js +23 -0
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +13 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +569 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.h +48 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +590 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.h +40 -0
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +33 -0
- package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +56 -0
- package/Libraries/ReactNative/AppContainer-dev.js +208 -0
- package/Libraries/ReactNative/AppContainer-prod.js +50 -0
- package/Libraries/ReactNative/AppContainer.js +31 -0
- package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
- package/Libraries/ReactNative/AppRegistry.js +360 -0
- package/Libraries/ReactNative/BridgelessUIManager.js +430 -0
- package/Libraries/ReactNative/DisplayMode.js +32 -0
- package/Libraries/ReactNative/FabricUIManager.js +145 -0
- package/Libraries/ReactNative/HeadlessJsTaskError.js +11 -0
- package/Libraries/ReactNative/I18nManager.d.ts +25 -0
- package/Libraries/ReactNative/{I18nManager.harmony.js → I18nManager.js} +11 -25
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +13 -0
- package/Libraries/ReactNative/NativeI18nManager.js +13 -0
- package/Libraries/ReactNative/NativeUIManager.js +13 -0
- package/Libraries/ReactNative/PaperUIManager.js +191 -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.harmony.js → UIManager.js} +16 -33
- package/Libraries/ReactNative/UIManagerProperties.js +61 -0
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +334 -0
- package/Libraries/ReactNative/delegates/BaseBridgelessUIManagerDelegate.ts +14 -0
- package/Libraries/ReactNative/delegates/BaseI18nManagerDelegate.ts +18 -0
- package/Libraries/ReactNative/delegates/BridgelessUIManagerDelegate.harmony.ts +14 -0
- package/Libraries/ReactNative/delegates/BridgelessUIManagerDelegate.ts +11 -0
- package/Libraries/ReactNative/delegates/I18nManagerDelegate.harmony.ts +22 -0
- package/Libraries/ReactNative/delegates/I18nManagerDelegate.ts +24 -0
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +33 -0
- package/Libraries/ReactNative/getNativeComponentAttributes.js +212 -0
- package/Libraries/ReactNative/renderApplication.js +108 -0
- package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
- package/Libraries/ReactNative/requireNativeComponent.js +35 -0
- package/Libraries/ReactPrivate/README +1 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +11 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +116 -0
- package/Libraries/Renderer/README.md +22 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +27376 -0
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +9152 -0
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +9642 -0
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27830 -0
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9379 -0
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +9896 -0
- package/Libraries/Renderer/shims/ReactFabric.js +33 -0
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +19 -0
- package/Libraries/Renderer/shims/ReactNative.js +24 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +320 -0
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +123 -0
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +35 -0
- package/Libraries/Required/RCTRequired.h +90 -0
- package/Libraries/Required/RCTRequired.podspec +30 -0
- package/Libraries/Settings/NativeSettingsManager.js +13 -0
- package/Libraries/Settings/RCTSettingsManager.h +16 -0
- package/Libraries/Settings/RCTSettingsManager.mm +123 -0
- package/Libraries/Settings/RCTSettingsPlugins.h +40 -0
- package/Libraries/Settings/RCTSettingsPlugins.mm +33 -0
- package/Libraries/Settings/React-RCTSettings.podspec +56 -0
- package/Libraries/Settings/Settings.d.ts +18 -0
- package/Libraries/Settings/Settings.harmony.ts +20 -0
- package/Libraries/Settings/Settings.ios.js +81 -0
- package/Libraries/Settings/Settings.js +33 -0
- package/Libraries/Share/NativeShareModule.js +13 -0
- package/Libraries/Share/Share.d.ts +80 -0
- package/Libraries/Share/{Share.harmony.js → Share.js} +32 -30
- package/Libraries/Share/delegates/BaseShareDelegate.ts +21 -0
- package/Libraries/Share/delegates/ShareDelegate.harmony.ts +42 -0
- package/Libraries/Share/delegates/ShareDelegate.ts +20 -0
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +18 -0
- package/Libraries/StyleSheet/NativePlatformColor.harmony.ts +15 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +40 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.harmony.ts +8 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +113 -0
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +22 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +29 -0
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +22 -0
- package/Libraries/StyleSheet/PointPropType.js +17 -0
- package/Libraries/StyleSheet/Rect.js +26 -0
- package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
- package/Libraries/StyleSheet/StyleSheet.js +356 -0
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +573 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +1004 -0
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +58 -0
- package/Libraries/StyleSheet/flattenStyle.js +46 -0
- package/Libraries/StyleSheet/normalizeColor.js +34 -0
- 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 +59 -0
- package/Libraries/StyleSheet/processColorArray.js +35 -0
- package/Libraries/StyleSheet/processFilter.js +321 -0
- package/Libraries/StyleSheet/processFontVariant.js +30 -0
- package/Libraries/StyleSheet/processTransform.js +263 -0
- package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +31 -0
- package/Libraries/StyleSheet/splitLayoutProps.js +72 -0
- package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +29 -0
- package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +158 -0
- package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +16 -0
- package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +60 -0
- package/Libraries/Text/RCTConvert+Text.h +23 -0
- package/Libraries/Text/RCTConvert+Text.mm +44 -0
- package/Libraries/Text/RCTTextAttributes.h +100 -0
- package/Libraries/Text/RCTTextAttributes.mm +354 -0
- package/Libraries/Text/RCTTextTransform.h +16 -0
- package/Libraries/Text/RawText/RCTRawTextShadowView.h +18 -0
- package/Libraries/Text/RawText/RCTRawTextShadowView.mm +34 -0
- package/Libraries/Text/RawText/RCTRawTextViewManager.h +16 -0
- package/Libraries/Text/RawText/RCTRawTextViewManager.mm +28 -0
- package/Libraries/Text/React-RCTText.podspec +37 -0
- package/Libraries/Text/Text/NSTextStorage+FontScaling.h +20 -0
- package/Libraries/Text/Text/NSTextStorage+FontScaling.m +122 -0
- package/Libraries/Text/Text/RCTDynamicTypeRamp.h +37 -0
- package/Libraries/Text/Text/RCTDynamicTypeRamp.mm +82 -0
- package/Libraries/Text/Text/RCTTextShadowView.h +28 -0
- package/Libraries/Text/Text/RCTTextShadowView.mm +466 -0
- package/Libraries/Text/Text/RCTTextView.h +29 -0
- package/Libraries/Text/Text/RCTTextView.mm +294 -0
- package/Libraries/Text/Text/RCTTextViewManager.h +14 -0
- package/Libraries/Text/Text/RCTTextViewManager.mm +93 -0
- package/Libraries/Text/Text.d.ts +219 -0
- package/Libraries/Text/Text.js +537 -0
- package/Libraries/Text/TextAncestor.js +23 -0
- package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +16 -0
- package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +63 -0
- package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +16 -0
- package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +24 -0
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +44 -0
- package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +338 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegate.h +46 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.h +36 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +307 -0
- package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +57 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +25 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +364 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.h +63 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +817 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +12 -0
- package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +178 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +12 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +20 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryView.h +17 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +78 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +12 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +74 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +12 -0
- package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +29 -0
- package/Libraries/Text/TextInput/RCTTextSelection.h +26 -0
- package/Libraries/Text/TextInput/RCTTextSelection.mm +36 -0
- package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +16 -0
- package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +39 -0
- package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +16 -0
- package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +31 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +40 -0
- package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +255 -0
- package/Libraries/Text/TextNativeComponent.js +82 -0
- package/Libraries/Text/TextProps.js +268 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +12 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +38 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextView.h +23 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextView.mm +12 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +12 -0
- package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +26 -0
- package/Libraries/TurboModule/RCTExport.d.ts +12 -0
- package/Libraries/TurboModule/RCTExport.js +38 -0
- package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +53 -0
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +13 -0
- package/Libraries/TypeSafety/RCTConvertHelpers.h +83 -0
- package/Libraries/TypeSafety/RCTConvertHelpers.mm +51 -0
- package/Libraries/TypeSafety/RCTTypeSafety.podspec +39 -0
- package/Libraries/TypeSafety/RCTTypedModuleConstants.h +47 -0
- package/Libraries/TypeSafety/RCTTypedModuleConstants.mm +50 -0
- package/Libraries/Types/CodegenTypes.js +47 -0
- package/Libraries/Types/CoreEventTypes.d.ts +259 -0
- package/Libraries/Types/CoreEventTypes.js +291 -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 +56 -0
- package/Libraries/Utilities/Appearance.d.ts +53 -0
- package/Libraries/Utilities/Appearance.js +133 -0
- package/Libraries/Utilities/{BackHandler.harmony.js → BackHandler.android.js} +8 -22
- package/Libraries/Utilities/BackHandler.d.ts +34 -0
- package/Libraries/Utilities/BackHandler.harmony.ts +10 -0
- package/Libraries/Utilities/BackHandler.ios.js +34 -0
- package/Libraries/Utilities/BackHandler.js.flow +23 -0
- 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 +72 -0
- package/Libraries/Utilities/DeviceInfo.js +13 -0
- package/Libraries/Utilities/Dimensions.d.ts +79 -0
- package/Libraries/Utilities/Dimensions.js +123 -0
- package/Libraries/Utilities/FeatureDetection.js +31 -0
- package/Libraries/Utilities/GlobalPerformanceLogger.js +24 -0
- package/Libraries/Utilities/HMRClient.js +362 -0
- package/Libraries/Utilities/HMRClientProdShim.js +30 -0
- package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/NativeAppearance.js +13 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +13 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +13 -0
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +13 -0
- package/Libraries/Utilities/NativePlatformConstantsHarmony.harmony.ts +17 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +13 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +33 -0
- package/Libraries/Utilities/PixelRatio.d.ts +64 -0
- package/Libraries/Utilities/PixelRatio.js +127 -0
- package/Libraries/Utilities/Platform.android.js +87 -0
- package/Libraries/Utilities/Platform.d.ts +21 -11
- package/Libraries/Utilities/Platform.flow.js +91 -0
- package/Libraries/Utilities/Platform.harmony.ts +38 -13
- package/Libraries/Utilities/Platform.ios.js +88 -0
- package/Libraries/Utilities/Platform.js.flow +13 -0
- package/Libraries/Utilities/PolyfillFunctions.js +56 -0
- package/Libraries/Utilities/RCTLog.js +56 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +225 -0
- package/Libraries/Utilities/SceneTracker.js +42 -0
- package/Libraries/Utilities/__mocks__/BackHandler.js +45 -0
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +16 -0
- package/Libraries/Utilities/__mocks__/PixelRatio.js +25 -0
- package/Libraries/Utilities/binaryToBase64.js +31 -0
- package/Libraries/Utilities/codegenNativeCommands.js +31 -0
- package/Libraries/Utilities/codegenNativeComponent.js +73 -0
- package/Libraries/Utilities/{createPerformanceLogger.harmony.js → createPerformanceLogger.js} +12 -50
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +90 -0
- package/Libraries/Utilities/defineLazyObjectProperty.js +66 -0
- package/Libraries/Utilities/differ/deepDiffer.js +101 -0
- package/Libraries/Utilities/differ/insetsDiffer.js +40 -0
- package/Libraries/Utilities/differ/matricesDiffer.js +51 -0
- package/Libraries/Utilities/differ/pointsDiffer.js +27 -0
- package/Libraries/Utilities/differ/sizesDiffer.js +26 -0
- package/Libraries/Utilities/dismissKeyboard.js +21 -0
- package/Libraries/Utilities/infoLog.js +20 -0
- package/Libraries/Utilities/logError.js +27 -0
- package/Libraries/Utilities/mapWithSeparator.js +28 -0
- package/Libraries/Utilities/stringifySafe.js +121 -0
- package/Libraries/Utilities/stringifyViewConfig.js +22 -0
- package/Libraries/Utilities/useColorScheme.js +25 -0
- package/Libraries/Utilities/useMergeRefs.js +59 -0
- package/Libraries/Utilities/useRefEffect.js +45 -0
- package/Libraries/Utilities/useWindowDimensions.js +47 -0
- package/Libraries/Utilities/warnOnce.js +32 -0
- package/Libraries/Vibration/NativeVibration.js +13 -0
- package/Libraries/Vibration/RCTVibration.h +12 -0
- package/Libraries/Vibration/RCTVibration.mm +54 -0
- package/Libraries/Vibration/RCTVibrationPlugins.h +40 -0
- package/Libraries/Vibration/RCTVibrationPlugins.mm +33 -0
- package/Libraries/Vibration/React-RCTVibration.podspec +56 -0
- package/Libraries/Vibration/Vibration.d.ts +43 -0
- package/Libraries/Vibration/Vibration.js +115 -0
- package/Libraries/Vibration/delegates/BaseVibrationDelegate.ts +11 -0
- package/Libraries/Vibration/delegates/VibrationDelegate.harmony.ts +14 -0
- package/Libraries/Vibration/delegates/VibrationDelegate.ts +11 -0
- package/Libraries/WebSocket/NativeWebSocketModule.js +13 -0
- package/Libraries/WebSocket/RCTReconnectingWebSocket.h +37 -0
- package/Libraries/WebSocket/RCTReconnectingWebSocket.m +109 -0
- package/Libraries/WebSocket/WebSocket.js +297 -0
- package/Libraries/WebSocket/WebSocketEvent.js +30 -0
- package/Libraries/WebSocket/WebSocketInterceptor.js +247 -0
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +27 -0
- package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +16 -0
- package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +53 -0
- package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +16 -0
- package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +23 -0
- package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +20 -0
- package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +46 -0
- package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +18 -0
- package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +31 -0
- package/Libraries/Wrapper/RCTWrapper.h +68 -0
- package/Libraries/Wrapper/RCTWrapperShadowView.h +22 -0
- package/Libraries/Wrapper/RCTWrapperShadowView.m +134 -0
- package/Libraries/Wrapper/RCTWrapperView.h +36 -0
- package/Libraries/Wrapper/RCTWrapperView.m +95 -0
- package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +25 -0
- package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +133 -0
- package/Libraries/Wrapper/RCTWrapperViewManager.h +20 -0
- package/Libraries/Wrapper/RCTWrapperViewManager.m +27 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +75 -0
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +32 -0
- package/Libraries/promiseRejectionTrackingOptions.js +72 -0
- package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
- package/Libraries/vendor/core/ErrorUtils.js +25 -0
- package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
- package/Libraries/vendor/emitter/EventEmitter.js +158 -0
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
- package/NOTICE.md +846 -0
- package/README.md +2 -2
- package/delegates/DelegateError.ts +10 -0
- package/index.js +53 -63
- package/jest.config.js +0 -7
- package/metro.config.d.ts +17 -0
- package/metro.config.js +398 -115
- package/package.json +58 -37
- package/react-native.config.js +57 -9
- package/react_native_openharmony.har +0 -0
- package/src/private/animated/NativeAnimatedHelper.js +440 -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.js.flow +16 -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 +369 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +78 -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/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/{Libraries/Components/Image/NativeImageLoaderHarmony.js → src/private/specs/modules/NativeImageLoaderIOS.js} +4 -5
- 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/NativeJSCSamplingProfiler.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/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/{Libraries/Components/StatusBar/NativeStatusBarManagerHarmony.js → src/private/specs/modules/NativeStatusBarManagerAndroid.js} +10 -13
- 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 +188 -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 +359 -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/specs/__mocks__/NativeDOMMock.js +413 -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/DOMRectList.js.flow +27 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +27 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +31 -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 +42 -0
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +181 -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/mutationobserver/specs/__mocks__/NativeMutationObserver.js +327 -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 +299 -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 +103 -0
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/tsconfig.json +10 -4
- package/types/index.d.ts +204 -97
- package/types/index.harmony.d.ts +99 -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/types/tsconfig.json +15 -0
- package/types/tslint.json +24 -0
- package/Libraries/Alert/Alert.harmony.js +0 -77
- package/Libraries/Animated/NativeAnimatedHelper.harmony.js +0 -601
- package/Libraries/Components/Image/Image.flow.harmony.js +0 -53
- package/Libraries/Components/Image/Image.harmony.js +0 -317
- package/Libraries/Components/TextInput/TextInputState.harmony.js +0 -220
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.harmony.js +0 -227
- package/Libraries/Core/setUpReactDevTools.harmony.js +0 -93
- package/Libraries/Settings/Settings.harmony.js +0 -15
- package/Libraries/StyleSheet/NativePlatformColor.ts +0 -8
- package/Libraries/Utilities/NativePlatformConstants.harmony.ts +0 -8
- package/Libraries/Vibration/Vibration.harmony.js +0 -88
- package/harmony/.keep +0 -0
- package/harmony/rnoh-hvigor-plugin-0.2.0.tgz +0 -0
- package/react_native_openharmony_release.har +0 -0
|
@@ -8,77 +8,51 @@
|
|
|
8
8
|
* @flow strict-local
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
import type {
|
|
13
|
-
import type {
|
|
14
|
-
import type {
|
|
15
|
-
import type {
|
|
16
|
-
import type { ColorValue } from "react-native/Libraries/StyleSheet/StyleSheet";
|
|
11
|
+
import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
|
|
12
|
+
import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
13
|
+
import type {PointProp} from '../../StyleSheet/PointPropType';
|
|
14
|
+
import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
|
|
15
|
+
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
|
17
16
|
import type {
|
|
18
17
|
LayoutEvent,
|
|
19
18
|
PressEvent,
|
|
20
19
|
ScrollEvent,
|
|
21
|
-
} from
|
|
22
|
-
import type {
|
|
23
|
-
import type {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} from
|
|
27
|
-
|
|
28
|
-
import
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import
|
|
41
|
-
import
|
|
42
|
-
import
|
|
43
|
-
import
|
|
44
|
-
import
|
|
45
|
-
import
|
|
46
|
-
import
|
|
47
|
-
import
|
|
48
|
-
import
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
} from
|
|
52
|
-
import
|
|
53
|
-
import
|
|
54
|
-
import
|
|
55
|
-
import
|
|
56
|
-
import
|
|
57
|
-
import * as React from "react";
|
|
58
|
-
|
|
59
|
-
if (Platform.OS === "ios") {
|
|
60
|
-
require("react-native/Libraries/Renderer/shims/ReactNative"); // Force side effects to prevent T55744311
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const { NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple } =
|
|
64
|
-
Platform.OS === "android"
|
|
65
|
-
? {
|
|
66
|
-
NativeHorizontalScrollViewTuple: [
|
|
67
|
-
AndroidHorizontalScrollViewNativeComponent,
|
|
68
|
-
AndroidHorizontalScrollContentViewNativeComponent,
|
|
69
|
-
],
|
|
70
|
-
NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],
|
|
71
|
-
}
|
|
72
|
-
: {
|
|
73
|
-
NativeHorizontalScrollViewTuple: [
|
|
74
|
-
ScrollViewNativeComponent,
|
|
75
|
-
ScrollContentViewNativeComponent,
|
|
76
|
-
],
|
|
77
|
-
NativeVerticalScrollViewTuple: [
|
|
78
|
-
ScrollViewNativeComponent,
|
|
79
|
-
ScrollContentViewNativeComponent,
|
|
80
|
-
],
|
|
81
|
-
};
|
|
20
|
+
} from '../../Types/CoreEventTypes';
|
|
21
|
+
import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
|
|
22
|
+
import type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';
|
|
23
|
+
import typeof View from '../View/View';
|
|
24
|
+
import type {ViewProps} from '../View/ViewPropTypes';
|
|
25
|
+
import type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';
|
|
26
|
+
|
|
27
|
+
import {
|
|
28
|
+
HScrollContentViewNativeComponent,
|
|
29
|
+
HScrollViewNativeComponent,
|
|
30
|
+
} from '../../../src/private/components/HScrollViewNativeComponents';
|
|
31
|
+
import {
|
|
32
|
+
VScrollContentViewNativeComponent,
|
|
33
|
+
VScrollViewNativeComponent,
|
|
34
|
+
} from '../../../src/private/components/VScrollViewNativeComponents';
|
|
35
|
+
import AnimatedImplementation from '../../Animated/AnimatedImplementation';
|
|
36
|
+
import FrameRateLogger from '../../Interaction/FrameRateLogger';
|
|
37
|
+
import {findNodeHandle} from '../../ReactNative/RendererProxy';
|
|
38
|
+
import UIManager from '../../ReactNative/UIManager';
|
|
39
|
+
import flattenStyle from '../../StyleSheet/flattenStyle';
|
|
40
|
+
import splitLayoutProps from '../../StyleSheet/splitLayoutProps';
|
|
41
|
+
import StyleSheet from '../../StyleSheet/StyleSheet';
|
|
42
|
+
import Dimensions from '../../Utilities/Dimensions';
|
|
43
|
+
import dismissKeyboard from '../../Utilities/dismissKeyboard';
|
|
44
|
+
import Platform from '../../Utilities/Platform';
|
|
45
|
+
import Keyboard from '../Keyboard/Keyboard';
|
|
46
|
+
import TextInputState from '../TextInput/TextInputState';
|
|
47
|
+
import ScrollViewDelegate from './delegates/ScrollViewDelegate';
|
|
48
|
+
import processDecelerationRate from './processDecelerationRate';
|
|
49
|
+
import Commands from './ScrollViewCommands';
|
|
50
|
+
import ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';
|
|
51
|
+
import ScrollViewStickyHeader from './ScrollViewStickyHeader';
|
|
52
|
+
import invariant from 'invariant';
|
|
53
|
+
import memoize from 'memoize-one';
|
|
54
|
+
import nullthrows from 'nullthrows';
|
|
55
|
+
import * as React from 'react';
|
|
82
56
|
|
|
83
57
|
/*
|
|
84
58
|
* iOS scroll event timing nuances:
|
|
@@ -155,31 +129,30 @@ const { NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple } =
|
|
|
155
129
|
|
|
156
130
|
// Public methods for ScrollView
|
|
157
131
|
export type ScrollViewImperativeMethods = $ReadOnly<{|
|
|
158
|
-
getScrollResponder: $PropertyType<ScrollView,
|
|
159
|
-
getScrollableNode: $PropertyType<ScrollView,
|
|
160
|
-
getInnerViewNode: $PropertyType<ScrollView,
|
|
161
|
-
getInnerViewRef: $PropertyType<ScrollView,
|
|
162
|
-
getNativeScrollRef: $PropertyType<ScrollView,
|
|
163
|
-
scrollTo: $PropertyType<ScrollView,
|
|
164
|
-
scrollToEnd: $PropertyType<ScrollView,
|
|
165
|
-
flashScrollIndicators: $PropertyType<ScrollView,
|
|
166
|
-
scrollResponderZoomTo: $PropertyType<ScrollView,
|
|
132
|
+
getScrollResponder: $PropertyType<ScrollView, 'getScrollResponder'>,
|
|
133
|
+
getScrollableNode: $PropertyType<ScrollView, 'getScrollableNode'>,
|
|
134
|
+
getInnerViewNode: $PropertyType<ScrollView, 'getInnerViewNode'>,
|
|
135
|
+
getInnerViewRef: $PropertyType<ScrollView, 'getInnerViewRef'>,
|
|
136
|
+
getNativeScrollRef: $PropertyType<ScrollView, 'getNativeScrollRef'>,
|
|
137
|
+
scrollTo: $PropertyType<ScrollView, 'scrollTo'>,
|
|
138
|
+
scrollToEnd: $PropertyType<ScrollView, 'scrollToEnd'>,
|
|
139
|
+
flashScrollIndicators: $PropertyType<ScrollView, 'flashScrollIndicators'>,
|
|
140
|
+
scrollResponderZoomTo: $PropertyType<ScrollView, 'scrollResponderZoomTo'>,
|
|
167
141
|
scrollResponderScrollNativeHandleToKeyboard: $PropertyType<
|
|
168
142
|
ScrollView,
|
|
169
|
-
|
|
143
|
+
'scrollResponderScrollNativeHandleToKeyboard',
|
|
170
144
|
>,
|
|
171
145
|
|}>;
|
|
172
146
|
|
|
173
|
-
export type DecelerationRateType =
|
|
147
|
+
export type DecelerationRateType = 'fast' | 'normal' | number;
|
|
174
148
|
export type ScrollResponderType = ScrollViewImperativeMethods;
|
|
175
149
|
|
|
176
|
-
type NativeScrollViewInstance = React.ElementRef<HostComponent<mixed>>;
|
|
177
150
|
type PublicScrollViewInstance = $ReadOnly<{|
|
|
178
|
-
|
|
151
|
+
...HostInstance,
|
|
179
152
|
...ScrollViewImperativeMethods,
|
|
180
153
|
|}>;
|
|
181
154
|
|
|
182
|
-
type InnerViewInstance = React.ElementRef<
|
|
155
|
+
type InnerViewInstance = React.ElementRef<View>;
|
|
183
156
|
|
|
184
157
|
type IOSProps = $ReadOnly<{|
|
|
185
158
|
/**
|
|
@@ -260,7 +233,7 @@ type IOSProps = $ReadOnly<{|
|
|
|
260
233
|
*
|
|
261
234
|
* @platform ios
|
|
262
235
|
*/
|
|
263
|
-
indicatorStyle?: ?(
|
|
236
|
+
indicatorStyle?: ?('default' | 'black' | 'white'),
|
|
264
237
|
/**
|
|
265
238
|
* When true, the ScrollView will try to lock to only vertical or horizontal
|
|
266
239
|
* scrolling while dragging. The default value is false.
|
|
@@ -273,33 +246,6 @@ type IOSProps = $ReadOnly<{|
|
|
|
273
246
|
* @platform ios
|
|
274
247
|
*/
|
|
275
248
|
canCancelContentTouches?: ?boolean,
|
|
276
|
-
/**
|
|
277
|
-
* When set, the scroll view will adjust the scroll position so that the first child that is
|
|
278
|
-
* currently visible and at or beyond `minIndexForVisible` will not change position. This is
|
|
279
|
-
* useful for lists that are loading content in both directions, e.g. a chat thread, where new
|
|
280
|
-
* messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,
|
|
281
|
-
* but other values such as 1 can be used to skip loading spinners or other content that should
|
|
282
|
-
* not maintain position.
|
|
283
|
-
*
|
|
284
|
-
* The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll
|
|
285
|
-
* to the top after making the adjustment if the user was within the threshold of the top before
|
|
286
|
-
* the adjustment was made. This is also useful for chat-like applications where you want to see
|
|
287
|
-
* new messages scroll into place, but not if the user has scrolled up a ways and it would be
|
|
288
|
-
* disruptive to scroll a bunch.
|
|
289
|
-
*
|
|
290
|
-
* Caveat 1: Reordering elements in the scrollview with this enabled will probably cause
|
|
291
|
-
* jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,
|
|
292
|
-
* don't re-order the content of any ScrollViews or Lists that use this feature.
|
|
293
|
-
*
|
|
294
|
-
* Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute
|
|
295
|
-
* visibility. Occlusion, transforms, and other complexity won't be taken into account as to
|
|
296
|
-
* whether content is "visible" or not.
|
|
297
|
-
*
|
|
298
|
-
*/
|
|
299
|
-
maintainVisibleContentPosition?: ?$ReadOnly<{|
|
|
300
|
-
minIndexForVisible: number,
|
|
301
|
-
autoscrollToTopThreshold?: ?number,
|
|
302
|
-
|}>,
|
|
303
249
|
/**
|
|
304
250
|
* The maximum allowed zoom scale. The default value is 1.0.
|
|
305
251
|
* @platform ios
|
|
@@ -357,10 +303,10 @@ type IOSProps = $ReadOnly<{|
|
|
|
357
303
|
* @platform ios
|
|
358
304
|
*/
|
|
359
305
|
contentInsetAdjustmentBehavior?: ?(
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
-
|
|
|
306
|
+
| 'automatic'
|
|
307
|
+
| 'scrollableAxes'
|
|
308
|
+
| 'never'
|
|
309
|
+
| 'always'
|
|
364
310
|
),
|
|
365
311
|
|}>;
|
|
366
312
|
|
|
@@ -399,7 +345,7 @@ type AndroidProps = $ReadOnly<{|
|
|
|
399
345
|
*
|
|
400
346
|
* @platform android
|
|
401
347
|
*/
|
|
402
|
-
overScrollMode?: ?(
|
|
348
|
+
overScrollMode?: ?('auto' | 'always' | 'never'),
|
|
403
349
|
/**
|
|
404
350
|
* Causes the scrollbars not to turn transparent when they are not in use.
|
|
405
351
|
* The default value is false.
|
|
@@ -421,10 +367,10 @@ type AndroidProps = $ReadOnly<{|
|
|
|
421
367
|
fadingEdgeLength?: ?number,
|
|
422
368
|
|}>;
|
|
423
369
|
|
|
424
|
-
type StickyHeaderComponentType =
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
370
|
+
type StickyHeaderComponentType = component(
|
|
371
|
+
ref?: React.RefSetter<$ReadOnly<interface {setNextHeaderY: number => void}>>,
|
|
372
|
+
...ScrollViewStickyHeaderProps
|
|
373
|
+
);
|
|
428
374
|
|
|
429
375
|
export type Props = $ReadOnly<{|
|
|
430
376
|
...ViewProps,
|
|
@@ -472,6 +418,20 @@ export type Props = $ReadOnly<{|
|
|
|
472
418
|
* - `'fast'`: 0.99 on iOS, 0.9 on Android
|
|
473
419
|
*/
|
|
474
420
|
decelerationRate?: ?DecelerationRateType,
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* *Experimental, iOS Only*. The API is experimental and will change in future releases.
|
|
424
|
+
*
|
|
425
|
+
* Controls how much distance is travelled after user stops scrolling.
|
|
426
|
+
* Value greater than 1 will increase the distance travelled.
|
|
427
|
+
* Value less than 1 will decrease the distance travelled.
|
|
428
|
+
*
|
|
429
|
+
* @deprecated
|
|
430
|
+
*
|
|
431
|
+
* The default value is 1.
|
|
432
|
+
*/
|
|
433
|
+
experimental_endDraggingSensitivityMultiplier?: ?number,
|
|
434
|
+
|
|
475
435
|
/**
|
|
476
436
|
* When true, the scroll view's children are arranged horizontally in a row
|
|
477
437
|
* instead of vertically in a column. The default value is false.
|
|
@@ -498,7 +458,7 @@ export type Props = $ReadOnly<{|
|
|
|
498
458
|
*/
|
|
499
459
|
keyboardDismissMode?: ?// default
|
|
500
460
|
// cross-platform
|
|
501
|
-
(
|
|
461
|
+
('none' | 'on-drag' | 'interactive'), // ios only
|
|
502
462
|
/**
|
|
503
463
|
* Determines when the keyboard should stay visible after a tap.
|
|
504
464
|
*
|
|
@@ -511,7 +471,34 @@ export type Props = $ReadOnly<{|
|
|
|
511
471
|
* - `false`, deprecated, use 'never' instead
|
|
512
472
|
* - `true`, deprecated, use 'always' instead
|
|
513
473
|
*/
|
|
514
|
-
keyboardShouldPersistTaps?: ?(
|
|
474
|
+
keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),
|
|
475
|
+
/**
|
|
476
|
+
* When set, the scroll view will adjust the scroll position so that the first child that is
|
|
477
|
+
* partially or fully visible and at or beyond `minIndexForVisible` will not change position.
|
|
478
|
+
* This is useful for lists that are loading content in both directions, e.g. a chat thread,
|
|
479
|
+
* where new messages coming in might otherwise cause the scroll position to jump. A value of 0
|
|
480
|
+
* is common, but other values such as 1 can be used to skip loading spinners or other content
|
|
481
|
+
* that should not maintain position.
|
|
482
|
+
*
|
|
483
|
+
* The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll
|
|
484
|
+
* to the top after making the adjustment if the user was within the threshold of the top before
|
|
485
|
+
* the adjustment was made. This is also useful for chat-like applications where you want to see
|
|
486
|
+
* new messages scroll into place, but not if the user has scrolled up a ways and it would be
|
|
487
|
+
* disruptive to scroll a bunch.
|
|
488
|
+
*
|
|
489
|
+
* Caveat 1: Reordering elements in the scrollview with this enabled will probably cause
|
|
490
|
+
* jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,
|
|
491
|
+
* don't re-order the content of any ScrollViews or Lists that use this feature.
|
|
492
|
+
*
|
|
493
|
+
* Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute
|
|
494
|
+
* visibility. Occlusion, transforms, and other complexity won't be taken into account as to
|
|
495
|
+
* whether content is "visible" or not.
|
|
496
|
+
*
|
|
497
|
+
*/
|
|
498
|
+
maintainVisibleContentPosition?: ?$ReadOnly<{|
|
|
499
|
+
minIndexForVisible: number,
|
|
500
|
+
autoscrollToTopThreshold?: ?number,
|
|
501
|
+
|}>,
|
|
515
502
|
/**
|
|
516
503
|
* Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).
|
|
517
504
|
*/
|
|
@@ -522,8 +509,7 @@ export type Props = $ReadOnly<{|
|
|
|
522
509
|
onMomentumScrollEnd?: ?(event: ScrollEvent) => void,
|
|
523
510
|
|
|
524
511
|
/**
|
|
525
|
-
* Fires at most once per frame during scrolling.
|
|
526
|
-
* events can be controlled using the `scrollEventThrottle` prop.
|
|
512
|
+
* Fires at most once per frame during scrolling.
|
|
527
513
|
*/
|
|
528
514
|
onScroll?: ?(event: ScrollEvent) => void,
|
|
529
515
|
/**
|
|
@@ -553,8 +539,6 @@ export type Props = $ReadOnly<{|
|
|
|
553
539
|
* When true, the scroll view stops on multiples of the scroll view's size
|
|
554
540
|
* when scrolling. This can be used for horizontal pagination. The default
|
|
555
541
|
* value is false.
|
|
556
|
-
*
|
|
557
|
-
* Note: Vertical pagination is not supported on Android.
|
|
558
542
|
*/
|
|
559
543
|
pagingEnabled?: ?boolean,
|
|
560
544
|
/**
|
|
@@ -565,19 +549,10 @@ export type Props = $ReadOnly<{|
|
|
|
565
549
|
*/
|
|
566
550
|
scrollEnabled?: ?boolean,
|
|
567
551
|
/**
|
|
568
|
-
*
|
|
569
|
-
*
|
|
570
|
-
*
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
* Values between 0 and 17ms indicate 60fps updates are needed and throttling
|
|
574
|
-
* will be disabled.
|
|
575
|
-
*
|
|
576
|
-
* If you do not need precise scroll position tracking, set this value higher
|
|
577
|
-
* to limit the information being sent across the bridge.
|
|
578
|
-
*
|
|
579
|
-
* The default value is zero, which results in the scroll event being sent only
|
|
580
|
-
* once each time the view is scrolled.
|
|
552
|
+
* Limits how often scroll events will be fired while scrolling, specified as
|
|
553
|
+
* a time interval in ms. This may be useful when expensive work is performed
|
|
554
|
+
* in response to scrolling. Values <= `16` will disable throttling,
|
|
555
|
+
* regardless of the refresh rate of the device.
|
|
581
556
|
*/
|
|
582
557
|
scrollEventThrottle?: ?number,
|
|
583
558
|
/**
|
|
@@ -613,7 +588,7 @@ export type Props = $ReadOnly<{|
|
|
|
613
588
|
* - `'center'` will align the snap in the center
|
|
614
589
|
* - `'end'` will align the snap at the right (horizontal) or bottom (vertical)
|
|
615
590
|
*/
|
|
616
|
-
snapToAlignment?: ?(
|
|
591
|
+
snapToAlignment?: ?('start' | 'center' | 'end'),
|
|
617
592
|
/**
|
|
618
593
|
* When set, causes the scroll view to stop at multiples of the value of
|
|
619
594
|
* `snapToInterval`. This can be used for paginating through children
|
|
@@ -664,26 +639,24 @@ export type Props = $ReadOnly<{|
|
|
|
664
639
|
*/
|
|
665
640
|
/* $FlowFixMe[unclear-type] - how to handle generic type without existential
|
|
666
641
|
* operator? */
|
|
667
|
-
refreshControl?: ?
|
|
642
|
+
refreshControl?: ?ExactReactElement_DEPRECATED<any>,
|
|
668
643
|
children?: React.Node,
|
|
669
644
|
/**
|
|
670
645
|
* A ref to the inner View element of the ScrollView. This should be used
|
|
671
646
|
* instead of calling `getInnerViewRef`.
|
|
672
647
|
*/
|
|
673
|
-
innerViewRef?:
|
|
648
|
+
innerViewRef?: React.RefSetter<InnerViewInstance>,
|
|
674
649
|
/**
|
|
675
650
|
* A ref to the Native ScrollView component. This ref can be used to call
|
|
676
651
|
* all of ScrollView's public methods, in addition to native methods like
|
|
677
652
|
* measure, measureLayout, etc.
|
|
678
653
|
*/
|
|
679
|
-
scrollViewRef?:
|
|
654
|
+
scrollViewRef?: React.RefSetter<PublicScrollViewInstance>,
|
|
680
655
|
|}>;
|
|
681
656
|
|
|
682
657
|
type State = {|
|
|
683
658
|
layoutHeight: ?number,
|
|
684
|
-
|
|
685
|
-
// as it is currently not feasible on the native side
|
|
686
|
-
showScrollIndicator: boolean,
|
|
659
|
+
showScrollIndicator: boolean, // RNC_patch
|
|
687
660
|
|};
|
|
688
661
|
|
|
689
662
|
const IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;
|
|
@@ -730,17 +703,20 @@ export type ScrollViewComponentStatics = $ReadOnly<{|
|
|
|
730
703
|
class ScrollView extends React.Component<Props, State> {
|
|
731
704
|
static Context: typeof ScrollViewContext = ScrollViewContext;
|
|
732
705
|
|
|
706
|
+
_delegate: ScrollViewDelegate;
|
|
707
|
+
|
|
733
708
|
constructor(props: Props) {
|
|
734
709
|
super(props);
|
|
735
|
-
|
|
710
|
+
// RNOH patch - resolving flashScrollIndicators command on the JS side
|
|
736
711
|
this._scrollAnimatedValue = new AnimatedImplementation.Value(
|
|
737
|
-
this.props.contentOffset?.y ?? 0
|
|
712
|
+
this.props.contentOffset?.y ?? 0,
|
|
738
713
|
);
|
|
739
714
|
this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);
|
|
715
|
+
this._delegate = new ScrollViewDelegate({});
|
|
740
716
|
}
|
|
741
717
|
|
|
742
718
|
_scrollAnimatedValue: AnimatedImplementation.Value;
|
|
743
|
-
_scrollAnimatedValueAttachment: ?{
|
|
719
|
+
_scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;
|
|
744
720
|
_stickyHeaderRefs: Map<string, React.ElementRef<StickyHeaderComponentType>> =
|
|
745
721
|
new Map();
|
|
746
722
|
_headerLayoutYs: Map<string, number> = new Map();
|
|
@@ -769,20 +745,18 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
769
745
|
|
|
770
746
|
state: State = {
|
|
771
747
|
layoutHeight: null,
|
|
772
|
-
|
|
773
|
-
// as it is currently not feasible on the native side
|
|
774
|
-
showScrollIndicator: false,
|
|
748
|
+
showScrollIndicator: false, // RNC_patch
|
|
775
749
|
};
|
|
776
750
|
|
|
777
751
|
componentDidMount() {
|
|
778
|
-
if (typeof this.props.keyboardShouldPersistTaps ===
|
|
752
|
+
if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {
|
|
779
753
|
console.warn(
|
|
780
754
|
`'keyboardShouldPersistTaps={${
|
|
781
|
-
this.props.keyboardShouldPersistTaps === true ?
|
|
755
|
+
this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'
|
|
782
756
|
}}' is deprecated. ` +
|
|
783
757
|
`Use 'keyboardShouldPersistTaps="${
|
|
784
|
-
this.props.keyboardShouldPersistTaps ?
|
|
785
|
-
}"' instead
|
|
758
|
+
this.props.keyboardShouldPersistTaps ? 'always' : 'never'
|
|
759
|
+
}"' instead`,
|
|
786
760
|
);
|
|
787
761
|
}
|
|
788
762
|
|
|
@@ -790,20 +764,20 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
790
764
|
this._additionalScrollOffset = 0;
|
|
791
765
|
|
|
792
766
|
this._subscriptionKeyboardWillShow = Keyboard.addListener(
|
|
793
|
-
|
|
794
|
-
this.scrollResponderKeyboardWillShow
|
|
767
|
+
'keyboardWillShow',
|
|
768
|
+
this.scrollResponderKeyboardWillShow,
|
|
795
769
|
);
|
|
796
770
|
this._subscriptionKeyboardWillHide = Keyboard.addListener(
|
|
797
|
-
|
|
798
|
-
this.scrollResponderKeyboardWillHide
|
|
771
|
+
'keyboardWillHide',
|
|
772
|
+
this.scrollResponderKeyboardWillHide,
|
|
799
773
|
);
|
|
800
774
|
this._subscriptionKeyboardDidShow = Keyboard.addListener(
|
|
801
|
-
|
|
802
|
-
this.scrollResponderKeyboardDidShow
|
|
775
|
+
'keyboardDidShow',
|
|
776
|
+
this.scrollResponderKeyboardDidShow,
|
|
803
777
|
);
|
|
804
778
|
this._subscriptionKeyboardDidHide = Keyboard.addListener(
|
|
805
|
-
|
|
806
|
-
this.scrollResponderKeyboardDidHide
|
|
779
|
+
'keyboardDidHide',
|
|
780
|
+
this.scrollResponderKeyboardDidHide,
|
|
807
781
|
);
|
|
808
782
|
|
|
809
783
|
this._updateAnimatedNodeAttachment();
|
|
@@ -854,7 +828,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
854
828
|
};
|
|
855
829
|
|
|
856
830
|
getScrollableNode: () => ?number = () => {
|
|
857
|
-
return findNodeHandle(this.
|
|
831
|
+
return findNodeHandle(this.getNativeScrollRef());
|
|
858
832
|
};
|
|
859
833
|
|
|
860
834
|
getInnerViewNode: () => ?number = () => {
|
|
@@ -865,7 +839,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
865
839
|
return this._innerView.nativeInstance;
|
|
866
840
|
};
|
|
867
841
|
|
|
868
|
-
getNativeScrollRef: () =>
|
|
842
|
+
getNativeScrollRef: () => HostInstance | null = () => {
|
|
869
843
|
return this._scrollView.nativeInstance;
|
|
870
844
|
};
|
|
871
845
|
|
|
@@ -890,7 +864,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
890
864
|
}
|
|
891
865
|
| number,
|
|
892
866
|
deprecatedX?: number,
|
|
893
|
-
deprecatedAnimated?: boolean
|
|
867
|
+
deprecatedAnimated?: boolean,
|
|
894
868
|
) => void = (
|
|
895
869
|
options?:
|
|
896
870
|
| {
|
|
@@ -901,13 +875,13 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
901
875
|
}
|
|
902
876
|
| number,
|
|
903
877
|
deprecatedX?: number,
|
|
904
|
-
deprecatedAnimated?: boolean
|
|
878
|
+
deprecatedAnimated?: boolean,
|
|
905
879
|
) => {
|
|
906
880
|
let x, y, animated;
|
|
907
|
-
if (typeof options ===
|
|
881
|
+
if (typeof options === 'number') {
|
|
908
882
|
console.warn(
|
|
909
|
-
|
|
910
|
-
|
|
883
|
+
'`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +
|
|
884
|
+
'animated: true})` instead.',
|
|
911
885
|
);
|
|
912
886
|
y = options;
|
|
913
887
|
x = deprecatedX;
|
|
@@ -917,15 +891,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
917
891
|
x = options.x;
|
|
918
892
|
animated = options.animated;
|
|
919
893
|
}
|
|
920
|
-
|
|
894
|
+
const component = this.getNativeScrollRef();
|
|
895
|
+
if (component == null) {
|
|
921
896
|
return;
|
|
922
897
|
}
|
|
923
|
-
Commands.scrollTo(
|
|
924
|
-
this._scrollView.nativeInstance,
|
|
925
|
-
x || 0,
|
|
926
|
-
y || 0,
|
|
927
|
-
animated !== false
|
|
928
|
-
);
|
|
898
|
+
Commands.scrollTo(component, x || 0, y || 0, animated !== false);
|
|
929
899
|
};
|
|
930
900
|
|
|
931
901
|
/**
|
|
@@ -936,15 +906,16 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
936
906
|
* `scrollToEnd({animated: false})` for immediate scrolling.
|
|
937
907
|
* If no options are passed, `animated` defaults to true.
|
|
938
908
|
*/
|
|
939
|
-
scrollToEnd: (options?: ?{
|
|
940
|
-
options?: ?{
|
|
909
|
+
scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (
|
|
910
|
+
options?: ?{animated?: boolean, ...},
|
|
941
911
|
) => {
|
|
942
912
|
// Default to true
|
|
943
913
|
const animated = (options && options.animated) !== false;
|
|
944
|
-
|
|
914
|
+
const component = this.getNativeScrollRef();
|
|
915
|
+
if (component == null) {
|
|
945
916
|
return;
|
|
946
917
|
}
|
|
947
|
-
Commands.scrollToEnd(
|
|
918
|
+
Commands.scrollToEnd(component, animated);
|
|
948
919
|
};
|
|
949
920
|
|
|
950
921
|
/**
|
|
@@ -953,20 +924,16 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
953
924
|
* @platform ios
|
|
954
925
|
*/
|
|
955
926
|
flashScrollIndicators: () => void = () => {
|
|
956
|
-
//
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
// if (this._scrollView.nativeInstance == null) {
|
|
960
|
-
// return;
|
|
961
|
-
// }
|
|
962
|
-
// Commands.flashScrollIndicators(this._scrollView.nativeInstance);
|
|
963
|
-
|
|
964
|
-
this.state.showScrollIndicator = true;
|
|
927
|
+
// RNC_patch
|
|
928
|
+
this.setState(prev => ({...prev, showScrollIndicator: true}));
|
|
965
929
|
setTimeout(() => {
|
|
966
|
-
this.
|
|
967
|
-
this.forceUpdate();
|
|
930
|
+
this.setState(prev => ({...prev, showScrollIndicator: false}));
|
|
968
931
|
}, 500);
|
|
969
|
-
this.
|
|
932
|
+
// const component = this.getNativeScrollRef();
|
|
933
|
+
// if (component == null) {
|
|
934
|
+
// return;
|
|
935
|
+
// }
|
|
936
|
+
// Commands.flashScrollIndicators(component);
|
|
970
937
|
};
|
|
971
938
|
|
|
972
939
|
/**
|
|
@@ -979,14 +946,14 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
979
946
|
* @param {bool} preventNegativeScrolling Whether to allow pulling the content
|
|
980
947
|
* down to make it meet the keyboard's top. Default is false.
|
|
981
948
|
*/
|
|
982
|
-
scrollResponderScrollNativeHandleToKeyboard:
|
|
983
|
-
nodeHandle: number |
|
|
949
|
+
scrollResponderScrollNativeHandleToKeyboard: (
|
|
950
|
+
nodeHandle: number | HostInstance,
|
|
984
951
|
additionalOffset?: number,
|
|
985
|
-
preventNegativeScrollOffset?: boolean
|
|
986
|
-
) => void =
|
|
987
|
-
nodeHandle: number |
|
|
952
|
+
preventNegativeScrollOffset?: boolean,
|
|
953
|
+
) => void = (
|
|
954
|
+
nodeHandle: number | HostInstance,
|
|
988
955
|
additionalOffset?: number,
|
|
989
|
-
preventNegativeScrollOffset?: boolean
|
|
956
|
+
preventNegativeScrollOffset?: boolean,
|
|
990
957
|
) => {
|
|
991
958
|
this._additionalScrollOffset = additionalOffset || 0;
|
|
992
959
|
this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;
|
|
@@ -995,20 +962,20 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
995
962
|
return;
|
|
996
963
|
}
|
|
997
964
|
|
|
998
|
-
if (typeof nodeHandle ===
|
|
965
|
+
if (typeof nodeHandle === 'number') {
|
|
999
966
|
UIManager.measureLayout(
|
|
1000
967
|
nodeHandle,
|
|
1001
968
|
nullthrows(findNodeHandle(this)),
|
|
1002
969
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
1003
970
|
this._textInputFocusError,
|
|
1004
|
-
this._inputMeasureAndScrollToKeyboard
|
|
971
|
+
this._inputMeasureAndScrollToKeyboard,
|
|
1005
972
|
);
|
|
1006
973
|
} else {
|
|
1007
974
|
nodeHandle.measureLayout(
|
|
1008
975
|
this._innerView.nativeInstance,
|
|
1009
976
|
this._inputMeasureAndScrollToKeyboard,
|
|
1010
977
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
1011
|
-
this._textInputFocusError
|
|
978
|
+
this._textInputFocusError,
|
|
1012
979
|
);
|
|
1013
980
|
}
|
|
1014
981
|
};
|
|
@@ -1027,7 +994,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1027
994
|
height: number,
|
|
1028
995
|
animated?: boolean,
|
|
1029
996
|
|},
|
|
1030
|
-
animated?: boolean // deprecated, put this inside the rect argument instead
|
|
997
|
+
animated?: boolean, // deprecated, put this inside the rect argument instead
|
|
1031
998
|
) => void = (
|
|
1032
999
|
rect: {|
|
|
1033
1000
|
x: number,
|
|
@@ -1036,30 +1003,27 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1036
1003
|
height: number,
|
|
1037
1004
|
animated?: boolean,
|
|
1038
1005
|
|},
|
|
1039
|
-
animated?: boolean // deprecated, put this inside the rect argument instead
|
|
1006
|
+
animated?: boolean, // deprecated, put this inside the rect argument instead
|
|
1040
1007
|
) => {
|
|
1041
|
-
invariant(Platform.OS ===
|
|
1042
|
-
if (
|
|
1008
|
+
invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');
|
|
1009
|
+
if ('animated' in rect) {
|
|
1043
1010
|
this._animated = rect.animated;
|
|
1044
1011
|
delete rect.animated;
|
|
1045
|
-
} else if (typeof animated !==
|
|
1012
|
+
} else if (typeof animated !== 'undefined') {
|
|
1046
1013
|
console.warn(
|
|
1047
|
-
|
|
1014
|
+
'`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',
|
|
1048
1015
|
);
|
|
1049
1016
|
}
|
|
1050
1017
|
|
|
1051
|
-
|
|
1018
|
+
const component = this.getNativeScrollRef();
|
|
1019
|
+
if (component == null) {
|
|
1052
1020
|
return;
|
|
1053
1021
|
}
|
|
1054
|
-
Commands.zoomToRect(
|
|
1055
|
-
this._scrollView.nativeInstance,
|
|
1056
|
-
rect,
|
|
1057
|
-
animated !== false
|
|
1058
|
-
);
|
|
1022
|
+
Commands.zoomToRect(component, rect, animated !== false);
|
|
1059
1023
|
};
|
|
1060
1024
|
|
|
1061
1025
|
_textInputFocusError() {
|
|
1062
|
-
console.warn(
|
|
1026
|
+
console.warn('Error measuring text field.');
|
|
1063
1027
|
}
|
|
1064
1028
|
|
|
1065
1029
|
/**
|
|
@@ -1076,9 +1040,9 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1076
1040
|
left: number,
|
|
1077
1041
|
top: number,
|
|
1078
1042
|
width: number,
|
|
1079
|
-
height: number
|
|
1043
|
+
height: number,
|
|
1080
1044
|
) => void = (left: number, top: number, width: number, height: number) => {
|
|
1081
|
-
let keyboardScreenY = Dimensions.get(
|
|
1045
|
+
let keyboardScreenY = Dimensions.get('window').height;
|
|
1082
1046
|
|
|
1083
1047
|
const scrollTextInputIntoVisibleRect = () => {
|
|
1084
1048
|
if (this._keyboardMetrics != null) {
|
|
@@ -1094,7 +1058,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1094
1058
|
if (this._preventNegativeScrollOffset === true) {
|
|
1095
1059
|
scrollOffsetY = Math.max(0, scrollOffsetY);
|
|
1096
1060
|
}
|
|
1097
|
-
this.scrollTo({
|
|
1061
|
+
this.scrollTo({x: 0, y: scrollOffsetY, animated: true});
|
|
1098
1062
|
|
|
1099
1063
|
this._additionalScrollOffset = 0;
|
|
1100
1064
|
this._preventNegativeScrollOffset = false;
|
|
@@ -1128,16 +1092,16 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1128
1092
|
) {
|
|
1129
1093
|
this._scrollAnimatedValueAttachment =
|
|
1130
1094
|
AnimatedImplementation.attachNativeEvent(
|
|
1131
|
-
this.
|
|
1132
|
-
|
|
1133
|
-
[{
|
|
1095
|
+
this.getNativeScrollRef(),
|
|
1096
|
+
'onScroll',
|
|
1097
|
+
[{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],
|
|
1134
1098
|
);
|
|
1135
1099
|
}
|
|
1136
1100
|
}
|
|
1137
1101
|
|
|
1138
1102
|
_setStickyHeaderRef(
|
|
1139
1103
|
key: string,
|
|
1140
|
-
ref: ?React.ElementRef<StickyHeaderComponentType
|
|
1104
|
+
ref: ?React.ElementRef<StickyHeaderComponentType>,
|
|
1141
1105
|
) {
|
|
1142
1106
|
if (ref) {
|
|
1143
1107
|
this._stickyHeaderRefs.set(key, ref);
|
|
@@ -1147,7 +1111,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1147
1111
|
}
|
|
1148
1112
|
|
|
1149
1113
|
_onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {
|
|
1150
|
-
const {
|
|
1114
|
+
const {stickyHeaderIndices} = this.props;
|
|
1151
1115
|
if (!stickyHeaderIndices) {
|
|
1152
1116
|
return;
|
|
1153
1117
|
}
|
|
@@ -1164,7 +1128,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1164
1128
|
const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];
|
|
1165
1129
|
if (previousHeaderIndex != null) {
|
|
1166
1130
|
const previousHeader = this._stickyHeaderRefs.get(
|
|
1167
|
-
this._getKeyForIndex(previousHeaderIndex, childArray)
|
|
1131
|
+
this._getKeyForIndex(previousHeaderIndex, childArray),
|
|
1168
1132
|
);
|
|
1169
1133
|
previousHeader &&
|
|
1170
1134
|
previousHeader.setNextHeaderY &&
|
|
@@ -1173,28 +1137,13 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1173
1137
|
}
|
|
1174
1138
|
|
|
1175
1139
|
_handleScroll = (e: ScrollEvent) => {
|
|
1176
|
-
if (__DEV__) {
|
|
1177
|
-
if (
|
|
1178
|
-
this.props.onScroll &&
|
|
1179
|
-
this.props.scrollEventThrottle == null &&
|
|
1180
|
-
Platform.OS === "ios"
|
|
1181
|
-
) {
|
|
1182
|
-
console.log(
|
|
1183
|
-
"You specified `onScroll` on a <ScrollView> but not " +
|
|
1184
|
-
"`scrollEventThrottle`. You will only receive one event. " +
|
|
1185
|
-
"Using `16` you get all the events but be aware that it may " +
|
|
1186
|
-
"cause frame drops, use a bigger number if you don't need as " +
|
|
1187
|
-
"much precision."
|
|
1188
|
-
);
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
1140
|
this._observedScrollSinceBecomingResponder = true;
|
|
1192
1141
|
this.props.onScroll && this.props.onScroll(e);
|
|
1193
1142
|
};
|
|
1194
1143
|
|
|
1195
1144
|
_handleLayout = (e: LayoutEvent) => {
|
|
1196
1145
|
if (this.props.invertStickyHeaders === true) {
|
|
1197
|
-
this.setState({
|
|
1146
|
+
this.setState({layoutHeight: e.nativeEvent.layout.height});
|
|
1198
1147
|
}
|
|
1199
1148
|
if (this.props.onLayout) {
|
|
1200
1149
|
this.props.onLayout(e);
|
|
@@ -1202,21 +1151,18 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1202
1151
|
};
|
|
1203
1152
|
|
|
1204
1153
|
_handleContentOnLayout = (e: LayoutEvent) => {
|
|
1205
|
-
const {
|
|
1154
|
+
const {width, height} = e.nativeEvent.layout;
|
|
1206
1155
|
this.props.onContentSizeChange &&
|
|
1207
1156
|
this.props.onContentSizeChange(width, height);
|
|
1208
1157
|
};
|
|
1209
1158
|
|
|
1210
1159
|
_innerView: RefForwarder<InnerViewInstance, InnerViewInstance> =
|
|
1211
1160
|
createRefForwarder(
|
|
1212
|
-
(instance: InnerViewInstance): InnerViewInstance => instance
|
|
1161
|
+
(instance: InnerViewInstance): InnerViewInstance => instance,
|
|
1213
1162
|
);
|
|
1214
1163
|
|
|
1215
|
-
_scrollView: RefForwarder<
|
|
1216
|
-
|
|
1217
|
-
PublicScrollViewInstance
|
|
1218
|
-
> = createRefForwarder(
|
|
1219
|
-
(nativeInstance: NativeScrollViewInstance): PublicScrollViewInstance => {
|
|
1164
|
+
_scrollView: RefForwarder<HostInstance, PublicScrollViewInstance | null> =
|
|
1165
|
+
createRefForwarder(nativeInstance => {
|
|
1220
1166
|
// This is a hack. Ideally we would forwardRef to the underlying
|
|
1221
1167
|
// host component. However, since ScrollView has it's own methods that can be
|
|
1222
1168
|
// called as well, if we used the standard forwardRef then these
|
|
@@ -1240,12 +1186,11 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1240
1186
|
scrollResponderZoomTo: this.scrollResponderZoomTo,
|
|
1241
1187
|
scrollResponderScrollNativeHandleToKeyboard:
|
|
1242
1188
|
this.scrollResponderScrollNativeHandleToKeyboard,
|
|
1243
|
-
}
|
|
1189
|
+
},
|
|
1244
1190
|
);
|
|
1245
1191
|
|
|
1246
1192
|
return publicInstance;
|
|
1247
|
-
}
|
|
1248
|
-
);
|
|
1193
|
+
});
|
|
1249
1194
|
|
|
1250
1195
|
/**
|
|
1251
1196
|
* Warning, this may be called several times for a single keyboard opening.
|
|
@@ -1277,28 +1222,28 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1277
1222
|
*/
|
|
1278
1223
|
|
|
1279
1224
|
scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (
|
|
1280
|
-
e: KeyboardEvent
|
|
1225
|
+
e: KeyboardEvent,
|
|
1281
1226
|
) => {
|
|
1282
1227
|
this._keyboardMetrics = e.endCoordinates;
|
|
1283
1228
|
this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
|
|
1284
1229
|
};
|
|
1285
1230
|
|
|
1286
1231
|
scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (
|
|
1287
|
-
e: KeyboardEvent
|
|
1232
|
+
e: KeyboardEvent,
|
|
1288
1233
|
) => {
|
|
1289
1234
|
this._keyboardMetrics = null;
|
|
1290
1235
|
this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);
|
|
1291
1236
|
};
|
|
1292
1237
|
|
|
1293
1238
|
scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (
|
|
1294
|
-
e: KeyboardEvent
|
|
1239
|
+
e: KeyboardEvent,
|
|
1295
1240
|
) => {
|
|
1296
1241
|
this._keyboardMetrics = e.endCoordinates;
|
|
1297
1242
|
this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);
|
|
1298
1243
|
};
|
|
1299
1244
|
|
|
1300
1245
|
scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (
|
|
1301
|
-
e: KeyboardEvent
|
|
1246
|
+
e: KeyboardEvent,
|
|
1302
1247
|
) => {
|
|
1303
1248
|
this._keyboardMetrics = null;
|
|
1304
1249
|
this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);
|
|
@@ -1331,11 +1276,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1331
1276
|
_handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
|
|
1332
1277
|
FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation
|
|
1333
1278
|
|
|
1334
|
-
if (
|
|
1335
|
-
// RNOH: patch - add support for OpenHarmony
|
|
1336
|
-
(Platform.OS === "android" || Platform.OS === "harmony") &&
|
|
1337
|
-
this.props.keyboardDismissMode === "on-drag"
|
|
1338
|
-
) {
|
|
1279
|
+
if (this._delegate.shouldDismissKeyboardOnScrollBeginDrag(this.props)) {
|
|
1339
1280
|
dismissKeyboard();
|
|
1340
1281
|
}
|
|
1341
1282
|
|
|
@@ -1346,7 +1287,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1346
1287
|
* Invoke this from an `onScrollEndDrag` event.
|
|
1347
1288
|
*/
|
|
1348
1289
|
_handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {
|
|
1349
|
-
const {
|
|
1290
|
+
const {velocity} = e.nativeEvent;
|
|
1350
1291
|
// - If we are animating, then this is a "drag" that is stopping the scrollview and momentum end
|
|
1351
1292
|
// will fire.
|
|
1352
1293
|
// - If velocity is non-zero, then the interaction will stop when momentum scroll ends or
|
|
@@ -1404,10 +1345,10 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1404
1345
|
this._isTouching = e.nativeEvent.touches.length !== 0;
|
|
1405
1346
|
this.props.onResponderRelease && this.props.onResponderRelease(e);
|
|
1406
1347
|
|
|
1407
|
-
if (typeof e.target ===
|
|
1348
|
+
if (typeof e.target === 'number') {
|
|
1408
1349
|
if (__DEV__) {
|
|
1409
1350
|
console.error(
|
|
1410
|
-
|
|
1351
|
+
'Did not expect event target to be a number. Should have been a native component',
|
|
1411
1352
|
);
|
|
1412
1353
|
}
|
|
1413
1354
|
|
|
@@ -1420,7 +1361,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1420
1361
|
if (
|
|
1421
1362
|
currentlyFocusedTextInput != null &&
|
|
1422
1363
|
this.props.keyboardShouldPersistTaps !== true &&
|
|
1423
|
-
this.props.keyboardShouldPersistTaps !==
|
|
1364
|
+
this.props.keyboardShouldPersistTaps !== 'always' &&
|
|
1424
1365
|
this._keyboardIsDismissible() &&
|
|
1425
1366
|
e.target !== currentlyFocusedTextInput &&
|
|
1426
1367
|
!this._observedScrollSinceBecomingResponder &&
|
|
@@ -1486,7 +1427,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1486
1427
|
*
|
|
1487
1428
|
*/
|
|
1488
1429
|
_handleStartShouldSetResponder: (e: PressEvent) => boolean = (
|
|
1489
|
-
e: PressEvent
|
|
1430
|
+
e: PressEvent,
|
|
1490
1431
|
) => {
|
|
1491
1432
|
// Allow any event touch pass through if the default pan responder is disabled
|
|
1492
1433
|
if (this.props.disableScrollViewPanResponder === true) {
|
|
@@ -1495,7 +1436,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1495
1436
|
|
|
1496
1437
|
const currentlyFocusedInput = TextInputState.currentlyFocusedInput();
|
|
1497
1438
|
if (
|
|
1498
|
-
this.props.keyboardShouldPersistTaps ===
|
|
1439
|
+
this.props.keyboardShouldPersistTaps === 'handled' &&
|
|
1499
1440
|
this._keyboardIsDismissible() &&
|
|
1500
1441
|
e.target !== currentlyFocusedInput
|
|
1501
1442
|
) {
|
|
@@ -1516,7 +1457,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1516
1457
|
* Invoke this from an `onStartShouldSetResponderCapture` event.
|
|
1517
1458
|
*/
|
|
1518
1459
|
_handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (
|
|
1519
|
-
e: PressEvent
|
|
1460
|
+
e: PressEvent,
|
|
1520
1461
|
) => {
|
|
1521
1462
|
// The scroll view should receive taps instead of its descendants if:
|
|
1522
1463
|
// * it is already animating/decelerating
|
|
@@ -1533,14 +1474,14 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1533
1474
|
// and a new touch starts with a non-textinput target (in which case the
|
|
1534
1475
|
// first tap should be sent to the scroll view and dismiss the keyboard,
|
|
1535
1476
|
// then the second tap goes to the actual interior view)
|
|
1536
|
-
const {
|
|
1477
|
+
const {keyboardShouldPersistTaps} = this.props;
|
|
1537
1478
|
const keyboardNeverPersistTaps =
|
|
1538
|
-
!keyboardShouldPersistTaps || keyboardShouldPersistTaps ===
|
|
1479
|
+
!keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
|
|
1539
1480
|
|
|
1540
|
-
if (typeof e.target ===
|
|
1481
|
+
if (typeof e.target === 'number') {
|
|
1541
1482
|
if (__DEV__) {
|
|
1542
1483
|
console.error(
|
|
1543
|
-
|
|
1484
|
+
'Did not expect event target to be a number. Should have been a native component',
|
|
1544
1485
|
);
|
|
1545
1486
|
}
|
|
1546
1487
|
|
|
@@ -1601,7 +1542,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1601
1542
|
_keyboardEventsAreUnreliable: () => boolean = () => {
|
|
1602
1543
|
// Android versions prior to API 30 rely on observing layout changes when
|
|
1603
1544
|
// `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.
|
|
1604
|
-
return Platform.OS ===
|
|
1545
|
+
return Platform.OS === 'android' && Platform.Version < 30;
|
|
1605
1546
|
};
|
|
1606
1547
|
|
|
1607
1548
|
/**
|
|
@@ -1613,9 +1554,9 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1613
1554
|
const nativeEvent = e.nativeEvent;
|
|
1614
1555
|
this._isTouching = nativeEvent.touches.length !== 0;
|
|
1615
1556
|
|
|
1616
|
-
const {
|
|
1557
|
+
const {keyboardShouldPersistTaps} = this.props;
|
|
1617
1558
|
const keyboardNeverPersistsTaps =
|
|
1618
|
-
!keyboardShouldPersistTaps || keyboardShouldPersistTaps ===
|
|
1559
|
+
!keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';
|
|
1619
1560
|
|
|
1620
1561
|
// Dismiss the keyboard now if we didn't become responder in capture phase
|
|
1621
1562
|
// to eat presses, but still want to dismiss on interaction.
|
|
@@ -1675,27 +1616,33 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1675
1616
|
this.props.onTouchMove && this.props.onTouchMove(e);
|
|
1676
1617
|
};
|
|
1677
1618
|
|
|
1678
|
-
render(): React.Node
|
|
1679
|
-
const
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1619
|
+
render(): React.Node {
|
|
1620
|
+
const horizontal = this.props.horizontal === true;
|
|
1621
|
+
|
|
1622
|
+
const NativeScrollView = horizontal
|
|
1623
|
+
? HScrollViewNativeComponent
|
|
1624
|
+
: VScrollViewNativeComponent;
|
|
1625
|
+
|
|
1626
|
+
const NativeScrollContentView = horizontal
|
|
1627
|
+
? HScrollContentViewNativeComponent
|
|
1628
|
+
: VScrollContentViewNativeComponent;
|
|
1683
1629
|
|
|
1684
1630
|
const contentContainerStyle = [
|
|
1685
|
-
|
|
1631
|
+
horizontal && styles.contentContainerHorizontal,
|
|
1686
1632
|
this.props.contentContainerStyle,
|
|
1687
1633
|
];
|
|
1688
1634
|
if (__DEV__ && this.props.style !== undefined) {
|
|
1689
1635
|
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1690
1636
|
const style = flattenStyle(this.props.style);
|
|
1691
|
-
const childLayoutProps = [
|
|
1692
|
-
|
|
1637
|
+
const childLayoutProps = ['alignItems', 'justifyContent'].filter(
|
|
1638
|
+
// $FlowFixMe[incompatible-use]
|
|
1639
|
+
prop => style && style[prop] !== undefined,
|
|
1693
1640
|
);
|
|
1694
1641
|
invariant(
|
|
1695
1642
|
childLayoutProps.length === 0,
|
|
1696
|
-
|
|
1643
|
+
'ScrollView child layout (' +
|
|
1697
1644
|
JSON.stringify(childLayoutProps) +
|
|
1698
|
-
|
|
1645
|
+
') must be applied through the contentContainerStyle prop.',
|
|
1699
1646
|
);
|
|
1700
1647
|
}
|
|
1701
1648
|
|
|
@@ -1706,15 +1653,16 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1706
1653
|
onLayout: this._handleContentOnLayout,
|
|
1707
1654
|
};
|
|
1708
1655
|
|
|
1709
|
-
const {
|
|
1656
|
+
const {stickyHeaderIndices} = this.props;
|
|
1710
1657
|
let children = this.props.children;
|
|
1658
|
+
/**
|
|
1659
|
+
* This function can cause unnecessary remount when nested in conditionals as it causes remap of children keys.
|
|
1660
|
+
* https://react.dev/reference/react/Children#children-toarray-caveats
|
|
1661
|
+
*/
|
|
1662
|
+
children = React.Children.toArray<$FlowFixMe>(children);
|
|
1711
1663
|
|
|
1712
1664
|
if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {
|
|
1713
|
-
|
|
1714
|
-
this.props.children
|
|
1715
|
-
);
|
|
1716
|
-
|
|
1717
|
-
children = childArray.map((child, index) => {
|
|
1665
|
+
children = children.map((child, index) => {
|
|
1718
1666
|
const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;
|
|
1719
1667
|
if (indexOfIndex > -1) {
|
|
1720
1668
|
const key = child.key;
|
|
@@ -1724,19 +1672,15 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1724
1672
|
return (
|
|
1725
1673
|
<StickyHeaderComponent
|
|
1726
1674
|
key={key}
|
|
1727
|
-
|
|
1728
|
-
ref={(ref) => this._setStickyHeaderRef(key, ref)}
|
|
1675
|
+
ref={ref => this._setStickyHeaderRef(key, ref)}
|
|
1729
1676
|
nextHeaderLayoutY={this._headerLayoutYs.get(
|
|
1730
|
-
this._getKeyForIndex(nextIndex,
|
|
1677
|
+
this._getKeyForIndex(nextIndex, children),
|
|
1731
1678
|
)}
|
|
1732
|
-
onLayout={(event)
|
|
1733
|
-
this._onStickyHeaderLayout(index, event, key)
|
|
1734
|
-
}
|
|
1679
|
+
onLayout={event => this._onStickyHeaderLayout(index, event, key)}
|
|
1735
1680
|
scrollAnimatedValue={this._scrollAnimatedValue}
|
|
1736
1681
|
inverted={this.props.invertStickyHeaders}
|
|
1737
1682
|
hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}
|
|
1738
|
-
scrollViewHeight={this.state.layoutHeight}
|
|
1739
|
-
>
|
|
1683
|
+
scrollViewHeight={this.state.layoutHeight}>
|
|
1740
1684
|
{child}
|
|
1741
1685
|
</StickyHeaderComponent>
|
|
1742
1686
|
);
|
|
@@ -1746,9 +1690,7 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1746
1690
|
});
|
|
1747
1691
|
}
|
|
1748
1692
|
children = (
|
|
1749
|
-
<ScrollViewContext.Provider
|
|
1750
|
-
value={this.props.horizontal === true ? HORIZONTAL : VERTICAL}
|
|
1751
|
-
>
|
|
1693
|
+
<ScrollViewContext.Provider value={horizontal ? HORIZONTAL : VERTICAL}>
|
|
1752
1694
|
{children}
|
|
1753
1695
|
</ScrollViewContext.Provider>
|
|
1754
1696
|
);
|
|
@@ -1756,22 +1698,29 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1756
1698
|
const hasStickyHeaders =
|
|
1757
1699
|
Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;
|
|
1758
1700
|
|
|
1701
|
+
// Some ScrollView native component behaviors rely on using the metrics
|
|
1702
|
+
// of mounted views for anchoring. Make sure not to flatten children if
|
|
1703
|
+
// this is the case.
|
|
1704
|
+
const preserveChildren =
|
|
1705
|
+
this.props.maintainVisibleContentPosition != null ||
|
|
1706
|
+
(Platform.OS === 'android' && this.props.snapToAlignment != null);
|
|
1707
|
+
|
|
1759
1708
|
const contentContainer = (
|
|
1760
|
-
<
|
|
1709
|
+
<NativeScrollContentView
|
|
1761
1710
|
{...contentSizeChangeProps}
|
|
1762
1711
|
ref={this._innerView.getForwardingRef(this.props.innerViewRef)}
|
|
1763
1712
|
style={contentContainerStyle}
|
|
1764
1713
|
removeClippedSubviews={
|
|
1765
1714
|
// Subview clipping causes issues with sticky headers on Android and
|
|
1766
1715
|
// would be hard to fix properly in a performant way.
|
|
1767
|
-
Platform.OS ===
|
|
1716
|
+
Platform.OS === 'android' && hasStickyHeaders
|
|
1768
1717
|
? false
|
|
1769
1718
|
: this.props.removeClippedSubviews
|
|
1770
1719
|
}
|
|
1771
1720
|
collapsable={false}
|
|
1772
|
-
|
|
1721
|
+
collapsableChildren={!preserveChildren}>
|
|
1773
1722
|
{children}
|
|
1774
|
-
</
|
|
1723
|
+
</NativeScrollContentView>
|
|
1775
1724
|
);
|
|
1776
1725
|
|
|
1777
1726
|
const alwaysBounceHorizontal =
|
|
@@ -1784,12 +1733,12 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1784
1733
|
? this.props.alwaysBounceVertical
|
|
1785
1734
|
: !this.props.horizontal;
|
|
1786
1735
|
|
|
1787
|
-
const baseStyle =
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1736
|
+
const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
|
|
1737
|
+
|
|
1738
|
+
const {experimental_endDraggingSensitivityMultiplier, ...otherProps} =
|
|
1739
|
+
this.props;
|
|
1791
1740
|
const props = {
|
|
1792
|
-
...
|
|
1741
|
+
...otherProps,
|
|
1793
1742
|
alwaysBounceHorizontal,
|
|
1794
1743
|
alwaysBounceVertical,
|
|
1795
1744
|
style: StyleSheet.compose(baseStyle, this.props.style),
|
|
@@ -1814,6 +1763,8 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1814
1763
|
onTouchStart: this._handleTouchStart,
|
|
1815
1764
|
onTouchCancel: this._handleTouchCancel,
|
|
1816
1765
|
onScroll: this._handleScroll,
|
|
1766
|
+
endDraggingSensitivityMultiplier:
|
|
1767
|
+
experimental_endDraggingSensitivityMultiplier,
|
|
1817
1768
|
scrollEventThrottle: hasStickyHeaders
|
|
1818
1769
|
? 1
|
|
1819
1770
|
: this.props.scrollEventThrottle,
|
|
@@ -1826,47 +1777,78 @@ class ScrollView extends React.Component<Props, State> {
|
|
|
1826
1777
|
// default to true
|
|
1827
1778
|
snapToEnd: this.props.snapToEnd !== false,
|
|
1828
1779
|
// pagingEnabled is overridden by snapToInterval / snapToOffsets
|
|
1780
|
+
// RNC_patch: BEGIN
|
|
1829
1781
|
pagingEnabled:
|
|
1830
1782
|
this.props.pagingEnabled === true &&
|
|
1831
1783
|
this.props.snapToInterval == null &&
|
|
1832
1784
|
this.props.snapToOffsets == null,
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
showsHorizontalScrollIndicator:
|
|
1837
|
-
|
|
1785
|
+
showsVerticalScrollIndicator:
|
|
1786
|
+
(this.props.showsVerticalScrollIndicator ?? true) ||
|
|
1787
|
+
this.state.showScrollIndicator,
|
|
1788
|
+
showsHorizontalScrollIndicator:
|
|
1789
|
+
(this.props.showsHorizontalScrollIndicator ?? true) ||
|
|
1790
|
+
this.state.showScrollIndicator,
|
|
1791
|
+
persistentScrollbar:
|
|
1792
|
+
this.props.persistentScrollbar || this.state.showScrollIndicator,
|
|
1793
|
+
// RNC_patch: END
|
|
1794
|
+
...this._delegate.getCustomNativeProps(this.props),
|
|
1838
1795
|
};
|
|
1839
1796
|
|
|
1840
|
-
const {
|
|
1797
|
+
const {decelerationRate} = this.props;
|
|
1841
1798
|
if (decelerationRate != null) {
|
|
1842
1799
|
props.decelerationRate = processDecelerationRate(decelerationRate);
|
|
1843
1800
|
}
|
|
1844
1801
|
|
|
1845
1802
|
const refreshControl = this.props.refreshControl;
|
|
1846
1803
|
const scrollViewRef = this._scrollView.getForwardingRef(
|
|
1847
|
-
this.props.scrollViewRef
|
|
1804
|
+
this.props.scrollViewRef,
|
|
1848
1805
|
);
|
|
1849
1806
|
|
|
1850
1807
|
if (refreshControl) {
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1808
|
+
return this._delegate.renderScrollViewWithRefreshControl({
|
|
1809
|
+
NativeScrollView,
|
|
1810
|
+
props,
|
|
1811
|
+
scrollViewRef,
|
|
1854
1812
|
refreshControl,
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1813
|
+
contentContainer,
|
|
1814
|
+
baseStyle,
|
|
1815
|
+
});
|
|
1816
|
+
// if (Platform.OS === 'ios') {
|
|
1817
|
+
// // On iOS the RefreshControl is a child of the ScrollView.
|
|
1818
|
+
// return (
|
|
1819
|
+
// // $FlowFixMe[incompatible-type] - Flow only knows element refs.
|
|
1820
|
+
// <NativeScrollView {...props} ref={scrollViewRef}>
|
|
1821
|
+
// {refreshControl}
|
|
1822
|
+
// {contentContainer}
|
|
1823
|
+
// </NativeScrollView>
|
|
1824
|
+
// );
|
|
1825
|
+
// } else if (Platform.OS === 'android') {
|
|
1826
|
+
// // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.
|
|
1827
|
+
// // Since the ScrollView is wrapped add the style props to the
|
|
1828
|
+
// // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.
|
|
1829
|
+
// // Note: we should split props.style on the inner and outer props
|
|
1830
|
+
// // however, the ScrollView still needs the baseStyle to be scrollable
|
|
1831
|
+
// // $FlowFixMe[underconstrained-implicit-instantiation]
|
|
1832
|
+
// // $FlowFixMe[incompatible-call]
|
|
1833
|
+
// const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
|
|
1834
|
+
// return React.cloneElement(
|
|
1835
|
+
// refreshControl,
|
|
1836
|
+
// {style: StyleSheet.compose(baseStyle, outer)},
|
|
1837
|
+
// <NativeScrollView
|
|
1838
|
+
// {...props}
|
|
1839
|
+
// style={StyleSheet.compose(baseStyle, inner)}
|
|
1840
|
+
// // $FlowFixMe[incompatible-type] - Flow only knows element refs.
|
|
1841
|
+
// ref={scrollViewRef}>
|
|
1842
|
+
// {contentContainer}
|
|
1843
|
+
// </NativeScrollView>,
|
|
1844
|
+
// );
|
|
1845
|
+
// }
|
|
1864
1846
|
}
|
|
1865
|
-
|
|
1866
1847
|
return (
|
|
1867
|
-
|
|
1848
|
+
// $FlowFixMe[incompatible-type] - Flow only knows element refs.
|
|
1849
|
+
<NativeScrollView {...props} ref={scrollViewRef}>
|
|
1868
1850
|
{contentContainer}
|
|
1869
|
-
</
|
|
1851
|
+
</NativeScrollView>
|
|
1870
1852
|
);
|
|
1871
1853
|
}
|
|
1872
1854
|
}
|
|
@@ -1875,25 +1857,23 @@ const styles = StyleSheet.create({
|
|
|
1875
1857
|
baseVertical: {
|
|
1876
1858
|
flexGrow: 1,
|
|
1877
1859
|
flexShrink: 1,
|
|
1878
|
-
flexDirection:
|
|
1879
|
-
overflow:
|
|
1860
|
+
flexDirection: 'column',
|
|
1861
|
+
overflow: 'scroll',
|
|
1880
1862
|
},
|
|
1881
1863
|
baseHorizontal: {
|
|
1882
1864
|
flexGrow: 1,
|
|
1883
1865
|
flexShrink: 1,
|
|
1884
|
-
flexDirection:
|
|
1885
|
-
overflow:
|
|
1866
|
+
flexDirection: 'row',
|
|
1867
|
+
overflow: 'scroll',
|
|
1886
1868
|
},
|
|
1887
1869
|
contentContainerHorizontal: {
|
|
1888
|
-
flexDirection:
|
|
1870
|
+
flexDirection: 'row',
|
|
1889
1871
|
},
|
|
1890
1872
|
});
|
|
1891
1873
|
|
|
1892
|
-
type ForwardedRef<T> = { current: null | T, ... } | ((null | T) => mixed);
|
|
1893
|
-
|
|
1894
1874
|
type RefForwarder<TNativeInstance, TPublicInstance> = {
|
|
1895
1875
|
getForwardingRef: (
|
|
1896
|
-
?
|
|
1876
|
+
?React.RefSetter<TPublicInstance>,
|
|
1897
1877
|
) => (TNativeInstance | null) => void,
|
|
1898
1878
|
nativeInstance: TNativeInstance | null,
|
|
1899
1879
|
publicInstance: TPublicInstance | null,
|
|
@@ -1904,10 +1884,10 @@ type RefForwarder<TNativeInstance, TPublicInstance> = {
|
|
|
1904
1884
|
* once `ScrollView` is reimplemented as a functional component.
|
|
1905
1885
|
*/
|
|
1906
1886
|
function createRefForwarder<TNativeInstance, TPublicInstance>(
|
|
1907
|
-
mutator:
|
|
1887
|
+
mutator: TNativeInstance => TPublicInstance,
|
|
1908
1888
|
): RefForwarder<TNativeInstance, TPublicInstance> {
|
|
1909
1889
|
const state: RefForwarder<TNativeInstance, TPublicInstance> = {
|
|
1910
|
-
getForwardingRef: memoize(
|
|
1890
|
+
getForwardingRef: memoize(forwardedRef => {
|
|
1911
1891
|
return (nativeInstance: TNativeInstance | null): void => {
|
|
1912
1892
|
const publicInstance =
|
|
1913
1893
|
nativeInstance == null ? null : mutator(nativeInstance);
|
|
@@ -1916,7 +1896,7 @@ function createRefForwarder<TNativeInstance, TPublicInstance>(
|
|
|
1916
1896
|
state.publicInstance = publicInstance;
|
|
1917
1897
|
|
|
1918
1898
|
if (forwardedRef != null) {
|
|
1919
|
-
if (typeof forwardedRef ===
|
|
1899
|
+
if (typeof forwardedRef === 'function') {
|
|
1920
1900
|
forwardedRef(publicInstance);
|
|
1921
1901
|
} else {
|
|
1922
1902
|
forwardedRef.current = publicInstance;
|
|
@@ -1931,21 +1911,26 @@ function createRefForwarder<TNativeInstance, TPublicInstance>(
|
|
|
1931
1911
|
return state;
|
|
1932
1912
|
}
|
|
1933
1913
|
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1914
|
+
// TODO: After upgrading to React 19, remove `forwardRef` from this component.
|
|
1915
|
+
// NOTE: This wrapper component is necessary because `ScrollView` is a class
|
|
1916
|
+
// component and we need to map `ref` to a differently named prop. This can be
|
|
1917
|
+
// removed when `ScrollView` is a functional component.
|
|
1918
|
+
const Wrapper: component(
|
|
1919
|
+
ref: React.RefSetter<PublicScrollViewInstance>,
|
|
1920
|
+
...props: Props
|
|
1921
|
+
) = React.forwardRef(function Wrapper(
|
|
1922
|
+
props: Props,
|
|
1923
|
+
ref: ?React.RefSetter<PublicScrollViewInstance>,
|
|
1924
|
+
): React.Node {
|
|
1925
|
+
return ref == null ? (
|
|
1926
|
+
<ScrollView {...props} />
|
|
1927
|
+
) : (
|
|
1928
|
+
<ScrollView {...props} scrollViewRef={ref} />
|
|
1929
|
+
);
|
|
1930
|
+
});
|
|
1931
|
+
Wrapper.displayName = 'ScrollView';
|
|
1932
|
+
// $FlowExpectedError[prop-missing]
|
|
1933
|
+
Wrapper.Context = ScrollViewContext;
|
|
1946
1934
|
|
|
1947
|
-
module.exports = ((
|
|
1948
|
-
React.ElementConfig<typeof ScrollView>,
|
|
1949
|
-
PublicScrollViewInstance
|
|
1950
|
-
> &
|
|
1935
|
+
module.exports = ((Wrapper: $FlowFixMe): typeof Wrapper &
|
|
1951
1936
|
ScrollViewComponentStatics);
|