@legendapp/list 2.0.0-next.2 → 2.0.0-next.20
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/{dist/animated.d.mts → animated.d.mts} +7 -2
- package/{dist/animated.d.ts → animated.d.ts} +7 -2
- package/{dist/animated.js → animated.js} +2 -2
- package/{dist/animated.mjs → animated.mjs} +2 -2
- package/{dist/index.d.mts → index.d.mts} +106 -56
- package/{dist/index.d.ts → index.d.ts} +106 -56
- package/{dist/index.js → index.js} +1589 -1095
- package/{dist/index.mjs → index.mjs} +1591 -1097
- package/{dist/keyboard-controller.d.mts → keyboard-controller.d.mts} +28 -8
- package/{dist/keyboard-controller.d.ts → keyboard-controller.d.ts} +28 -8
- package/{dist/keyboard-controller.js → keyboard-controller.js} +4 -4
- package/{dist/keyboard-controller.mjs → keyboard-controller.mjs} +4 -4
- package/package.json +34 -88
- package/{dist/reanimated.d.mts → reanimated.d.mts} +2 -2
- package/{dist/reanimated.d.ts → reanimated.d.ts} +2 -2
- package/{dist/reanimated.js → reanimated.js} +7 -7
- package/{dist/reanimated.mjs → reanimated.mjs} +7 -7
- package/.claude/settings.local.json +0 -8
- package/.cursor/rules/changelog.mdc +0 -60
- package/.github/FUNDING.yml +0 -15
- package/.gitignore +0 -5
- package/.prettierrc.json +0 -5
- package/.vscode/settings.json +0 -14
- package/CLAUDE.md +0 -126
- package/biome.json +0 -46
- package/bun.lock +0 -1289
- package/bunfig.toml +0 -2
- package/dist/CHANGELOG.md +0 -119
- package/dist/LICENSE +0 -21
- package/dist/README.md +0 -139
- package/dist/package.json +0 -35
- package/example/README.md +0 -40
- package/example/api/data/genres.json +0 -23
- package/example/api/data/playlist/10402-10749.json +0 -1
- package/example/api/data/playlist/10402-10770.json +0 -1
- package/example/api/data/playlist/10402-37.json +0 -1
- package/example/api/data/playlist/10749-10752.json +0 -1
- package/example/api/data/playlist/10749-10770.json +0 -1
- package/example/api/data/playlist/10749-37.json +0 -1
- package/example/api/data/playlist/10749-878.json +0 -1
- package/example/api/data/playlist/10751-10402.json +0 -1
- package/example/api/data/playlist/10751-10752.json +0 -1
- package/example/api/data/playlist/10751-37.json +0 -1
- package/example/api/data/playlist/10751-53.json +0 -1
- package/example/api/data/playlist/10751-878.json +0 -1
- package/example/api/data/playlist/10751-9648.json +0 -1
- package/example/api/data/playlist/10752-37.json +0 -1
- package/example/api/data/playlist/12-10402.json +0 -1
- package/example/api/data/playlist/12-10749.json +0 -1
- package/example/api/data/playlist/12-18.json +0 -1
- package/example/api/data/playlist/12-27.json +0 -1
- package/example/api/data/playlist/12-35.json +0 -1
- package/example/api/data/playlist/14-36.json +0 -1
- package/example/api/data/playlist/14-878.json +0 -1
- package/example/api/data/playlist/16-10751.json +0 -1
- package/example/api/data/playlist/16-10770.json +0 -1
- package/example/api/data/playlist/16-35.json +0 -1
- package/example/api/data/playlist/16-36.json +0 -1
- package/example/api/data/playlist/16-53.json +0 -1
- package/example/api/data/playlist/18-10751.json +0 -1
- package/example/api/data/playlist/18-10752.json +0 -1
- package/example/api/data/playlist/18-37.json +0 -1
- package/example/api/data/playlist/18-53.json +0 -1
- package/example/api/data/playlist/18-878.json +0 -1
- package/example/api/data/playlist/27-10749.json +0 -1
- package/example/api/data/playlist/27-10770.json +0 -1
- package/example/api/data/playlist/28-10749.json +0 -1
- package/example/api/data/playlist/28-10751.json +0 -1
- package/example/api/data/playlist/28-10770.json +0 -1
- package/example/api/data/playlist/28-16.json +0 -1
- package/example/api/data/playlist/28-18.json +0 -1
- package/example/api/data/playlist/28-36.json +0 -1
- package/example/api/data/playlist/28-37.json +0 -1
- package/example/api/data/playlist/28-53.json +0 -1
- package/example/api/data/playlist/28-80.json +0 -1
- package/example/api/data/playlist/28-99.json +0 -1
- package/example/api/data/playlist/35-10749.json +0 -1
- package/example/api/data/playlist/35-10751.json +0 -1
- package/example/api/data/playlist/35-10752.json +0 -1
- package/example/api/data/playlist/35-27.json +0 -1
- package/example/api/data/playlist/35-36.json +0 -1
- package/example/api/data/playlist/35-53.json +0 -1
- package/example/api/data/playlist/35-80.json +0 -1
- package/example/api/data/playlist/36-37.json +0 -1
- package/example/api/data/playlist/36-878.json +0 -1
- package/example/api/data/playlist/36-9648.json +0 -1
- package/example/api/data/playlist/53-10752.json +0 -1
- package/example/api/data/playlist/80-10770.json +0 -1
- package/example/api/data/playlist/80-14.json +0 -1
- package/example/api/data/playlist/80-18.json +0 -1
- package/example/api/data/playlist/80-37.json +0 -1
- package/example/api/data/playlist/878-37.json +0 -1
- package/example/api/data/playlist/9648-10770.json +0 -1
- package/example/api/data/playlist/9648-37.json +0 -1
- package/example/api/data/playlist/9648-53.json +0 -1
- package/example/api/data/playlist/9648-878.json +0 -1
- package/example/api/data/playlist/99-10749.json +0 -1
- package/example/api/data/playlist/99-14.json +0 -1
- package/example/api/data/playlist/99-18.json +0 -1
- package/example/api/data/playlist/99-27.json +0 -1
- package/example/api/data/playlist/99-53.json +0 -1
- package/example/api/data/playlist/99-9648.json +0 -1
- package/example/api/data/playlist/index.ts +0 -73
- package/example/api/data/rows.json +0 -1
- package/example/api/index.ts +0 -36
- package/example/app/(tabs)/_layout.tsx +0 -60
- package/example/app/(tabs)/cards.tsx +0 -81
- package/example/app/(tabs)/index.tsx +0 -205
- package/example/app/(tabs)/moviesL.tsx +0 -7
- package/example/app/(tabs)/moviesLR.tsx +0 -7
- package/example/app/+not-found.tsx +0 -32
- package/example/app/_layout.tsx +0 -34
- package/example/app/accurate-scrollto/index.tsx +0 -125
- package/example/app/accurate-scrollto-2/index.tsx +0 -52
- package/example/app/accurate-scrollto-huge/index.tsx +0 -128
- package/example/app/add-to-end/index.tsx +0 -82
- package/example/app/ai-chat/index.tsx +0 -236
- package/example/app/bidirectional-infinite-list/index.tsx +0 -133
- package/example/app/cards-columns/index.tsx +0 -37
- package/example/app/cards-flashlist/index.tsx +0 -122
- package/example/app/cards-flatlist/index.tsx +0 -94
- package/example/app/cards-no-recycle/index.tsx +0 -110
- package/example/app/cards-renderItem.tsx +0 -354
- package/example/app/chat-example/index.tsx +0 -167
- package/example/app/chat-infinite/index.tsx +0 -239
- package/example/app/chat-keyboard/index.tsx +0 -248
- package/example/app/chat-resize-outer/index.tsx +0 -247
- package/example/app/columns/index.tsx +0 -78
- package/example/app/countries/index.tsx +0 -182
- package/example/app/countries-flashlist/index.tsx +0 -163
- package/example/app/countries-reorder/index.tsx +0 -187
- package/example/app/extra-data/index.tsx +0 -86
- package/example/app/filter-elements/filter-data-provider.tsx +0 -55
- package/example/app/filter-elements/index.tsx +0 -118
- package/example/app/initial-scroll-index/index.tsx +0 -106
- package/example/app/initial-scroll-index/renderFixedItem.tsx +0 -215
- package/example/app/initial-scroll-index-free-height/index.tsx +0 -70
- package/example/app/initial-scroll-index-keyed/index.tsx +0 -62
- package/example/app/lazy-list/index.tsx +0 -123
- package/example/app/movies-flashlist/index.tsx +0 -7
- package/example/app/mutable-cells/index.tsx +0 -104
- package/example/app/video-feed/index.tsx +0 -119
- package/example/app.config.js +0 -22
- package/example/app.json +0 -45
- package/example/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/example/assets/images/adaptive-icon.png +0 -0
- package/example/assets/images/favicon.png +0 -0
- package/example/assets/images/icon.png +0 -0
- package/example/assets/images/partial-react-logo.png +0 -0
- package/example/assets/images/react-logo.png +0 -0
- package/example/assets/images/react-logo@2x.png +0 -0
- package/example/assets/images/react-logo@3x.png +0 -0
- package/example/assets/images/splash-icon.png +0 -0
- package/example/autoscroll.sh +0 -101
- package/example/bun.lock +0 -2266
- package/example/bunfig.toml +0 -2
- package/example/components/Breathe.tsx +0 -54
- package/example/components/Circle.tsx +0 -69
- package/example/components/Collapsible.tsx +0 -44
- package/example/components/ExternalLink.tsx +0 -24
- package/example/components/HapticTab.tsx +0 -18
- package/example/components/HelloWave.tsx +0 -37
- package/example/components/Movies.tsx +0 -179
- package/example/components/ParallaxScrollView.tsx +0 -81
- package/example/components/ThemedText.tsx +0 -60
- package/example/components/ThemedView.tsx +0 -14
- package/example/components/__tests__/ThemedText-test.tsx +0 -10
- package/example/components/__tests__/__snapshots__/ThemedText-test.tsx.snap +0 -24
- package/example/components/ui/IconSymbol.ios.tsx +0 -32
- package/example/components/ui/IconSymbol.tsx +0 -43
- package/example/components/ui/TabBarBackground.ios.tsx +0 -22
- package/example/components/ui/TabBarBackground.tsx +0 -6
- package/example/constants/Colors.ts +0 -26
- package/example/constants/constants.ts +0 -5
- package/example/constants/useScrollTest.ts +0 -19
- package/example/hooks/useColorScheme.ts +0 -1
- package/example/hooks/useColorScheme.web.ts +0 -8
- package/example/hooks/useThemeColor.ts +0 -22
- package/example/ios/.xcode.env +0 -11
- package/example/ios/Podfile +0 -64
- package/example/ios/Podfile.lock +0 -2767
- package/example/ios/Podfile.properties.json +0 -5
- package/example/ios/listtest/AppDelegate.swift +0 -70
- package/example/ios/listtest/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png +0 -0
- package/example/ios/listtest/Images.xcassets/AppIcon.appiconset/Contents.json +0 -14
- package/example/ios/listtest/Images.xcassets/Contents.json +0 -6
- package/example/ios/listtest/Images.xcassets/SplashScreenBackground.colorset/Contents.json +0 -20
- package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/Contents.json +0 -23
- package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image.png +0 -0
- package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image@2x.png +0 -0
- package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image@3x.png +0 -0
- package/example/ios/listtest/Info.plist +0 -85
- package/example/ios/listtest/PrivacyInfo.xcprivacy +0 -48
- package/example/ios/listtest/SplashScreen.storyboard +0 -42
- package/example/ios/listtest/Supporting/Expo.plist +0 -12
- package/example/ios/listtest/listtest-Bridging-Header.h +0 -3
- package/example/ios/listtest/listtest.entitlements +0 -5
- package/example/ios/listtest.xcodeproj/project.pbxproj +0 -547
- package/example/ios/listtest.xcodeproj/xcshareddata/xcschemes/listtest.xcscheme +0 -88
- package/example/ios/listtest.xcworkspace/contents.xcworkspacedata +0 -10
- package/example/metro.config.js +0 -16
- package/example/package.json +0 -73
- package/example/scripts/reset-project.js +0 -84
- package/example/tsconfig.json +0 -26
- package/posttsup.ts +0 -24
- package/src/Container.tsx +0 -176
- package/src/Containers.tsx +0 -85
- package/src/ContextContainer.ts +0 -145
- package/src/DebugView.tsx +0 -83
- package/src/LazyLegendList.tsx +0 -41
- package/src/LeanView.tsx +0 -18
- package/src/LegendList.tsx +0 -558
- package/src/ListComponent.tsx +0 -191
- package/src/ScrollAdjust.tsx +0 -24
- package/src/ScrollAdjustHandler.ts +0 -26
- package/src/Separator.tsx +0 -14
- package/src/animated.tsx +0 -6
- package/src/calculateItemsInView.ts +0 -363
- package/src/calculateOffsetForIndex.ts +0 -23
- package/src/calculateOffsetWithOffsetPosition.ts +0 -26
- package/src/checkAllSizesKnown.ts +0 -17
- package/src/checkAtBottom.ts +0 -36
- package/src/checkAtTop.ts +0 -27
- package/src/checkThreshold.ts +0 -30
- package/src/constants.ts +0 -11
- package/src/createColumnWrapperStyle.ts +0 -16
- package/src/doInitialAllocateContainers.ts +0 -40
- package/src/doMaintainScrollAtEnd.ts +0 -34
- package/src/findAvailableContainers.ts +0 -98
- package/src/finishScrollTo.ts +0 -8
- package/src/getId.ts +0 -21
- package/src/getItemSize.ts +0 -52
- package/src/getRenderedItem.ts +0 -34
- package/src/getScrollVelocity.ts +0 -47
- package/src/handleLayout.ts +0 -70
- package/src/helpers.ts +0 -39
- package/src/index.ts +0 -11
- package/src/keyboard-controller.tsx +0 -63
- package/src/onScroll.ts +0 -66
- package/src/prepareMVCP.ts +0 -50
- package/src/reanimated.tsx +0 -63
- package/src/requestAdjust.ts +0 -41
- package/src/scrollTo.ts +0 -40
- package/src/scrollToIndex.ts +0 -34
- package/src/setDidLayout.ts +0 -25
- package/src/setPaddingTop.ts +0 -28
- package/src/state.tsx +0 -304
- package/src/types.ts +0 -610
- package/src/updateAlignItemsPaddingTop.ts +0 -18
- package/src/updateAllPositions.ts +0 -130
- package/src/updateItemSize.ts +0 -203
- package/src/updateTotalSize.ts +0 -44
- package/src/useAnimatedValue.ts +0 -6
- package/src/useCombinedRef.ts +0 -22
- package/src/useInit.ts +0 -17
- package/src/useSyncLayout.tsx +0 -68
- package/src/useValue$.ts +0 -53
- package/src/viewability.ts +0 -279
- package/tsconfig.json +0 -59
- package/tsup.config.ts +0 -21
|
@@ -14,7 +14,7 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
14
14
|
width: number;
|
|
15
15
|
};
|
|
16
16
|
extraData?: any;
|
|
17
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
17
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
18
18
|
initialContainerPoolRatio?: number | undefined;
|
|
19
19
|
initialScrollOffset?: number;
|
|
20
20
|
initialScrollIndex?: number | {
|
|
@@ -56,7 +56,7 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
56
56
|
recycleItems?: boolean;
|
|
57
57
|
refScrollView?: React.Ref<react_native.ScrollView>;
|
|
58
58
|
refreshing?: boolean;
|
|
59
|
-
renderItem?:
|
|
59
|
+
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<_legendapp_list.LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
60
60
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
|
|
61
61
|
suggestEstimatedItemSize?: boolean;
|
|
62
62
|
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
|
|
@@ -65,6 +65,11 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
65
65
|
onLoad?: (info: {
|
|
66
66
|
elapsedTimeInMs: number;
|
|
67
67
|
}) => void;
|
|
68
|
+
snapToIndices?: number[];
|
|
69
|
+
stickyIndices?: number[];
|
|
70
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
71
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
72
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
68
73
|
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode)>;
|
|
69
74
|
|
|
70
75
|
export { AnimatedLegendList };
|
|
@@ -14,7 +14,7 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
14
14
|
width: number;
|
|
15
15
|
};
|
|
16
16
|
extraData?: any;
|
|
17
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
17
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
18
18
|
initialContainerPoolRatio?: number | undefined;
|
|
19
19
|
initialScrollOffset?: number;
|
|
20
20
|
initialScrollIndex?: number | {
|
|
@@ -56,7 +56,7 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
56
56
|
recycleItems?: boolean;
|
|
57
57
|
refScrollView?: React.Ref<react_native.ScrollView>;
|
|
58
58
|
refreshing?: boolean;
|
|
59
|
-
renderItem?:
|
|
59
|
+
renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<_legendapp_list.LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
60
60
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
|
|
61
61
|
suggestEstimatedItemSize?: boolean;
|
|
62
62
|
viewabilityConfig?: _legendapp_list.ViewabilityConfig;
|
|
@@ -65,6 +65,11 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
65
65
|
onLoad?: (info: {
|
|
66
66
|
elapsedTimeInMs: number;
|
|
67
67
|
}) => void;
|
|
68
|
+
snapToIndices?: number[];
|
|
69
|
+
stickyIndices?: number[];
|
|
70
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
71
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
72
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
68
73
|
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode)>;
|
|
69
74
|
|
|
70
75
|
export { AnimatedLegendList };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var list = require('@legendapp/list');
|
|
4
3
|
var reactNative = require('react-native');
|
|
4
|
+
var list = require('@legendapp/list');
|
|
5
5
|
|
|
6
|
-
// src/animated.tsx
|
|
6
|
+
// src/integrations/animated.tsx
|
|
7
7
|
var AnimatedLegendList = reactNative.Animated.createAnimatedComponent(list.LegendList);
|
|
8
8
|
|
|
9
9
|
exports.AnimatedLegendList = AnimatedLegendList;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { LegendList } from '@legendapp/list';
|
|
2
1
|
import { Animated } from 'react-native';
|
|
2
|
+
import { LegendList } from '@legendapp/list';
|
|
3
3
|
|
|
4
|
-
// src/animated.tsx
|
|
4
|
+
// src/integrations/animated.tsx
|
|
5
5
|
var AnimatedLegendList = Animated.createAnimatedComponent(LegendList);
|
|
6
6
|
|
|
7
7
|
export { AnimatedLegendList };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
|
|
1
2
|
import * as React$1 from 'react';
|
|
2
3
|
import { ComponentProps, ReactNode, Dispatch, SetStateAction } from 'react';
|
|
3
4
|
import * as react_native from 'react-native';
|
|
4
|
-
import { View,
|
|
5
|
+
import { View, Animated, ScrollView, StyleProp, ViewStyle, ScrollViewProps, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin } from 'react-native';
|
|
5
6
|
import Animated$1 from 'react-native-reanimated';
|
|
6
|
-
import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
|
|
7
7
|
|
|
8
|
-
type ListenerType = "numContainers" | "numContainersPooled" | `containerItemKey${number}` | `containerItemData${number}` | `containerPosition${number}` | `containerColumn${number}` | "containersDidLayout" | "extraData" | "numColumns" | "lastItemKeys" | "totalSize" | "alignItemsPaddingTop" | "stylePaddingTop" | "scrollAdjust" | "scrollAdjustUserOffset" | "headerSize" | "footerSize" | "maintainVisibleContentPosition" | "debugRawScroll" | "debugComputedScroll" | "otherAxisSize" | "scrollSize";
|
|
8
|
+
type ListenerType = "numContainers" | "numContainersPooled" | `containerItemKey${number}` | `containerItemData${number}` | `containerPosition${number}` | `containerColumn${number}` | `containerSticky${number}` | `containerStickyOffset${number}` | "containersDidLayout" | "extraData" | "numColumns" | "lastItemKeys" | "totalSize" | "alignItemsPaddingTop" | "stylePaddingTop" | "scrollAdjust" | "scrollAdjustUserOffset" | "headerSize" | "footerSize" | "maintainVisibleContentPosition" | "debugRawScroll" | "debugComputedScroll" | "otherAxisSize" | "snapToOffsets" | "scrollSize";
|
|
9
9
|
interface StateContext {
|
|
10
10
|
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
11
11
|
values: Map<ListenerType, any>;
|
|
@@ -15,6 +15,7 @@ interface StateContext {
|
|
|
15
15
|
mapViewabilityAmountValues: Map<number, ViewAmountToken>;
|
|
16
16
|
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
17
17
|
viewRefs: Map<number, React$1.RefObject<View>>;
|
|
18
|
+
animatedScrollY: Animated.Value;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
declare class ScrollAdjustHandler {
|
|
@@ -26,7 +27,7 @@ declare class ScrollAdjustHandler {
|
|
|
26
27
|
setMounted(): void;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView> | ComponentProps<typeof Animated$1.ScrollView
|
|
30
|
+
type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView> | ComponentProps<typeof Animated$1.ScrollView>, TItemType extends string | undefined = string | undefined> = Omit<TScrollView, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
30
31
|
/**
|
|
31
32
|
* If true, aligns items at the end of the list.
|
|
32
33
|
* @default false
|
|
@@ -68,7 +69,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
68
69
|
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
69
70
|
* Use instead of FlatList's getItemLayout or FlashList overrideItemLayout if you want to have accurate initialScrollOffset, you should provide this function
|
|
70
71
|
*/
|
|
71
|
-
getEstimatedItemSize?: (index: number, item: ItemT) => number;
|
|
72
|
+
getEstimatedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
72
73
|
/**
|
|
73
74
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
74
75
|
* @default 2
|
|
@@ -204,7 +205,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
204
205
|
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
205
206
|
* @required
|
|
206
207
|
*/
|
|
207
|
-
renderItem?: ((props: LegendListRenderItemProps<ItemT>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT>>;
|
|
208
|
+
renderItem?: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
208
209
|
/**
|
|
209
210
|
* Render custom ScrollView component.
|
|
210
211
|
* @default (props) => <ScrollView {...props} />
|
|
@@ -232,6 +233,17 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
232
233
|
onLoad?: (info: {
|
|
233
234
|
elapsedTimeInMs: number;
|
|
234
235
|
}) => void;
|
|
236
|
+
snapToIndices?: number[];
|
|
237
|
+
/**
|
|
238
|
+
* Array of child indices determining which children get docked to the top of the screen when scrolling.
|
|
239
|
+
* For example, passing stickyIndices={[0]} will cause the first child to be fixed to the top of the scroll view.
|
|
240
|
+
* Not supported in conjunction with horizontal={true}.
|
|
241
|
+
* @default undefined
|
|
242
|
+
*/
|
|
243
|
+
stickyIndices?: number[];
|
|
244
|
+
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
245
|
+
getFixedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
246
|
+
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
235
247
|
};
|
|
236
248
|
interface MaintainScrollAtEndOptions {
|
|
237
249
|
onLayout?: boolean;
|
|
@@ -243,13 +255,14 @@ interface ColumnWrapperStyle {
|
|
|
243
255
|
gap?: number;
|
|
244
256
|
columnGap?: number;
|
|
245
257
|
}
|
|
246
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
258
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
247
259
|
interface InternalState {
|
|
248
260
|
positions: Map<string, number>;
|
|
249
261
|
columns: Map<string, number>;
|
|
250
262
|
sizes: Map<string, number>;
|
|
251
263
|
sizesKnown: Map<string, number>;
|
|
252
264
|
containerItemKeys: Set<string>;
|
|
265
|
+
containerItemTypes: Map<number, string>;
|
|
253
266
|
pendingAdjust: number;
|
|
254
267
|
isStartReached: boolean;
|
|
255
268
|
isEndReached: boolean;
|
|
@@ -263,7 +276,6 @@ interface InternalState {
|
|
|
263
276
|
endBuffered: number;
|
|
264
277
|
endNoBuffer: number;
|
|
265
278
|
firstFullyOnScreenIndex: number;
|
|
266
|
-
idsInView: string[];
|
|
267
279
|
scrollPending: number;
|
|
268
280
|
scroll: number;
|
|
269
281
|
scrollTime: number;
|
|
@@ -315,48 +327,55 @@ interface InternalState {
|
|
|
315
327
|
loadStartTime: number;
|
|
316
328
|
initialScroll: ScrollIndexWithOffsetPosition | undefined;
|
|
317
329
|
lastLayout: LayoutRectangle | undefined;
|
|
330
|
+
queuedItemSizeUpdates: {
|
|
331
|
+
itemKey: string;
|
|
332
|
+
sizeObj: {
|
|
333
|
+
width: number;
|
|
334
|
+
height: number;
|
|
335
|
+
};
|
|
336
|
+
}[];
|
|
337
|
+
queuedItemSizeUpdatesWaiting?: boolean;
|
|
338
|
+
timeoutSetPaddingTop?: any;
|
|
339
|
+
activeStickyIndex: number | undefined;
|
|
340
|
+
stickyContainers: Map<number, number>;
|
|
341
|
+
stickyContainerPool: Set<number>;
|
|
342
|
+
scrollProcessingEnabled: boolean;
|
|
318
343
|
props: {
|
|
319
344
|
alignItemsAtEnd: boolean;
|
|
320
345
|
data: readonly any[];
|
|
321
346
|
estimatedItemSize: number | undefined;
|
|
322
|
-
getEstimatedItemSize:
|
|
347
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
348
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
349
|
+
getItemType: LegendListProps["getItemType"];
|
|
323
350
|
horizontal: boolean;
|
|
324
|
-
keyExtractor:
|
|
351
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
325
352
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
326
353
|
maintainScrollAtEndThreshold: number | undefined;
|
|
327
354
|
maintainVisibleContentPosition: boolean;
|
|
328
|
-
onEndReached:
|
|
329
|
-
distanceFromEnd: number;
|
|
330
|
-
}) => void) | null | undefined) | undefined;
|
|
355
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
331
356
|
onEndReachedThreshold: number | null | undefined;
|
|
332
|
-
onItemSizeChanged:
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
itemKey: string;
|
|
337
|
-
itemData: any;
|
|
338
|
-
}) => void) | undefined;
|
|
339
|
-
onLoad: ((info: {
|
|
340
|
-
elapsedTimeInMs: number;
|
|
341
|
-
}) => void) | undefined;
|
|
342
|
-
onScroll: ((event: NativeSyntheticEvent<NativeScrollEvent>) => void) | undefined;
|
|
343
|
-
onStartReached: (((info: {
|
|
344
|
-
distanceFromStart: number;
|
|
345
|
-
}) => void) | null | undefined) | undefined;
|
|
357
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
358
|
+
onLoad: LegendListProps["onLoad"];
|
|
359
|
+
onScroll: LegendListProps["onScroll"];
|
|
360
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
346
361
|
onStartReachedThreshold: number | null | undefined;
|
|
362
|
+
recycleItems: boolean;
|
|
347
363
|
suggestEstimatedItemSize: boolean;
|
|
348
364
|
stylePaddingBottom: number | undefined;
|
|
349
|
-
renderItem:
|
|
365
|
+
renderItem: LegendListProps["renderItem"];
|
|
350
366
|
initialScroll: {
|
|
351
367
|
index: number;
|
|
352
368
|
viewOffset?: number;
|
|
353
369
|
viewPosition?: number;
|
|
354
370
|
} | undefined;
|
|
355
371
|
scrollBuffer: number;
|
|
356
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
357
372
|
numColumns: number;
|
|
358
373
|
initialContainerPoolRatio: number;
|
|
359
374
|
stylePaddingTop: number | undefined;
|
|
375
|
+
snapToIndices: number[] | undefined;
|
|
376
|
+
stickyIndicesSet: Set<number>;
|
|
377
|
+
stickyIndicesArr: number[];
|
|
378
|
+
itemsAreEqual: LegendListProps["itemsAreEqual"];
|
|
360
379
|
};
|
|
361
380
|
}
|
|
362
381
|
interface ViewableRange<T> {
|
|
@@ -366,23 +385,27 @@ interface ViewableRange<T> {
|
|
|
366
385
|
end: number;
|
|
367
386
|
items: T[];
|
|
368
387
|
}
|
|
369
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
388
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
370
389
|
item: ItemT;
|
|
390
|
+
type: TItemType;
|
|
371
391
|
index: number;
|
|
372
392
|
extraData: any;
|
|
373
393
|
}
|
|
374
394
|
type ScrollState = {
|
|
375
395
|
contentLength: number;
|
|
396
|
+
data: readonly any[];
|
|
376
397
|
end: number;
|
|
377
398
|
endBuffered: number;
|
|
378
399
|
isAtEnd: boolean;
|
|
379
400
|
isAtStart: boolean;
|
|
401
|
+
positionAtIndex: (index: number) => number;
|
|
402
|
+
positions: Map<string, number>;
|
|
380
403
|
scroll: number;
|
|
381
404
|
scrollLength: number;
|
|
405
|
+
sizeAtIndex: (index: number) => number;
|
|
406
|
+
sizes: Map<string, number>;
|
|
382
407
|
start: number;
|
|
383
408
|
startBuffered: number;
|
|
384
|
-
sizes: Map<string, number>;
|
|
385
|
-
sizeAtIndex: (index: number) => number;
|
|
386
409
|
};
|
|
387
410
|
type LegendListRef = {
|
|
388
411
|
/**
|
|
@@ -429,9 +452,11 @@ type LegendListRef = {
|
|
|
429
452
|
* Scrolls to the end of the list.
|
|
430
453
|
* @param options - Options for scrolling.
|
|
431
454
|
* @param options.animated - If true, animates the scroll. Default: true.
|
|
455
|
+
* @param options.viewOffset - Offset from the target position.
|
|
432
456
|
*/
|
|
433
457
|
scrollToEnd(options?: {
|
|
434
458
|
animated?: boolean | undefined;
|
|
459
|
+
viewOffset?: number | undefined;
|
|
435
460
|
}): void;
|
|
436
461
|
/**
|
|
437
462
|
* Scrolls to a specific index in the list.
|
|
@@ -477,6 +502,11 @@ type LegendListRef = {
|
|
|
477
502
|
* @param animated - If true, uses Animated to animate the change.
|
|
478
503
|
*/
|
|
479
504
|
setVisibleContentAnchorOffset(value: number | ((value: number) => number)): void;
|
|
505
|
+
/**
|
|
506
|
+
* Sets whether scroll processing is enabled.
|
|
507
|
+
* @param enabled - If true, scroll processing is enabled.
|
|
508
|
+
*/
|
|
509
|
+
setScrollProcessingEnabled(enabled: boolean): void;
|
|
480
510
|
};
|
|
481
511
|
interface ViewToken<ItemT = any> {
|
|
482
512
|
item: ItemT;
|
|
@@ -540,7 +570,7 @@ interface LegendListRecyclingState<T> {
|
|
|
540
570
|
}
|
|
541
571
|
type TypedForwardRef = <T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactNode) => (props: P & React.RefAttributes<T>) => React.ReactNode;
|
|
542
572
|
declare const typedForwardRef: TypedForwardRef;
|
|
543
|
-
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<
|
|
573
|
+
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<React.JSXElementConstructor<T>>, nextProps: Readonly<React.JSXElementConstructor<T>>) => boolean) => T & {
|
|
544
574
|
displayName?: string;
|
|
545
575
|
};
|
|
546
576
|
declare const typedMemo: TypedMemo;
|
|
@@ -556,7 +586,11 @@ type GetRenderedItemResult<ItemT> = {
|
|
|
556
586
|
};
|
|
557
587
|
type GetRenderedItem = (key: string) => GetRenderedItemResult<any> | null;
|
|
558
588
|
|
|
559
|
-
|
|
589
|
+
interface LazyLegendListProps<ItemT, ListT> extends Omit<LegendListProps<ItemT>, "data" | "keyExtractor" | "renderItem"> {
|
|
590
|
+
children?: React$1.ReactNode | undefined;
|
|
591
|
+
LegendList?: ListT;
|
|
592
|
+
}
|
|
593
|
+
declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
560
594
|
alignItemsAtEnd?: boolean;
|
|
561
595
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
562
596
|
data: readonly T[];
|
|
@@ -567,7 +601,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
567
601
|
width: number;
|
|
568
602
|
};
|
|
569
603
|
extraData?: any;
|
|
570
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
604
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
571
605
|
initialContainerPoolRatio?: number | undefined;
|
|
572
606
|
initialScrollOffset?: number;
|
|
573
607
|
initialScrollIndex?: number | {
|
|
@@ -607,9 +641,9 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
607
641
|
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
608
642
|
progressViewOffset?: number;
|
|
609
643
|
recycleItems?: boolean;
|
|
610
|
-
refScrollView?: React$1.Ref<ScrollView>;
|
|
644
|
+
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
611
645
|
refreshing?: boolean;
|
|
612
|
-
renderItem?:
|
|
646
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
613
647
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
614
648
|
suggestEstimatedItemSize?: boolean;
|
|
615
649
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -618,13 +652,12 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
618
652
|
onLoad?: (info: {
|
|
619
653
|
elapsedTimeInMs: number;
|
|
620
654
|
}) => void;
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
}
|
|
627
|
-
declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
655
|
+
snapToIndices?: number[];
|
|
656
|
+
stickyIndices?: number[];
|
|
657
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
658
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
659
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
660
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
628
661
|
alignItemsAtEnd?: boolean;
|
|
629
662
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
630
663
|
data: readonly T[];
|
|
@@ -635,7 +668,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
635
668
|
width: number;
|
|
636
669
|
};
|
|
637
670
|
extraData?: any;
|
|
638
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
671
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
639
672
|
initialContainerPoolRatio?: number | undefined;
|
|
640
673
|
initialScrollOffset?: number;
|
|
641
674
|
initialScrollIndex?: number | {
|
|
@@ -677,7 +710,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
677
710
|
recycleItems?: boolean;
|
|
678
711
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
679
712
|
refreshing?: boolean;
|
|
680
|
-
renderItem?:
|
|
713
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
681
714
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
682
715
|
suggestEstimatedItemSize?: boolean;
|
|
683
716
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -686,7 +719,14 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
686
719
|
onLoad?: (info: {
|
|
687
720
|
elapsedTimeInMs: number;
|
|
688
721
|
}) => void;
|
|
689
|
-
|
|
722
|
+
snapToIndices?: number[];
|
|
723
|
+
stickyIndices?: number[];
|
|
724
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
725
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
726
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
727
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
|
|
728
|
+
ref?: React$1.Ref<LegendListRef>;
|
|
729
|
+
}) => React$1.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
690
730
|
alignItemsAtEnd?: boolean;
|
|
691
731
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
692
732
|
data: readonly T[];
|
|
@@ -697,7 +737,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
697
737
|
width: number;
|
|
698
738
|
};
|
|
699
739
|
extraData?: any;
|
|
700
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
740
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
701
741
|
initialContainerPoolRatio?: number | undefined;
|
|
702
742
|
initialScrollOffset?: number;
|
|
703
743
|
initialScrollIndex?: number | {
|
|
@@ -739,7 +779,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
739
779
|
recycleItems?: boolean;
|
|
740
780
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
741
781
|
refreshing?: boolean;
|
|
742
|
-
renderItem?:
|
|
782
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
743
783
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
744
784
|
suggestEstimatedItemSize?: boolean;
|
|
745
785
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -748,9 +788,14 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
748
788
|
onLoad?: (info: {
|
|
749
789
|
elapsedTimeInMs: number;
|
|
750
790
|
}) => void;
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
791
|
+
snapToIndices?: number[];
|
|
792
|
+
stickyIndices?: number[];
|
|
793
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
794
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
795
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
796
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
797
|
+
|
|
798
|
+
declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
754
799
|
alignItemsAtEnd?: boolean;
|
|
755
800
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
756
801
|
data: readonly T[];
|
|
@@ -761,7 +806,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
761
806
|
width: number;
|
|
762
807
|
};
|
|
763
808
|
extraData?: any;
|
|
764
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
809
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
765
810
|
initialContainerPoolRatio?: number | undefined;
|
|
766
811
|
initialScrollOffset?: number;
|
|
767
812
|
initialScrollIndex?: number | {
|
|
@@ -801,9 +846,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
801
846
|
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
802
847
|
progressViewOffset?: number;
|
|
803
848
|
recycleItems?: boolean;
|
|
804
|
-
refScrollView?: React$1.Ref<
|
|
849
|
+
refScrollView?: React$1.Ref<ScrollView>;
|
|
805
850
|
refreshing?: boolean;
|
|
806
|
-
renderItem?:
|
|
851
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
807
852
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
808
853
|
suggestEstimatedItemSize?: boolean;
|
|
809
854
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -812,7 +857,12 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
812
857
|
onLoad?: (info: {
|
|
813
858
|
elapsedTimeInMs: number;
|
|
814
859
|
}) => void;
|
|
815
|
-
|
|
860
|
+
snapToIndices?: number[];
|
|
861
|
+
stickyIndices?: number[];
|
|
862
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
863
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
864
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
865
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
816
866
|
|
|
817
867
|
declare function useViewability(callback: ViewabilityCallback, configId?: string): void;
|
|
818
868
|
declare function useViewabilityAmount(callback: ViewabilityAmountCallback): void;
|