@office-iss/react-native-win32 0.67.0-preview.2 → 0.68.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +2 -1
- package/.flowconfig +9 -2
- package/CHANGELOG.json +387 -17
- package/CHANGELOG.md +148 -12
- package/IntegrationTests/AccessibilityManagerTest.js +1 -1
- package/IntegrationTests/AppEventsTest.js +2 -1
- package/IntegrationTests/AsyncStorageTest.js +8 -6
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
- package/IntegrationTests/ImageCachePolicyTest.js +1 -1
- package/IntegrationTests/ImageSnapshotTest.js +1 -1
- package/IntegrationTests/IntegrationTestHarnessTest.js +8 -6
- package/IntegrationTests/IntegrationTestsApp.js +3 -9
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/LoggingTestModule.js +8 -8
- package/IntegrationTests/PromiseTest.js +1 -1
- package/IntegrationTests/PropertiesUpdateTest.js +1 -1
- package/IntegrationTests/RCTRootViewIntegrationTestApp.js +3 -9
- package/IntegrationTests/ReactContentSizeUpdateTest.js +1 -1
- package/IntegrationTests/SimpleSnapshotTest.js +1 -1
- package/IntegrationTests/SizeFlexibilityUpdateTest.js +1 -1
- package/IntegrationTests/SyncMethodTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/IntegrationTests/WebSocketTest.js +2 -2
- package/IntegrationTests/launchWebSocketServer.command +1 -1
- package/IntegrationTests/websocket_integration_test_server.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -4
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -1
- package/Libraries/Alert/Alert.js +4 -4
- package/Libraries/Alert/Alert.win32.js +3 -3
- package/Libraries/Alert/NativeAlertManager.js +1 -1
- package/Libraries/Alert/RCTAlertManager.android.js +2 -2
- package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
- package/Libraries/Animated/Animated.js +1 -1
- package/Libraries/Animated/AnimatedEvent.js +11 -6
- package/Libraries/Animated/AnimatedImplementation.js +116 -85
- package/Libraries/Animated/AnimatedMock.js +65 -22
- package/Libraries/{Components/Touchable/__mocks__/ensureComponentIsNative.js → Animated/AnimatedPlatformConfig.js} +3 -2
- package/Libraries/Animated/AnimatedWeb.js +1 -1
- package/Libraries/Animated/Easing.js +38 -40
- package/Libraries/Animated/NativeAnimatedHelper.js +24 -21
- package/Libraries/Animated/NativeAnimatedModule.js +1 -1
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -1
- package/Libraries/Animated/SpringConfig.js +11 -11
- package/Libraries/Animated/animations/Animation.js +6 -4
- package/Libraries/Animated/animations/DecayAnimation.js +6 -1
- package/Libraries/Animated/animations/SpringAnimation.js +16 -1
- package/Libraries/Animated/animations/TimingAnimation.js +15 -2
- package/Libraries/Animated/bezier.js +20 -9
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
- package/Libraries/Animated/components/AnimatedImage.js +1 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -1
- package/Libraries/Animated/components/AnimatedText.js +1 -1
- package/Libraries/Animated/components/AnimatedView.js +1 -1
- package/Libraries/Animated/createAnimatedComponent.js +4 -4
- package/Libraries/Animated/createAnimatedComponentInjection.js +1 -1
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +1 -1
- package/Libraries/Animated/nodes/AnimatedAddition.js +6 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +266 -0
- package/Libraries/Animated/nodes/AnimatedDiffClamp.js +5 -4
- package/Libraries/Animated/nodes/AnimatedDivision.js +6 -5
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +8 -6
- package/Libraries/Animated/nodes/AnimatedModulo.js +5 -4
- package/Libraries/Animated/nodes/AnimatedMultiplication.js +6 -5
- package/Libraries/Animated/nodes/AnimatedNode.js +31 -18
- package/Libraries/Animated/nodes/AnimatedProps.js +12 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +9 -7
- package/Libraries/Animated/nodes/AnimatedSubtraction.js +6 -5
- package/Libraries/Animated/nodes/AnimatedTracking.js +8 -6
- package/Libraries/Animated/nodes/AnimatedTransform.js +6 -4
- package/Libraries/Animated/nodes/AnimatedValue.js +21 -12
- package/Libraries/Animated/nodes/AnimatedValueXY.js +14 -14
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +6 -5
- package/Libraries/Animated/useAnimatedProps.js +1 -1
- package/Libraries/AppState/AppState.js +9 -8
- package/Libraries/AppState/NativeAppState.js +1 -1
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +7 -9
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
- package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
- package/Libraries/Blob/Blob.js +1 -1
- package/Libraries/Blob/BlobManager.js +1 -1
- package/Libraries/Blob/BlobRegistry.js +1 -1
- package/Libraries/Blob/BlobTypes.js +1 -1
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/FileReader.js +1 -1
- package/Libraries/Blob/NativeBlobModule.js +1 -1
- package/Libraries/Blob/NativeFileReaderModule.js +1 -1
- package/Libraries/Blob/URL.js +26 -21
- package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
- package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
- package/Libraries/BugReporting/BugReporting.js +1 -1
- package/Libraries/BugReporting/NativeBugReporting.js +1 -1
- package/Libraries/BugReporting/dumpReactTree.js +1 -1
- package/Libraries/BugReporting/getReactData.js +15 -6
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +89 -29
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +95 -35
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +4 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +5 -5
- package/Libraries/Components/Button.js +1 -1
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -1
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +1 -1
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +18 -2
- package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +1 -1
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +1 -1
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +5 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +9 -8
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +11 -6
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -1
- package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +1 -1
- package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +1 -1
- package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +1 -1
- package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +38 -2
- package/Libraries/Components/Pressable/Pressable.win32.js +384 -0
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +6 -5
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +3 -2
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +1 -1
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -2
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +3 -8
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -4
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -1
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +4 -6
- package/Libraries/Components/ScrollView/ScrollView.js +22 -15
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +135 -71
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +2 -2
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +2 -1
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +1 -1
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +1 -1
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +3 -9
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +1 -1
- package/Libraries/Components/Slider/Slider.js +1 -1
- package/Libraries/Components/Slider/SliderNativeComponent.js +3 -3
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -1
- package/Libraries/Components/Sound/SoundManager.js +2 -2
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +1 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -1
- package/Libraries/Components/Switch/Switch.js +1 -1
- package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +175 -14
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +10 -5
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +32 -11
- package/Libraries/Components/TextInput/TextInput.js +131 -31
- package/Libraries/Components/TextInput/TextInputNativeCommands.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +4 -4
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +4 -4
- package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +4 -4
- package/Libraries/Components/Touchable/BoundingDimensions.js +3 -3
- package/Libraries/Components/Touchable/PooledClass.js +12 -12
- package/Libraries/Components/Touchable/Position.js +2 -2
- package/Libraries/Components/Touchable/Touchable.js +27 -40
- package/Libraries/Components/Touchable/TouchableBounce.js +3 -6
- package/Libraries/Components/Touchable/TouchableHighlight.js +3 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -12
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -7
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -6
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +13 -2
- package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +13 -2
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +1 -1
- package/Libraries/Components/View/View.js +1 -1
- package/Libraries/Components/View/View.win32.js +60 -4
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Components/View/ViewNativeComponent.js +4 -5
- package/Libraries/Components/View/ViewPropTypes.js +38 -31
- package/Libraries/Components/View/ViewPropTypes.win32.js +553 -0
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +3 -2
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/ExtendedError.js +1 -1
- package/Libraries/Core/InitializeCore.js +1 -3
- package/Libraries/Core/NativeExceptionsManager.js +3 -4
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +12 -2
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +12 -2
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -1
- package/Libraries/Core/Timers/JSTimers.js +35 -42
- package/Libraries/Core/Timers/NativeTiming.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -1
- package/Libraries/Core/polyfillPromise.js +1 -1
- package/Libraries/Core/setUpAlert.js +2 -2
- package/Libraries/Core/setUpBatchedBridge.js +15 -3
- package/Libraries/Core/setUpDeveloperTools.js +2 -2
- package/Libraries/Core/setUpErrorHandling.js +2 -2
- package/Libraries/Core/setUpGlobals.js +1 -1
- package/Libraries/Core/setUpNavigator.js +1 -1
- package/Libraries/Core/setUpPerformance.js +2 -2
- package/Libraries/Core/setUpReactDevTools.js +1 -1
- package/Libraries/Core/setUpReactRefresh.js +1 -1
- package/Libraries/Core/setUpRegeneratorRuntime.js +2 -2
- package/Libraries/Core/setUpSegmentFetcher.js +5 -5
- package/Libraries/Core/setUpSystrace.js +1 -1
- package/Libraries/Core/setUpTimers.js +12 -2
- package/Libraries/Core/setUpXHR.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -2
- package/Libraries/HeapCapture/HeapCapture.js +2 -2
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -5
- package/Libraries/Image/AssetUtils.js +1 -1
- package/Libraries/Image/Image.android.js +38 -30
- package/Libraries/Image/Image.ios.js +17 -20
- package/Libraries/Image/Image.win32.js +19 -22
- package/Libraries/Image/ImageAnalyticsTagContext.js +3 -4
- package/Libraries/Image/ImageBackground.js +11 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImagePickerIOS.js +7 -7
- package/Libraries/Image/ImageProps.js +18 -18
- package/Libraries/Image/ImageResizeMode.js +1 -1
- package/Libraries/Image/ImageSource.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +96 -61
- package/Libraries/Image/NativeImageEditor.js +1 -1
- package/Libraries/Image/NativeImageLoaderAndroid.js +2 -4
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -1
- package/Libraries/Image/NativeImageLoaderWin32.js +1 -1
- package/Libraries/Image/NativeImagePickerIOS.js +1 -1
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -1
- package/Libraries/Image/NativeImageStoreIOS.js +1 -1
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +14 -74
- package/Libraries/Image/nativeImageSource.js +3 -3
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.win32.js +1 -1
- package/Libraries/Inspector/BorderBox.js +1 -1
- package/Libraries/Inspector/BoxInspector.js +1 -1
- package/Libraries/Inspector/ElementBox.js +1 -1
- package/Libraries/Inspector/ElementProperties.js +1 -1
- package/Libraries/Inspector/Inspector.js +2 -2
- package/Libraries/Inspector/Inspector.win32.js +7 -7
- package/Libraries/Inspector/InspectorOverlay.js +1 -1
- package/Libraries/Inspector/InspectorOverlay.win32.js +1 -1
- package/Libraries/Inspector/InspectorPanel.js +1 -1
- package/Libraries/Inspector/NetworkOverlay.js +3 -6
- package/Libraries/Inspector/PerformanceOverlay.js +1 -1
- package/Libraries/Inspector/StyleInspector.js +1 -1
- package/Libraries/Inspector/resolveBoxStyle.js +1 -1
- package/Libraries/Interaction/Batchinator.js +1 -1
- package/Libraries/Interaction/BridgeSpyStallHandler.js +2 -2
- package/Libraries/Interaction/FrameRateLogger.js +3 -3
- package/Libraries/Interaction/InteractionManager.js +3 -5
- package/Libraries/Interaction/InteractionStallDebugger.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +5 -5
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -1
- package/Libraries/Interaction/PanResponder.js +4 -5
- package/Libraries/Interaction/TaskQueue.js +1 -1
- package/Libraries/Interaction/TouchHistoryMath.js +8 -8
- package/Libraries/JSInspector/InspectorAgent.js +1 -1
- package/Libraries/JSInspector/JSInspector.js +1 -1
- package/Libraries/JSInspector/NetworkAgent.js +2 -7
- package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -4
- package/Libraries/Linking/Linking.js +8 -8
- package/Libraries/Linking/NativeIntentAndroid.js +1 -1
- package/Libraries/Linking/NativeLinkingManager.js +1 -1
- package/Libraries/Lists/CellRenderMask.js +1 -1
- package/Libraries/Lists/FillRateHelper.js +5 -4
- package/Libraries/Lists/FlatList.js +4 -5
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +4 -4
- package/Libraries/Lists/ViewabilityHelper.js +5 -11
- package/Libraries/Lists/VirtualizeUtils.js +3 -7
- package/Libraries/Lists/VirtualizedList.js +23 -33
- package/Libraries/Lists/VirtualizedListContext.js +3 -4
- package/Libraries/Lists/VirtualizedSectionList.js +54 -63
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/Lists/__tests__/CellRenderMask-test.js +1 -1
- package/Libraries/Lists/__tests__/{FillRateHelper-test.js → FillRateHelper-test.windows.js} +8 -8
- package/Libraries/Lists/__tests__/{FlatList-test.js → FlatList-test.windows.js} +3 -3
- package/Libraries/Lists/__tests__/{SectionList-test.js → SectionList-test.windows.js} +15 -15
- package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +15 -15
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.js → VirtualizeUtils-test.windows.js} +19 -22
- package/Libraries/Lists/__tests__/{VirtualizedList-test.js → VirtualizedList-test.windows.js} +32 -32
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.js → VirtualizedSectionList-test.windows.js} +15 -15
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +13 -24
- package/Libraries/LogBox/LogBox.js +4 -4
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
- package/Libraries/LogBox/UI/AnsiHighlight.js +10 -5
- package/Libraries/LogBox/UI/LogBoxButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +4 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -2
- package/Libraries/LogBox/UI/LogBoxMessage.js +7 -3
- package/Libraries/LogBox/UI/LogBoxNotification.js +7 -4
- package/Libraries/LogBox/UI/LogBoxStyle.js +1 -1
- package/Libraries/LogBox/UI/LogBoxStyle.win32.js +1 -1
- package/Libraries/Modal/Modal.js +15 -14
- package/Libraries/Modal/ModalInjection.js +1 -1
- package/Libraries/Modal/NativeModalManager.js +1 -1
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +12 -12
- package/Libraries/NativeComponent/NativeComponentRegistry.js +30 -33
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +27 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +198 -0
- package/Libraries/NativeComponent/ViewConfig.js +1 -1
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -1
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -1
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -1
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -1
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -1
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -1
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -1
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -1
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -1
- package/Libraries/Network/NativeNetworkingIOS.js +1 -1
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +2 -2
- package/Libraries/Network/XHRInterceptor.js +6 -7
- package/Libraries/Network/XMLHttpRequest.js +44 -8
- package/Libraries/Network/convertRequestBody.js +1 -1
- package/Libraries/Network/fetch.js +1 -1
- package/Libraries/NewAppScreen/components/Colors.js +1 -1
- package/Libraries/NewAppScreen/components/DebugInstructions.js +1 -1
- package/Libraries/NewAppScreen/components/Header.js +1 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +1 -1
- package/Libraries/NewAppScreen/components/ReloadInstructions.js +1 -1
- package/Libraries/NewAppScreen/index.js +1 -1
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -1
- package/Libraries/Performance/PureComponentDebug.js +1 -1
- package/Libraries/Performance/QuickPerformanceLogger.js +18 -1
- package/Libraries/Performance/SamplingProfiler.js +4 -4
- package/Libraries/Performance/Systrace.js +9 -2
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +7 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +20 -9
- package/Libraries/Pressability/HoverState.js +1 -1
- package/Libraries/Pressability/HoverState.win32.js +60 -0
- package/Libraries/Pressability/Pressability.js +3 -3
- package/Libraries/Pressability/Pressability.win32.js +962 -0
- package/Libraries/Pressability/PressabilityDebug.js +15 -12
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +5 -3
- package/Libraries/Pressability/PressabilityTypes.js +1 -1
- package/Libraries/Pressability/usePressability.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -1
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +33 -32
- package/Libraries/ReactNative/AppContainer.js +3 -3
- package/Libraries/ReactNative/AppRegistry.js +15 -13
- package/Libraries/ReactNative/DisplayMode.js +1 -1
- package/Libraries/ReactNative/DummyUIManager.js +13 -6
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -1
- package/Libraries/ReactNative/I18nManager.js +3 -6
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -1
- package/Libraries/ReactNative/NativeI18nManager.js +1 -1
- package/Libraries/ReactNative/NativeUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +3 -4
- package/Libraries/ReactNative/PaperUIManager.win32.js +8 -9
- package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
- package/Libraries/ReactNative/RootTag.js +3 -4
- package/Libraries/ReactNative/UIManager.js +5 -7
- package/Libraries/ReactNative/UIManagerInjection.js +4 -2
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +4 -2
- package/Libraries/ReactNative/getNativeComponentAttributes.js +21 -9
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
- package/Libraries/Reliability/UserFlow.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1134 -426
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +265 -236
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +538 -302
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1084 -463
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +251 -224
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +519 -281
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1 -1
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -4
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Settings/NativeSettingsManager.js +1 -1
- package/Libraries/Settings/Settings.android.js +1 -1
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -1
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/Storage/AsyncStorage.js +34 -35
- package/Libraries/Storage/NativeAsyncLocalStorage.js +1 -1
- package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -2
- package/Libraries/StyleSheet/StyleSheet.win32.js +3 -2
- package/Libraries/StyleSheet/StyleSheetTypes.js +2 -2
- package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +1 -1
- package/Libraries/StyleSheet/flattenStyle.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +3 -3
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +21 -2
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/StyleSheet/splitLayoutProps.js +2 -4
- package/Libraries/Text/Text.js +11 -12
- package/Libraries/Text/TextAncestor.js +1 -1
- package/Libraries/Text/TextNativeComponent.js +10 -8
- package/Libraries/Text/TextNativeComponent.win32.js +9 -7
- package/Libraries/Text/TextProps.js +19 -19
- package/Libraries/TurboModule/RCTExport.js +1 -1
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.win32.js +191 -0
- package/Libraries/Types/RootTagTypes.js +1 -1
- package/Libraries/UTFSequence.js +1 -1
- package/Libraries/Utilities/Appearance.js +7 -6
- package/Libraries/Utilities/BackHandler.android.js +5 -5
- package/Libraries/Utilities/BackHandler.ios.js +1 -1
- package/Libraries/Utilities/BackHandler.win32.js +5 -5
- package/Libraries/Utilities/DebugEnvironment.js +1 -1
- package/Libraries/Utilities/DevSettings.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/FeatureDetection.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -1
- package/Libraries/Utilities/HMRClient.js +3 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/JSDevSupportModule.js +4 -5
- package/Libraries/Utilities/LoadingView.android.js +1 -1
- package/Libraries/Utilities/LoadingView.ios.js +1 -1
- package/Libraries/Utilities/LoadingView.js +1 -1
- package/Libraries/Utilities/MatrixMath.js +20 -20
- package/Libraries/Utilities/NativeAppearance.js +1 -1
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -1
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -1
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
- package/Libraries/Utilities/NativeJSDevSupport.js +1 -1
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -1
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -1
- package/Libraries/Utilities/PerformanceLoggerContext.js +3 -4
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +1 -1
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Utilities/PolyfillFunctions.js +1 -1
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +8 -12
- package/Libraries/Utilities/SceneTracker.js +5 -4
- package/Libraries/Utilities/__mocks__/BackHandler.js +4 -4
- package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/buildStyleInterpolator.js +10 -10
- package/Libraries/Utilities/clamp.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +4 -3
- package/Libraries/Utilities/createPerformanceLogger.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/deprecatedPropType.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +2 -2
- package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
- package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
- package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
- package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
- package/Libraries/Utilities/dismissKeyboard.js +1 -1
- package/Libraries/Utilities/groupByEveryN.js +1 -1
- package/Libraries/Utilities/infoLog.js +1 -1
- package/Libraries/Utilities/logError.js +2 -2
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/mergeIntoFast.js +2 -2
- package/Libraries/Utilities/setAndForwardRef.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/truncate.js +2 -2
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +1 -1
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +6 -2
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +4 -2
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -1
- package/Libraries/Vibration/Vibration.js +6 -6
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -1
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketEvent.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +7 -7
- package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/EventSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +3 -2
- package/Libraries/vendor/emitter/_EventEmitter.js +3 -2
- package/Libraries/vendor/emitter/_EventSubscription.js +3 -2
- package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +2 -2
- package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +1 -1
- package/flow/HermesInternalType.js +1 -1
- package/flow/Position.js +1 -1
- package/flow/Promise.js +1 -1
- package/flow/Stringish.js +1 -1
- package/flow/console.js +1 -1
- package/flow/global.js +2 -6
- package/flow/jest.js +1 -1
- package/flow/use-subscription.js +1 -1
- package/flow-typed/npm/glob_v7.x.x.js +79 -0
- package/index.js +26 -17
- package/index.win32.js +26 -20
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +1 -1
- package/jest/assetFileTransformer.js +3 -3
- package/jest/mockComponent.js +1 -1
- package/jest/mockModal.js +3 -3
- package/jest/mockNativeComponent.js +5 -1
- package/jest/mockScrollView.js +1 -1
- package/jest/preprocessor.js +10 -78
- package/jest/renderer.js +1 -1
- package/jest/setup.js +5 -4
- package/overrides.json +98 -63
- package/package.json +24 -23
- package/rn-get-polyfills.js +1 -1
- package/rntypes/globals.d.ts +6 -5
- package/rntypes/index.d.ts +89 -312
- package/rntypes/legacy-properties.d.ts +0 -28
- package/src/rntypes/globals.d.ts +6 -5
- package/src/rntypes/index.d.ts +89 -312
- package/src/rntypes/legacy-properties.d.ts +0 -28
- package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -116
- package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
- package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
- package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.android.js +0 -131
- package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.ios.js +0 -82
- package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.win32.js +0 -82
- package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
- package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
- package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
- package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
- package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
- package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
- package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
- package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
- package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
- package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
- package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -46
- package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
- package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
- package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
- package/flow-typed/npm/prop-types_v15.x.x.js +0 -42
- package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
- package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +0 -3
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4634
- package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -102,9 +102,7 @@ class ViewabilityHelper {
|
|
|
102
102
|
itemCount: number,
|
|
103
103
|
scrollOffset: number,
|
|
104
104
|
viewportHeight: number,
|
|
105
|
-
getFrameMetrics: (
|
|
106
|
-
index: number,
|
|
107
|
-
) => ?{
|
|
105
|
+
getFrameMetrics: (index: number) => ?{
|
|
108
106
|
length: number,
|
|
109
107
|
offset: number,
|
|
110
108
|
...
|
|
@@ -116,10 +114,8 @@ class ViewabilityHelper {
|
|
|
116
114
|
...
|
|
117
115
|
},
|
|
118
116
|
): Array<number> {
|
|
119
|
-
const {
|
|
120
|
-
|
|
121
|
-
viewAreaCoveragePercentThreshold,
|
|
122
|
-
} = this._config;
|
|
117
|
+
const {itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold} =
|
|
118
|
+
this._config;
|
|
123
119
|
const viewAreaMode = viewAreaCoveragePercentThreshold != null;
|
|
124
120
|
const viewablePercentThreshold = viewAreaMode
|
|
125
121
|
? viewAreaCoveragePercentThreshold
|
|
@@ -179,9 +175,7 @@ class ViewabilityHelper {
|
|
|
179
175
|
itemCount: number,
|
|
180
176
|
scrollOffset: number,
|
|
181
177
|
viewportHeight: number,
|
|
182
|
-
getFrameMetrics: (
|
|
183
|
-
index: number,
|
|
184
|
-
) => ?{
|
|
178
|
+
getFrameMetrics: (index: number) => ?{
|
|
185
179
|
length: number,
|
|
186
180
|
offset: number,
|
|
187
181
|
...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -20,9 +20,7 @@ import invariant from 'invariant';
|
|
|
20
20
|
export function elementsThatOverlapOffsets(
|
|
21
21
|
offsets: Array<number>,
|
|
22
22
|
itemCount: number,
|
|
23
|
-
getFrameMetrics: (
|
|
24
|
-
index: number,
|
|
25
|
-
) => {
|
|
23
|
+
getFrameMetrics: (index: number) => {
|
|
26
24
|
length: number,
|
|
27
25
|
offset: number,
|
|
28
26
|
...
|
|
@@ -96,9 +94,7 @@ export function computeWindowedRenderLimits(
|
|
|
96
94
|
last: number,
|
|
97
95
|
...
|
|
98
96
|
},
|
|
99
|
-
getFrameMetricsApprox: (
|
|
100
|
-
index: number,
|
|
101
|
-
) => {
|
|
97
|
+
getFrameMetricsApprox: (index: number) => {
|
|
102
98
|
length: number,
|
|
103
99
|
offset: number,
|
|
104
100
|
...
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -349,8 +349,8 @@ function windowSizeOrDefault(windowSize: ?number) {
|
|
|
349
349
|
}
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* Base implementation for the more convenient [`<FlatList>`](https://reactnative.dev/docs/flatlist
|
|
353
|
-
* and [`<SectionList>`](https://reactnative.dev/docs/sectionlist
|
|
352
|
+
* Base implementation for the more convenient [`<FlatList>`](https://reactnative.dev/docs/flatlist)
|
|
353
|
+
* and [`<SectionList>`](https://reactnative.dev/docs/sectionlist) components, which are also better
|
|
354
354
|
* documented. In general, this should only really be used if you need more flexibility than
|
|
355
355
|
* `FlatList` provides, e.g. for use with immutable data instead of plain arrays.
|
|
356
356
|
*
|
|
@@ -441,9 +441,9 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
441
441
|
);
|
|
442
442
|
invariant(
|
|
443
443
|
index < getItemCount(data),
|
|
444
|
-
`scrollToIndex out of range: requested index ${index} is out of 0 to ${
|
|
445
|
-
data
|
|
446
|
-
|
|
444
|
+
`scrollToIndex out of range: requested index ${index} is out of 0 to ${
|
|
445
|
+
getItemCount(data) - 1
|
|
446
|
+
}`,
|
|
447
447
|
);
|
|
448
448
|
if (!getItemLayout && index > this._highestMeasuredFrameIndex) {
|
|
449
449
|
invariant(
|
|
@@ -703,12 +703,14 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
703
703
|
onViewableItemsChanged: pair.onViewableItemsChanged,
|
|
704
704
|
}),
|
|
705
705
|
);
|
|
706
|
-
} else
|
|
707
|
-
this.
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
706
|
+
} else {
|
|
707
|
+
const {onViewableItemsChanged, viewabilityConfig} = this.props;
|
|
708
|
+
if (onViewableItemsChanged) {
|
|
709
|
+
this._viewabilityTuples.push({
|
|
710
|
+
viewabilityHelper: new ViewabilityHelper(viewabilityConfig),
|
|
711
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
712
|
+
});
|
|
713
|
+
}
|
|
712
714
|
}
|
|
713
715
|
|
|
714
716
|
let initialState = {
|
|
@@ -882,11 +884,8 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
882
884
|
);
|
|
883
885
|
}
|
|
884
886
|
}
|
|
885
|
-
const {
|
|
886
|
-
|
|
887
|
-
ListFooterComponent,
|
|
888
|
-
ListHeaderComponent,
|
|
889
|
-
} = this.props;
|
|
887
|
+
const {ListEmptyComponent, ListFooterComponent, ListHeaderComponent} =
|
|
888
|
+
this.props;
|
|
890
889
|
const {data, horizontal} = this.props;
|
|
891
890
|
const isVirtualizationDisabled = this._isVirtualizationDisabled();
|
|
892
891
|
const inversionStyle = this.props.inverted
|
|
@@ -1496,12 +1495,8 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
1496
1495
|
}
|
|
1497
1496
|
|
|
1498
1497
|
_maybeCallOnEndReached() {
|
|
1499
|
-
const {
|
|
1500
|
-
|
|
1501
|
-
getItemCount,
|
|
1502
|
-
onEndReached,
|
|
1503
|
-
onEndReachedThreshold,
|
|
1504
|
-
} = this.props;
|
|
1498
|
+
const {data, getItemCount, onEndReached, onEndReachedThreshold} =
|
|
1499
|
+
this.props;
|
|
1505
1500
|
const {contentLength, visibleLength, offset} = this._scrollMetrics;
|
|
1506
1501
|
const distanceFromEnd = contentLength - visibleLength - offset;
|
|
1507
1502
|
const threshold =
|
|
@@ -1588,15 +1583,11 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
1588
1583
|
// know our offset from our offset from our parent
|
|
1589
1584
|
return;
|
|
1590
1585
|
}
|
|
1591
|
-
({
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
} = this._convertParentScrollMetrics({
|
|
1597
|
-
visibleLength,
|
|
1598
|
-
offset,
|
|
1599
|
-
}));
|
|
1586
|
+
({visibleLength, contentLength, offset, dOffset} =
|
|
1587
|
+
this._convertParentScrollMetrics({
|
|
1588
|
+
visibleLength,
|
|
1589
|
+
offset,
|
|
1590
|
+
}));
|
|
1600
1591
|
}
|
|
1601
1592
|
|
|
1602
1593
|
const dt = this._scrollMetrics.timestamp
|
|
@@ -1802,7 +1793,6 @@ class VirtualizedList extends React.PureComponent<Props, State> {
|
|
|
1802
1793
|
}
|
|
1803
1794
|
}
|
|
1804
1795
|
if (someChildHasMore) {
|
|
1805
|
-
// $FlowFixMe[incompatible-use]
|
|
1806
1796
|
newState.last = ii;
|
|
1807
1797
|
break;
|
|
1808
1798
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -64,9 +64,8 @@ type Context = $ReadOnly<{
|
|
|
64
64
|
debugInfo: ListDebugInfo,
|
|
65
65
|
}>;
|
|
66
66
|
|
|
67
|
-
export const VirtualizedListContext: React.Context<?Context> =
|
|
68
|
-
null
|
|
69
|
-
);
|
|
67
|
+
export const VirtualizedListContext: React.Context<?Context> =
|
|
68
|
+
React.createContext(null);
|
|
70
69
|
if (__DEV__) {
|
|
71
70
|
VirtualizedListContext.displayName = 'VirtualizedListContext';
|
|
72
71
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -240,9 +240,7 @@ class VirtualizedSectionList<
|
|
|
240
240
|
return (info && info.key) || String(index);
|
|
241
241
|
};
|
|
242
242
|
|
|
243
|
-
_subExtractor(
|
|
244
|
-
index: number,
|
|
245
|
-
): ?{
|
|
243
|
+
_subExtractor(index: number): ?{
|
|
246
244
|
section: SectionT,
|
|
247
245
|
// Key of the section or combined key for section + item
|
|
248
246
|
key: string,
|
|
@@ -339,63 +337,58 @@ class VirtualizedSectionList<
|
|
|
339
337
|
}
|
|
340
338
|
};
|
|
341
339
|
|
|
342
|
-
_renderItem =
|
|
343
|
-
|
|
344
|
-
index,
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
return renderSectionHeader ? renderSectionHeader({section}) : null;
|
|
340
|
+
_renderItem =
|
|
341
|
+
(listItemCount: number) =>
|
|
342
|
+
({item, index}: {item: Item, index: number, ...}) => {
|
|
343
|
+
const info = this._subExtractor(index);
|
|
344
|
+
if (!info) {
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
const infoIndex = info.index;
|
|
348
|
+
if (infoIndex == null) {
|
|
349
|
+
const {section} = info;
|
|
350
|
+
if (info.header === true) {
|
|
351
|
+
const {renderSectionHeader} = this.props;
|
|
352
|
+
return renderSectionHeader ? renderSectionHeader({section}) : null;
|
|
353
|
+
} else {
|
|
354
|
+
const {renderSectionFooter} = this.props;
|
|
355
|
+
return renderSectionFooter ? renderSectionFooter({section}) : null;
|
|
356
|
+
}
|
|
360
357
|
} else {
|
|
361
|
-
const
|
|
362
|
-
|
|
358
|
+
const renderItem = info.section.renderItem || this.props.renderItem;
|
|
359
|
+
const SeparatorComponent = this._getSeparatorComponent(
|
|
360
|
+
index,
|
|
361
|
+
info,
|
|
362
|
+
listItemCount,
|
|
363
|
+
);
|
|
364
|
+
invariant(renderItem, 'no renderItem!');
|
|
365
|
+
return (
|
|
366
|
+
<ItemWithSeparator
|
|
367
|
+
SeparatorComponent={SeparatorComponent}
|
|
368
|
+
LeadingSeparatorComponent={
|
|
369
|
+
infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined
|
|
370
|
+
}
|
|
371
|
+
cellKey={info.key}
|
|
372
|
+
index={infoIndex}
|
|
373
|
+
item={item}
|
|
374
|
+
leadingItem={info.leadingItem}
|
|
375
|
+
leadingSection={info.leadingSection}
|
|
376
|
+
prevCellKey={(this._subExtractor(index - 1) || {}).key}
|
|
377
|
+
// Callback to provide updateHighlight for this item
|
|
378
|
+
setSelfHighlightCallback={this._setUpdateHighlightFor}
|
|
379
|
+
setSelfUpdatePropsCallback={this._setUpdatePropsFor}
|
|
380
|
+
// Provide child ability to set highlight/updateProps for previous item using prevCellKey
|
|
381
|
+
updateHighlightFor={this._updateHighlightFor}
|
|
382
|
+
updatePropsFor={this._updatePropsFor}
|
|
383
|
+
renderItem={renderItem}
|
|
384
|
+
section={info.section}
|
|
385
|
+
trailingItem={info.trailingItem}
|
|
386
|
+
trailingSection={info.trailingSection}
|
|
387
|
+
inverted={!!this.props.inverted}
|
|
388
|
+
/>
|
|
389
|
+
);
|
|
363
390
|
}
|
|
364
|
-
}
|
|
365
|
-
const renderItem = info.section.renderItem || this.props.renderItem;
|
|
366
|
-
const SeparatorComponent = this._getSeparatorComponent(
|
|
367
|
-
index,
|
|
368
|
-
info,
|
|
369
|
-
listItemCount,
|
|
370
|
-
);
|
|
371
|
-
invariant(renderItem, 'no renderItem!');
|
|
372
|
-
return (
|
|
373
|
-
<ItemWithSeparator
|
|
374
|
-
SeparatorComponent={SeparatorComponent}
|
|
375
|
-
LeadingSeparatorComponent={
|
|
376
|
-
infoIndex === 0 ? this.props.SectionSeparatorComponent : undefined
|
|
377
|
-
}
|
|
378
|
-
cellKey={info.key}
|
|
379
|
-
index={infoIndex}
|
|
380
|
-
item={item}
|
|
381
|
-
leadingItem={info.leadingItem}
|
|
382
|
-
leadingSection={info.leadingSection}
|
|
383
|
-
prevCellKey={(this._subExtractor(index - 1) || {}).key}
|
|
384
|
-
// Callback to provide updateHighlight for this item
|
|
385
|
-
setSelfHighlightCallback={this._setUpdateHighlightFor}
|
|
386
|
-
setSelfUpdatePropsCallback={this._setUpdatePropsFor}
|
|
387
|
-
// Provide child ability to set highlight/updateProps for previous item using prevCellKey
|
|
388
|
-
updateHighlightFor={this._updateHighlightFor}
|
|
389
|
-
updatePropsFor={this._updatePropsFor}
|
|
390
|
-
renderItem={renderItem}
|
|
391
|
-
section={info.section}
|
|
392
|
-
trailingItem={info.trailingItem}
|
|
393
|
-
trailingSection={info.trailingSection}
|
|
394
|
-
inverted={!!this.props.inverted}
|
|
395
|
-
/>
|
|
396
|
-
);
|
|
397
|
-
}
|
|
398
|
-
};
|
|
391
|
+
};
|
|
399
392
|
|
|
400
393
|
_updatePropsFor = (cellKey, value) => {
|
|
401
394
|
const updateProps = this._updatePropsMap[cellKey];
|
|
@@ -506,10 +499,8 @@ function ItemWithSeparator(props: ItemWithSeparatorProps): React.Node {
|
|
|
506
499
|
inverted,
|
|
507
500
|
} = props;
|
|
508
501
|
|
|
509
|
-
const [
|
|
510
|
-
|
|
511
|
-
setLeadingSeparatorHighlighted,
|
|
512
|
-
] = React.useState(false);
|
|
502
|
+
const [leadingSeparatorHiglighted, setLeadingSeparatorHighlighted] =
|
|
503
|
+
React.useState(false);
|
|
513
504
|
|
|
514
505
|
const [separatorHighlighted, setSeparatorHighlighted] = React.useState(false);
|
|
515
506
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -31,7 +31,7 @@ function computeResult({helper, props, state, scroll}): number {
|
|
|
31
31
|
return helper.computeBlankness(
|
|
32
32
|
{
|
|
33
33
|
data: dataGlobal,
|
|
34
|
-
getItemCount: data2 => data2.length,
|
|
34
|
+
getItemCount: (data2) => data2.length,
|
|
35
35
|
initialNumToRender: 10,
|
|
36
36
|
...(props || {}),
|
|
37
37
|
},
|
|
@@ -40,13 +40,13 @@ function computeResult({helper, props, state, scroll}): number {
|
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
describe('computeBlankness', function() {
|
|
43
|
+
describe('computeBlankness', function () {
|
|
44
44
|
beforeEach(() => {
|
|
45
45
|
FillRateHelper.setSampleRate(1);
|
|
46
46
|
FillRateHelper.setMinSampleCount(0);
|
|
47
47
|
});
|
|
48
48
|
|
|
49
|
-
it('computes correct blankness of viewport', function() {
|
|
49
|
+
it('computes correct blankness of viewport', function () {
|
|
50
50
|
const helper = new FillRateHelper(getFrameMetrics);
|
|
51
51
|
rowFramesGlobal = {
|
|
52
52
|
header: {y: 0, height: 0, inLayout: true},
|
|
@@ -65,7 +65,7 @@ describe('computeBlankness', function() {
|
|
|
65
65
|
expect(blankness).toBe(1);
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
it('skips frames that are not in layout', function() {
|
|
68
|
+
it('skips frames that are not in layout', function () {
|
|
69
69
|
const helper = new FillRateHelper(getFrameMetrics);
|
|
70
70
|
rowFramesGlobal = {
|
|
71
71
|
header: {y: 0, height: 0, inLayout: false},
|
|
@@ -79,7 +79,7 @@ describe('computeBlankness', function() {
|
|
|
79
79
|
expect(blankness).toBe(0.3);
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
-
it('sampling rate can disable', function() {
|
|
82
|
+
it('sampling rate can disable', function () {
|
|
83
83
|
let helper = new FillRateHelper(getFrameMetrics);
|
|
84
84
|
rowFramesGlobal = {
|
|
85
85
|
header: {y: 0, height: 0, inLayout: true},
|
|
@@ -96,9 +96,9 @@ describe('computeBlankness', function() {
|
|
|
96
96
|
expect(blankness).toBe(0);
|
|
97
97
|
});
|
|
98
98
|
|
|
99
|
-
it('can handle multiple listeners and unsubscribe', function() {
|
|
99
|
+
it('can handle multiple listeners and unsubscribe', function () {
|
|
100
100
|
const listeners = [jest.fn(), jest.fn(), jest.fn()];
|
|
101
|
-
const subscriptions = listeners.map(listener =>
|
|
101
|
+
const subscriptions = listeners.map((listener) =>
|
|
102
102
|
FillRateHelper.addListener(listener),
|
|
103
103
|
);
|
|
104
104
|
subscriptions[1].remove();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -102,13 +102,13 @@ describe('FlatList', () => {
|
|
|
102
102
|
ReactTestRenderer.create(
|
|
103
103
|
<FlatList
|
|
104
104
|
data={[{key: 'outer0'}, {key: 'outer1'}]}
|
|
105
|
-
renderItem={outerInfo => (
|
|
105
|
+
renderItem={(outerInfo) => (
|
|
106
106
|
<FlatList
|
|
107
107
|
data={[
|
|
108
108
|
{key: outerInfo.item.key + ':inner0'},
|
|
109
109
|
{key: outerInfo.item.key + ':inner1'},
|
|
110
110
|
]}
|
|
111
|
-
renderItem={innerInfo => {
|
|
111
|
+
renderItem={(innerInfo) => {
|
|
112
112
|
return <item title={innerInfo.item.key} />;
|
|
113
113
|
}}
|
|
114
114
|
ref={listRef}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -39,21 +39,21 @@ describe('SectionList', () => {
|
|
|
39
39
|
const component = ReactTestRenderer.create(
|
|
40
40
|
<SectionList
|
|
41
41
|
initialNumToRender={Infinity}
|
|
42
|
-
ItemSeparatorComponent={props => (
|
|
42
|
+
ItemSeparatorComponent={(props) => (
|
|
43
43
|
<defaultItemSeparator v={propStr(props)} />
|
|
44
44
|
)}
|
|
45
|
-
ListEmptyComponent={props => <empty v={propStr(props)} />}
|
|
46
|
-
ListFooterComponent={props => <footer v={propStr(props)} />}
|
|
47
|
-
ListHeaderComponent={props => <header v={propStr(props)} />}
|
|
48
|
-
SectionSeparatorComponent={props => (
|
|
45
|
+
ListEmptyComponent={(props) => <empty v={propStr(props)} />}
|
|
46
|
+
ListFooterComponent={(props) => <footer v={propStr(props)} />}
|
|
47
|
+
ListHeaderComponent={(props) => <header v={propStr(props)} />}
|
|
48
|
+
SectionSeparatorComponent={(props) => (
|
|
49
49
|
<sectionSeparator v={propStr(props)} />
|
|
50
50
|
)}
|
|
51
51
|
sections={[
|
|
52
52
|
{
|
|
53
|
-
renderItem: props => <itemForSection1 v={propStr(props)} />,
|
|
53
|
+
renderItem: (props) => <itemForSection1 v={propStr(props)} />,
|
|
54
54
|
key: 's1',
|
|
55
55
|
keyExtractor: (item, index) => item.id,
|
|
56
|
-
ItemSeparatorComponent: props => (
|
|
56
|
+
ItemSeparatorComponent: (props) => (
|
|
57
57
|
<itemSeparatorForSection1 v={propStr(props)} />
|
|
58
58
|
),
|
|
59
59
|
data: [{id: 'i1s1'}, {id: 'i2s1'}],
|
|
@@ -69,9 +69,9 @@ describe('SectionList', () => {
|
|
|
69
69
|
]}
|
|
70
70
|
refreshing={false}
|
|
71
71
|
onRefresh={jest.fn()}
|
|
72
|
-
renderItem={props => <defaultItem v={propStr(props)} />}
|
|
73
|
-
renderSectionHeader={props => <sectionHeader v={propStr(props)} />}
|
|
74
|
-
renderSectionFooter={props => <sectionFooter v={propStr(props)} />}
|
|
72
|
+
renderItem={(props) => <defaultItem v={propStr(props)} />}
|
|
73
|
+
renderSectionHeader={(props) => <sectionHeader v={propStr(props)} />}
|
|
74
|
+
renderSectionFooter={(props) => <sectionFooter v={propStr(props)} />}
|
|
75
75
|
/>,
|
|
76
76
|
);
|
|
77
77
|
expect(component).toMatchSnapshot();
|
|
@@ -81,8 +81,8 @@ describe('SectionList', () => {
|
|
|
81
81
|
<SectionList
|
|
82
82
|
sections={[{key: 's1', data: []}]}
|
|
83
83
|
renderItem={({item}) => <item v={item.key} />}
|
|
84
|
-
renderSectionHeader={props => <sectionHeader v={propStr(props)} />}
|
|
85
|
-
renderSectionFooter={props => <sectionFooter v={propStr(props)} />}
|
|
84
|
+
renderSectionHeader={(props) => <sectionHeader v={propStr(props)} />}
|
|
85
|
+
renderSectionFooter={(props) => <sectionFooter v={propStr(props)} />}
|
|
86
86
|
/>,
|
|
87
87
|
);
|
|
88
88
|
expect(component).toMatchSnapshot();
|
|
@@ -92,7 +92,7 @@ describe('SectionList', () => {
|
|
|
92
92
|
<SectionList
|
|
93
93
|
sections={[{key: 's1', data: []}]}
|
|
94
94
|
renderItem={({item}) => <item v={item.key} />}
|
|
95
|
-
renderSectionFooter={props => <sectionFooter v={propStr(props)} />}
|
|
95
|
+
renderSectionFooter={(props) => <sectionFooter v={propStr(props)} />}
|
|
96
96
|
/>,
|
|
97
97
|
);
|
|
98
98
|
expect(component).toMatchSnapshot();
|
|
@@ -101,7 +101,7 @@ describe('SectionList', () => {
|
|
|
101
101
|
|
|
102
102
|
function propStr(props) {
|
|
103
103
|
return Object.keys(props)
|
|
104
|
-
.map(k => {
|
|
104
|
+
.map((k) => {
|
|
105
105
|
const propObj = props[k] || {};
|
|
106
106
|
return `${k}:${propObj.key || propObj.id || props[k]}`;
|
|
107
107
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -22,8 +22,8 @@ function createViewToken(index: number, isViewable: boolean) {
|
|
|
22
22
|
return {key: data[index].key, isViewable};
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
describe('computeViewableItems', function() {
|
|
26
|
-
it('returns all 4 entirely visible rows as viewable', function() {
|
|
25
|
+
describe('computeViewableItems', function () {
|
|
26
|
+
it('returns all 4 entirely visible rows as viewable', function () {
|
|
27
27
|
const helper = new ViewabilityHelper({
|
|
28
28
|
viewAreaCoveragePercentThreshold: 50,
|
|
29
29
|
});
|
|
@@ -39,7 +39,7 @@ describe('computeViewableItems', function() {
|
|
|
39
39
|
).toEqual([0, 1, 2, 3]);
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
it('returns top 2 rows as viewable (1. entirely visible and 2. majority)', function() {
|
|
42
|
+
it('returns top 2 rows as viewable (1. entirely visible and 2. majority)', function () {
|
|
43
43
|
const helper = new ViewabilityHelper({
|
|
44
44
|
viewAreaCoveragePercentThreshold: 50,
|
|
45
45
|
});
|
|
@@ -55,7 +55,7 @@ describe('computeViewableItems', function() {
|
|
|
55
55
|
).toEqual([0, 1]);
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
it('returns only 2nd row as viewable (majority)', function() {
|
|
58
|
+
it('returns only 2nd row as viewable (majority)', function () {
|
|
59
59
|
const helper = new ViewabilityHelper({
|
|
60
60
|
viewAreaCoveragePercentThreshold: 50,
|
|
61
61
|
});
|
|
@@ -71,7 +71,7 @@ describe('computeViewableItems', function() {
|
|
|
71
71
|
).toEqual([1]);
|
|
72
72
|
});
|
|
73
73
|
|
|
74
|
-
it('handles empty input', function() {
|
|
74
|
+
it('handles empty input', function () {
|
|
75
75
|
const helper = new ViewabilityHelper({
|
|
76
76
|
viewAreaCoveragePercentThreshold: 50,
|
|
77
77
|
});
|
|
@@ -82,7 +82,7 @@ describe('computeViewableItems', function() {
|
|
|
82
82
|
).toEqual([]);
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
-
it('handles different view area coverage percent thresholds', function() {
|
|
85
|
+
it('handles different view area coverage percent thresholds', function () {
|
|
86
86
|
rowFrames = {
|
|
87
87
|
a: {y: 0, height: 50},
|
|
88
88
|
b: {y: 50, height: 150},
|
|
@@ -128,7 +128,7 @@ describe('computeViewableItems', function() {
|
|
|
128
128
|
).toEqual([1, 2]);
|
|
129
129
|
});
|
|
130
130
|
|
|
131
|
-
it('handles different item visible percent thresholds', function() {
|
|
131
|
+
it('handles different item visible percent thresholds', function () {
|
|
132
132
|
rowFrames = {
|
|
133
133
|
a: {y: 0, height: 50},
|
|
134
134
|
b: {y: 50, height: 150},
|
|
@@ -165,8 +165,8 @@ describe('computeViewableItems', function() {
|
|
|
165
165
|
});
|
|
166
166
|
});
|
|
167
167
|
|
|
168
|
-
describe('onUpdate', function() {
|
|
169
|
-
it('returns 1 visible row as viewable then scrolls away', function() {
|
|
168
|
+
describe('onUpdate', function () {
|
|
169
|
+
it('returns 1 visible row as viewable then scrolls away', function () {
|
|
170
170
|
const helper = new ViewabilityHelper();
|
|
171
171
|
rowFrames = {
|
|
172
172
|
a: {y: 0, height: 50},
|
|
@@ -212,7 +212,7 @@ describe('onUpdate', function() {
|
|
|
212
212
|
});
|
|
213
213
|
});
|
|
214
214
|
|
|
215
|
-
it('returns 1st visible row then 1st and 2nd then just 2nd', function() {
|
|
215
|
+
it('returns 1st visible row then 1st and 2nd then just 2nd', function () {
|
|
216
216
|
const helper = new ViewabilityHelper();
|
|
217
217
|
rowFrames = {
|
|
218
218
|
a: {y: 0, height: 200},
|
|
@@ -268,7 +268,7 @@ describe('onUpdate', function() {
|
|
|
268
268
|
});
|
|
269
269
|
});
|
|
270
270
|
|
|
271
|
-
it('minimumViewTime delays callback', function() {
|
|
271
|
+
it('minimumViewTime delays callback', function () {
|
|
272
272
|
const helper = new ViewabilityHelper({
|
|
273
273
|
minimumViewTime: 350,
|
|
274
274
|
viewAreaCoveragePercentThreshold: 0,
|
|
@@ -302,7 +302,7 @@ describe('onUpdate', function() {
|
|
|
302
302
|
});
|
|
303
303
|
});
|
|
304
304
|
|
|
305
|
-
it('minimumViewTime skips briefly visible items', function() {
|
|
305
|
+
it('minimumViewTime skips briefly visible items', function () {
|
|
306
306
|
const helper = new ViewabilityHelper({
|
|
307
307
|
minimumViewTime: 350,
|
|
308
308
|
viewAreaCoveragePercentThreshold: 0,
|
|
@@ -343,7 +343,7 @@ describe('onUpdate', function() {
|
|
|
343
343
|
});
|
|
344
344
|
});
|
|
345
345
|
|
|
346
|
-
it('waitForInteraction blocks callback until interaction', function() {
|
|
346
|
+
it('waitForInteraction blocks callback until interaction', function () {
|
|
347
347
|
const helper = new ViewabilityHelper({
|
|
348
348
|
waitForInteraction: true,
|
|
349
349
|
viewAreaCoveragePercentThreshold: 0,
|
|
@@ -385,7 +385,7 @@ describe('onUpdate', function() {
|
|
|
385
385
|
});
|
|
386
386
|
});
|
|
387
387
|
|
|
388
|
-
it('returns the right visible row after the underlying data changed', function() {
|
|
388
|
+
it('returns the right visible row after the underlying data changed', function () {
|
|
389
389
|
const helper = new ViewabilityHelper();
|
|
390
390
|
rowFrames = {
|
|
391
391
|
a: {y: 0, height: 200},
|