@legendapp/list 2.0.0-next.2 → 2.0.0-next.21
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} +10 -3
- package/{dist/animated.d.ts → animated.d.ts} +10 -3
- package/{dist/animated.js → animated.js} +2 -2
- package/{dist/animated.mjs → animated.mjs} +2 -2
- package/{dist/index.d.mts → index.d.mts} +86 -167
- package/{dist/index.d.ts → index.d.ts} +86 -167
- package/{dist/index.js → index.js} +1594 -1098
- package/{dist/index.mjs → index.mjs} +1596 -1100
- package/keyboard-controller.d.mts +148 -0
- package/keyboard-controller.d.ts +148 -0
- 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/reanimated.js +60 -0
- package/reanimated.mjs +53 -0
- 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/keyboard-controller.d.mts +0 -261
- package/dist/keyboard-controller.d.ts +0 -261
- package/dist/package.json +0 -35
- package/dist/reanimated.js +0 -58
- package/dist/reanimated.mjs +0 -51
- 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,13 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
65
65
|
onLoad?: (info: {
|
|
66
66
|
elapsedTimeInMs: number;
|
|
67
67
|
}) => void;
|
|
68
|
-
|
|
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;
|
|
73
|
+
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode) & {
|
|
74
|
+
displayName?: string;
|
|
75
|
+
}>;
|
|
69
76
|
|
|
70
77
|
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,13 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
65
65
|
onLoad?: (info: {
|
|
66
66
|
elapsedTimeInMs: number;
|
|
67
67
|
}) => void;
|
|
68
|
-
|
|
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;
|
|
73
|
+
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode) & {
|
|
74
|
+
displayName?: string;
|
|
75
|
+
}>;
|
|
69
76
|
|
|
70
77
|
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,12 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import { ComponentProps, ReactNode, Dispatch, SetStateAction } from 'react';
|
|
3
3
|
import * as react_native from 'react-native';
|
|
4
|
-
import { View,
|
|
4
|
+
import { View, Animated, ScrollView, StyleProp, ViewStyle, ScrollViewProps, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin } from 'react-native';
|
|
5
5
|
import Animated$1 from 'react-native-reanimated';
|
|
6
|
-
import
|
|
6
|
+
import { AnimatedLegendList } from '@legendapp/list/animated';
|
|
7
|
+
import { AnimatedLegendList as AnimatedLegendList$1 } from '@legendapp/list/reanimated';
|
|
7
8
|
|
|
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";
|
|
9
|
+
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
10
|
interface StateContext {
|
|
10
11
|
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
11
12
|
values: Map<ListenerType, any>;
|
|
@@ -15,6 +16,7 @@ interface StateContext {
|
|
|
15
16
|
mapViewabilityAmountValues: Map<number, ViewAmountToken>;
|
|
16
17
|
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
17
18
|
viewRefs: Map<number, React$1.RefObject<View>>;
|
|
19
|
+
animatedScrollY: Animated.Value;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
declare class ScrollAdjustHandler {
|
|
@@ -26,7 +28,7 @@ declare class ScrollAdjustHandler {
|
|
|
26
28
|
setMounted(): void;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView> | ComponentProps<typeof Animated$1.ScrollView
|
|
31
|
+
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
32
|
/**
|
|
31
33
|
* If true, aligns items at the end of the list.
|
|
32
34
|
* @default false
|
|
@@ -68,7 +70,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
68
70
|
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
69
71
|
* Use instead of FlatList's getItemLayout or FlashList overrideItemLayout if you want to have accurate initialScrollOffset, you should provide this function
|
|
70
72
|
*/
|
|
71
|
-
getEstimatedItemSize?: (index: number, item: ItemT) => number;
|
|
73
|
+
getEstimatedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
72
74
|
/**
|
|
73
75
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
74
76
|
* @default 2
|
|
@@ -204,7 +206,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
204
206
|
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
205
207
|
* @required
|
|
206
208
|
*/
|
|
207
|
-
renderItem?: ((props: LegendListRenderItemProps<ItemT>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT>>;
|
|
209
|
+
renderItem?: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
208
210
|
/**
|
|
209
211
|
* Render custom ScrollView component.
|
|
210
212
|
* @default (props) => <ScrollView {...props} />
|
|
@@ -232,6 +234,17 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
232
234
|
onLoad?: (info: {
|
|
233
235
|
elapsedTimeInMs: number;
|
|
234
236
|
}) => void;
|
|
237
|
+
snapToIndices?: number[];
|
|
238
|
+
/**
|
|
239
|
+
* Array of child indices determining which children get docked to the top of the screen when scrolling.
|
|
240
|
+
* For example, passing stickyIndices={[0]} will cause the first child to be fixed to the top of the scroll view.
|
|
241
|
+
* Not supported in conjunction with horizontal={true}.
|
|
242
|
+
* @default undefined
|
|
243
|
+
*/
|
|
244
|
+
stickyIndices?: number[];
|
|
245
|
+
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
246
|
+
getFixedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
247
|
+
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
235
248
|
};
|
|
236
249
|
interface MaintainScrollAtEndOptions {
|
|
237
250
|
onLayout?: boolean;
|
|
@@ -243,13 +256,14 @@ interface ColumnWrapperStyle {
|
|
|
243
256
|
gap?: number;
|
|
244
257
|
columnGap?: number;
|
|
245
258
|
}
|
|
246
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
259
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
247
260
|
interface InternalState {
|
|
248
261
|
positions: Map<string, number>;
|
|
249
262
|
columns: Map<string, number>;
|
|
250
263
|
sizes: Map<string, number>;
|
|
251
264
|
sizesKnown: Map<string, number>;
|
|
252
265
|
containerItemKeys: Set<string>;
|
|
266
|
+
containerItemTypes: Map<number, string>;
|
|
253
267
|
pendingAdjust: number;
|
|
254
268
|
isStartReached: boolean;
|
|
255
269
|
isEndReached: boolean;
|
|
@@ -263,7 +277,6 @@ interface InternalState {
|
|
|
263
277
|
endBuffered: number;
|
|
264
278
|
endNoBuffer: number;
|
|
265
279
|
firstFullyOnScreenIndex: number;
|
|
266
|
-
idsInView: string[];
|
|
267
280
|
scrollPending: number;
|
|
268
281
|
scroll: number;
|
|
269
282
|
scrollTime: number;
|
|
@@ -315,48 +328,55 @@ interface InternalState {
|
|
|
315
328
|
loadStartTime: number;
|
|
316
329
|
initialScroll: ScrollIndexWithOffsetPosition | undefined;
|
|
317
330
|
lastLayout: LayoutRectangle | undefined;
|
|
331
|
+
queuedItemSizeUpdates: {
|
|
332
|
+
itemKey: string;
|
|
333
|
+
sizeObj: {
|
|
334
|
+
width: number;
|
|
335
|
+
height: number;
|
|
336
|
+
};
|
|
337
|
+
}[];
|
|
338
|
+
queuedItemSizeUpdatesWaiting?: boolean;
|
|
339
|
+
timeoutSetPaddingTop?: any;
|
|
340
|
+
activeStickyIndex: number | undefined;
|
|
341
|
+
stickyContainers: Map<number, number>;
|
|
342
|
+
stickyContainerPool: Set<number>;
|
|
343
|
+
scrollProcessingEnabled: boolean;
|
|
318
344
|
props: {
|
|
319
345
|
alignItemsAtEnd: boolean;
|
|
320
346
|
data: readonly any[];
|
|
321
347
|
estimatedItemSize: number | undefined;
|
|
322
|
-
getEstimatedItemSize:
|
|
348
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
349
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
350
|
+
getItemType: LegendListProps["getItemType"];
|
|
323
351
|
horizontal: boolean;
|
|
324
|
-
keyExtractor:
|
|
352
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
325
353
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
326
354
|
maintainScrollAtEndThreshold: number | undefined;
|
|
327
355
|
maintainVisibleContentPosition: boolean;
|
|
328
|
-
onEndReached:
|
|
329
|
-
distanceFromEnd: number;
|
|
330
|
-
}) => void) | null | undefined) | undefined;
|
|
356
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
331
357
|
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;
|
|
358
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
359
|
+
onLoad: LegendListProps["onLoad"];
|
|
360
|
+
onScroll: LegendListProps["onScroll"];
|
|
361
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
346
362
|
onStartReachedThreshold: number | null | undefined;
|
|
363
|
+
recycleItems: boolean;
|
|
347
364
|
suggestEstimatedItemSize: boolean;
|
|
348
365
|
stylePaddingBottom: number | undefined;
|
|
349
|
-
renderItem:
|
|
366
|
+
renderItem: LegendListProps["renderItem"];
|
|
350
367
|
initialScroll: {
|
|
351
368
|
index: number;
|
|
352
369
|
viewOffset?: number;
|
|
353
370
|
viewPosition?: number;
|
|
354
371
|
} | undefined;
|
|
355
372
|
scrollBuffer: number;
|
|
356
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
357
373
|
numColumns: number;
|
|
358
374
|
initialContainerPoolRatio: number;
|
|
359
375
|
stylePaddingTop: number | undefined;
|
|
376
|
+
snapToIndices: number[] | undefined;
|
|
377
|
+
stickyIndicesSet: Set<number>;
|
|
378
|
+
stickyIndicesArr: number[];
|
|
379
|
+
itemsAreEqual: LegendListProps["itemsAreEqual"];
|
|
360
380
|
};
|
|
361
381
|
}
|
|
362
382
|
interface ViewableRange<T> {
|
|
@@ -366,23 +386,27 @@ interface ViewableRange<T> {
|
|
|
366
386
|
end: number;
|
|
367
387
|
items: T[];
|
|
368
388
|
}
|
|
369
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
389
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
370
390
|
item: ItemT;
|
|
391
|
+
type: TItemType;
|
|
371
392
|
index: number;
|
|
372
393
|
extraData: any;
|
|
373
394
|
}
|
|
374
395
|
type ScrollState = {
|
|
375
396
|
contentLength: number;
|
|
397
|
+
data: readonly any[];
|
|
376
398
|
end: number;
|
|
377
399
|
endBuffered: number;
|
|
378
400
|
isAtEnd: boolean;
|
|
379
401
|
isAtStart: boolean;
|
|
402
|
+
positionAtIndex: (index: number) => number;
|
|
403
|
+
positions: Map<string, number>;
|
|
380
404
|
scroll: number;
|
|
381
405
|
scrollLength: number;
|
|
406
|
+
sizeAtIndex: (index: number) => number;
|
|
407
|
+
sizes: Map<string, number>;
|
|
382
408
|
start: number;
|
|
383
409
|
startBuffered: number;
|
|
384
|
-
sizes: Map<string, number>;
|
|
385
|
-
sizeAtIndex: (index: number) => number;
|
|
386
410
|
};
|
|
387
411
|
type LegendListRef = {
|
|
388
412
|
/**
|
|
@@ -429,9 +453,11 @@ type LegendListRef = {
|
|
|
429
453
|
* Scrolls to the end of the list.
|
|
430
454
|
* @param options - Options for scrolling.
|
|
431
455
|
* @param options.animated - If true, animates the scroll. Default: true.
|
|
456
|
+
* @param options.viewOffset - Offset from the target position.
|
|
432
457
|
*/
|
|
433
458
|
scrollToEnd(options?: {
|
|
434
459
|
animated?: boolean | undefined;
|
|
460
|
+
viewOffset?: number | undefined;
|
|
435
461
|
}): void;
|
|
436
462
|
/**
|
|
437
463
|
* Scrolls to a specific index in the list.
|
|
@@ -477,6 +503,11 @@ type LegendListRef = {
|
|
|
477
503
|
* @param animated - If true, uses Animated to animate the change.
|
|
478
504
|
*/
|
|
479
505
|
setVisibleContentAnchorOffset(value: number | ((value: number) => number)): void;
|
|
506
|
+
/**
|
|
507
|
+
* Sets whether scroll processing is enabled.
|
|
508
|
+
* @param enabled - If true, scroll processing is enabled.
|
|
509
|
+
*/
|
|
510
|
+
setScrollProcessingEnabled(enabled: boolean): void;
|
|
480
511
|
};
|
|
481
512
|
interface ViewToken<ItemT = any> {
|
|
482
513
|
item: ItemT;
|
|
@@ -540,7 +571,7 @@ interface LegendListRecyclingState<T> {
|
|
|
540
571
|
}
|
|
541
572
|
type TypedForwardRef = <T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactNode) => (props: P & React.RefAttributes<T>) => React.ReactNode;
|
|
542
573
|
declare const typedForwardRef: TypedForwardRef;
|
|
543
|
-
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<
|
|
574
|
+
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<React.JSXElementConstructor<T>>, nextProps: Readonly<React.JSXElementConstructor<T>>) => boolean) => T & {
|
|
544
575
|
displayName?: string;
|
|
545
576
|
};
|
|
546
577
|
declare const typedMemo: TypedMemo;
|
|
@@ -556,7 +587,7 @@ type GetRenderedItemResult<ItemT> = {
|
|
|
556
587
|
};
|
|
557
588
|
type GetRenderedItem = (key: string) => GetRenderedItemResult<any> | null;
|
|
558
589
|
|
|
559
|
-
declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
590
|
+
declare const LegendList: (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
560
591
|
alignItemsAtEnd?: boolean;
|
|
561
592
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
562
593
|
data: readonly T[];
|
|
@@ -567,7 +598,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
567
598
|
width: number;
|
|
568
599
|
};
|
|
569
600
|
extraData?: any;
|
|
570
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
601
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
571
602
|
initialContainerPoolRatio?: number | undefined;
|
|
572
603
|
initialScrollOffset?: number;
|
|
573
604
|
initialScrollIndex?: number | {
|
|
@@ -609,7 +640,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
609
640
|
recycleItems?: boolean;
|
|
610
641
|
refScrollView?: React$1.Ref<ScrollView>;
|
|
611
642
|
refreshing?: boolean;
|
|
612
|
-
renderItem?:
|
|
643
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
613
644
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
614
645
|
suggestEstimatedItemSize?: boolean;
|
|
615
646
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -618,75 +649,20 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
618
649
|
onLoad?: (info: {
|
|
619
650
|
elapsedTimeInMs: number;
|
|
620
651
|
}) => void;
|
|
621
|
-
|
|
652
|
+
snapToIndices?: number[];
|
|
653
|
+
stickyIndices?: number[];
|
|
654
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
655
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
656
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
657
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode) & {
|
|
658
|
+
displayName?: string;
|
|
659
|
+
};
|
|
622
660
|
|
|
623
661
|
interface LazyLegendListProps<ItemT, ListT> extends Omit<LegendListProps<ItemT>, "data" | "keyExtractor" | "renderItem"> {
|
|
624
662
|
children?: React$1.ReactNode | undefined;
|
|
625
663
|
LegendList?: ListT;
|
|
626
664
|
}
|
|
627
|
-
declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
628
|
-
alignItemsAtEnd?: boolean;
|
|
629
|
-
columnWrapperStyle?: ColumnWrapperStyle;
|
|
630
|
-
data: readonly T[];
|
|
631
|
-
drawDistance?: number;
|
|
632
|
-
estimatedItemSize?: number;
|
|
633
|
-
estimatedListSize?: {
|
|
634
|
-
height: number;
|
|
635
|
-
width: number;
|
|
636
|
-
};
|
|
637
|
-
extraData?: any;
|
|
638
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
639
|
-
initialContainerPoolRatio?: number | undefined;
|
|
640
|
-
initialScrollOffset?: number;
|
|
641
|
-
initialScrollIndex?: number | {
|
|
642
|
-
index: number;
|
|
643
|
-
viewOffset?: number | undefined;
|
|
644
|
-
viewPosition?: number | undefined;
|
|
645
|
-
};
|
|
646
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
647
|
-
leadingItem: T;
|
|
648
|
-
}> | undefined;
|
|
649
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
650
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
651
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
652
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
653
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
654
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
655
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
656
|
-
maintainScrollAtEndThreshold?: number;
|
|
657
|
-
maintainVisibleContentPosition?: boolean;
|
|
658
|
-
numColumns?: number;
|
|
659
|
-
onEndReached?: ((info: {
|
|
660
|
-
distanceFromEnd: number;
|
|
661
|
-
}) => void) | null | undefined;
|
|
662
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
663
|
-
onItemSizeChanged?: ((info: {
|
|
664
|
-
size: number;
|
|
665
|
-
previous: number;
|
|
666
|
-
index: number;
|
|
667
|
-
itemKey: string;
|
|
668
|
-
itemData: T;
|
|
669
|
-
}) => void) | undefined;
|
|
670
|
-
onRefresh?: () => void;
|
|
671
|
-
onStartReached?: ((info: {
|
|
672
|
-
distanceFromStart: number;
|
|
673
|
-
}) => void) | null | undefined;
|
|
674
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
675
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
676
|
-
progressViewOffset?: number;
|
|
677
|
-
recycleItems?: boolean;
|
|
678
|
-
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
679
|
-
refreshing?: boolean;
|
|
680
|
-
renderItem?: React$1.ComponentType<LegendListRenderItemProps<T>> | ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | undefined;
|
|
681
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
682
|
-
suggestEstimatedItemSize?: boolean;
|
|
683
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
684
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
685
|
-
waitForInitialLayout?: boolean;
|
|
686
|
-
onLoad?: (info: {
|
|
687
|
-
elapsedTimeInMs: number;
|
|
688
|
-
}) => void;
|
|
689
|
-
} & 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"> & {
|
|
665
|
+
declare const LazyLegendList: <ItemT, ListT extends typeof LegendList | typeof AnimatedLegendList | typeof AnimatedLegendList$1 = (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
690
666
|
alignItemsAtEnd?: boolean;
|
|
691
667
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
692
668
|
data: readonly T[];
|
|
@@ -697,7 +673,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
697
673
|
width: number;
|
|
698
674
|
};
|
|
699
675
|
extraData?: any;
|
|
700
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
676
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
701
677
|
initialContainerPoolRatio?: number | undefined;
|
|
702
678
|
initialScrollOffset?: number;
|
|
703
679
|
initialScrollIndex?: number | {
|
|
@@ -739,7 +715,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
739
715
|
recycleItems?: boolean;
|
|
740
716
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
741
717
|
refreshing?: boolean;
|
|
742
|
-
renderItem?:
|
|
718
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
743
719
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
744
720
|
suggestEstimatedItemSize?: boolean;
|
|
745
721
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -748,71 +724,14 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
748
724
|
onLoad?: (info: {
|
|
749
725
|
elapsedTimeInMs: number;
|
|
750
726
|
}) => void;
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
estimatedListSize?: {
|
|
760
|
-
height: number;
|
|
761
|
-
width: number;
|
|
762
|
-
};
|
|
763
|
-
extraData?: any;
|
|
764
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
765
|
-
initialContainerPoolRatio?: number | undefined;
|
|
766
|
-
initialScrollOffset?: number;
|
|
767
|
-
initialScrollIndex?: number | {
|
|
768
|
-
index: number;
|
|
769
|
-
viewOffset?: number | undefined;
|
|
770
|
-
viewPosition?: number | undefined;
|
|
771
|
-
};
|
|
772
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
773
|
-
leadingItem: T;
|
|
774
|
-
}> | undefined;
|
|
775
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
776
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
777
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
778
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
779
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
780
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
781
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
782
|
-
maintainScrollAtEndThreshold?: number;
|
|
783
|
-
maintainVisibleContentPosition?: boolean;
|
|
784
|
-
numColumns?: number;
|
|
785
|
-
onEndReached?: ((info: {
|
|
786
|
-
distanceFromEnd: number;
|
|
787
|
-
}) => void) | null | undefined;
|
|
788
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
789
|
-
onItemSizeChanged?: ((info: {
|
|
790
|
-
size: number;
|
|
791
|
-
previous: number;
|
|
792
|
-
index: number;
|
|
793
|
-
itemKey: string;
|
|
794
|
-
itemData: T;
|
|
795
|
-
}) => void) | undefined;
|
|
796
|
-
onRefresh?: () => void;
|
|
797
|
-
onStartReached?: ((info: {
|
|
798
|
-
distanceFromStart: number;
|
|
799
|
-
}) => void) | null | undefined;
|
|
800
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
801
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
802
|
-
progressViewOffset?: number;
|
|
803
|
-
recycleItems?: boolean;
|
|
804
|
-
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
805
|
-
refreshing?: boolean;
|
|
806
|
-
renderItem?: React$1.ComponentType<LegendListRenderItemProps<T>> | ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | undefined;
|
|
807
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
808
|
-
suggestEstimatedItemSize?: boolean;
|
|
809
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
810
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
811
|
-
waitForInitialLayout?: boolean;
|
|
812
|
-
onLoad?: (info: {
|
|
813
|
-
elapsedTimeInMs: number;
|
|
814
|
-
}) => void;
|
|
815
|
-
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
727
|
+
snapToIndices?: number[];
|
|
728
|
+
stickyIndices?: number[];
|
|
729
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
730
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
731
|
+
itemsAreEqual?: ((itemPrevious: T, item: T, index: number, data: readonly T[]) => boolean) | undefined;
|
|
732
|
+
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode) & {
|
|
733
|
+
displayName?: string;
|
|
734
|
+
}>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
816
735
|
|
|
817
736
|
declare function useViewability(callback: ViewabilityCallback, configId?: string): void;
|
|
818
737
|
declare function useViewabilityAmount(callback: ViewabilityAmountCallback): void;
|