@legendapp/list 2.0.0-next.10 → 2.0.0-next.11
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/.DS_Store +0 -0
- package/animated.d.mts +5 -2
- package/animated.d.ts +5 -2
- package/index.d.mts +55 -35
- package/index.d.ts +55 -35
- package/index.js +552 -212
- package/index.mjs +554 -214
- package/keyboard-controller.d.mts +20 -8
- package/keyboard-controller.d.ts +20 -8
- package/package.json +1 -1
- package/reanimated.d.mts +1 -1
- package/reanimated.d.ts +1 -1
package/.DS_Store
ADDED
|
Binary file
|
package/animated.d.mts
CHANGED
|
@@ -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?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
|
|
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;
|
|
@@ -66,6 +66,9 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
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;
|
|
69
72
|
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode)>;
|
|
70
73
|
|
|
71
74
|
export { AnimatedLegendList };
|
package/animated.d.ts
CHANGED
|
@@ -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?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
|
|
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;
|
|
@@ -66,6 +66,9 @@ declare const AnimatedLegendList: Animated.AnimatedComponent<(<T>(props: Omit<Om
|
|
|
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;
|
|
69
72
|
} & React$1.RefAttributes<_legendapp_list.LegendListRef>) => React.ReactNode)>;
|
|
70
73
|
|
|
71
74
|
export { AnimatedLegendList };
|
package/index.d.mts
CHANGED
|
@@ -2,10 +2,10 @@ import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import { ComponentProps, ReactNode, Dispatch, SetStateAction } from 'react';
|
|
4
4
|
import * as react_native from 'react-native';
|
|
5
|
-
import { View,
|
|
5
|
+
import { View, Animated, ScrollView, StyleProp, ViewStyle, ScrollViewProps, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin } from 'react-native';
|
|
6
6
|
import Animated$1 from 'react-native-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" | "snapToOffsets" | "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} />
|
|
@@ -233,6 +234,15 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
233
234
|
elapsedTimeInMs: number;
|
|
234
235
|
}) => void;
|
|
235
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;
|
|
236
246
|
};
|
|
237
247
|
interface MaintainScrollAtEndOptions {
|
|
238
248
|
onLayout?: boolean;
|
|
@@ -244,13 +254,14 @@ interface ColumnWrapperStyle {
|
|
|
244
254
|
gap?: number;
|
|
245
255
|
columnGap?: number;
|
|
246
256
|
}
|
|
247
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
257
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
248
258
|
interface InternalState {
|
|
249
259
|
positions: Map<string, number>;
|
|
250
260
|
columns: Map<string, number>;
|
|
251
261
|
sizes: Map<string, number>;
|
|
252
262
|
sizesKnown: Map<string, number>;
|
|
253
263
|
containerItemKeys: Set<string>;
|
|
264
|
+
containerItemTypes: Map<number, string>;
|
|
254
265
|
pendingAdjust: number;
|
|
255
266
|
isStartReached: boolean;
|
|
256
267
|
isEndReached: boolean;
|
|
@@ -325,38 +336,32 @@ interface InternalState {
|
|
|
325
336
|
}[];
|
|
326
337
|
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
338
|
timeoutSetPaddingTop?: any;
|
|
339
|
+
activeStickyIndex: number | undefined;
|
|
340
|
+
stickyContainers: Map<number, number>;
|
|
341
|
+
stickyContainerPool: Set<number>;
|
|
328
342
|
props: {
|
|
329
343
|
alignItemsAtEnd: boolean;
|
|
330
344
|
data: readonly any[];
|
|
331
345
|
estimatedItemSize: number | undefined;
|
|
332
|
-
getEstimatedItemSize:
|
|
346
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
347
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
348
|
+
getItemType: LegendListProps["getItemType"];
|
|
333
349
|
horizontal: boolean;
|
|
334
|
-
keyExtractor:
|
|
350
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
335
351
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
336
352
|
maintainScrollAtEndThreshold: number | undefined;
|
|
337
353
|
maintainVisibleContentPosition: boolean;
|
|
338
|
-
onEndReached:
|
|
339
|
-
distanceFromEnd: number;
|
|
340
|
-
}) => void) | null | undefined) | undefined;
|
|
354
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
341
355
|
onEndReachedThreshold: number | null | undefined;
|
|
342
|
-
onItemSizeChanged:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
itemKey: string;
|
|
347
|
-
itemData: any;
|
|
348
|
-
}) => void) | undefined;
|
|
349
|
-
onLoad: ((info: {
|
|
350
|
-
elapsedTimeInMs: number;
|
|
351
|
-
}) => void) | undefined;
|
|
352
|
-
onScroll: ((event: NativeSyntheticEvent<NativeScrollEvent>) => void) | undefined;
|
|
353
|
-
onStartReached: (((info: {
|
|
354
|
-
distanceFromStart: number;
|
|
355
|
-
}) => void) | null | undefined) | undefined;
|
|
356
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
357
|
+
onLoad: LegendListProps["onLoad"];
|
|
358
|
+
onScroll: LegendListProps["onScroll"];
|
|
359
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
356
360
|
onStartReachedThreshold: number | null | undefined;
|
|
361
|
+
recycleItems: boolean;
|
|
357
362
|
suggestEstimatedItemSize: boolean;
|
|
358
363
|
stylePaddingBottom: number | undefined;
|
|
359
|
-
renderItem:
|
|
364
|
+
renderItem: LegendListProps["renderItem"];
|
|
360
365
|
initialScroll: {
|
|
361
366
|
index: number;
|
|
362
367
|
viewOffset?: number;
|
|
@@ -367,6 +372,8 @@ interface InternalState {
|
|
|
367
372
|
initialContainerPoolRatio: number;
|
|
368
373
|
stylePaddingTop: number | undefined;
|
|
369
374
|
snapToIndices: number[] | undefined;
|
|
375
|
+
stickyIndicesSet: Set<number>;
|
|
376
|
+
stickyIndicesArr: number[];
|
|
370
377
|
};
|
|
371
378
|
}
|
|
372
379
|
interface ViewableRange<T> {
|
|
@@ -376,8 +383,9 @@ interface ViewableRange<T> {
|
|
|
376
383
|
end: number;
|
|
377
384
|
items: T[];
|
|
378
385
|
}
|
|
379
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
386
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
380
387
|
item: ItemT;
|
|
388
|
+
type: TItemType;
|
|
381
389
|
index: number;
|
|
382
390
|
extraData: any;
|
|
383
391
|
}
|
|
@@ -584,7 +592,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
584
592
|
width: number;
|
|
585
593
|
};
|
|
586
594
|
extraData?: any;
|
|
587
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
595
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
588
596
|
initialContainerPoolRatio?: number | undefined;
|
|
589
597
|
initialScrollOffset?: number;
|
|
590
598
|
initialScrollIndex?: number | {
|
|
@@ -626,7 +634,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
626
634
|
recycleItems?: boolean;
|
|
627
635
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
628
636
|
refreshing?: boolean;
|
|
629
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
637
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
630
638
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
631
639
|
suggestEstimatedItemSize?: boolean;
|
|
632
640
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -636,6 +644,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
636
644
|
elapsedTimeInMs: number;
|
|
637
645
|
}) => void;
|
|
638
646
|
snapToIndices?: number[];
|
|
647
|
+
stickyIndices?: number[];
|
|
648
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
649
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
639
650
|
} & 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"> & {
|
|
640
651
|
alignItemsAtEnd?: boolean;
|
|
641
652
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
@@ -647,7 +658,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
647
658
|
width: number;
|
|
648
659
|
};
|
|
649
660
|
extraData?: any;
|
|
650
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
661
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
651
662
|
initialContainerPoolRatio?: number | undefined;
|
|
652
663
|
initialScrollOffset?: number;
|
|
653
664
|
initialScrollIndex?: number | {
|
|
@@ -689,7 +700,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
689
700
|
recycleItems?: boolean;
|
|
690
701
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
691
702
|
refreshing?: boolean;
|
|
692
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
703
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
693
704
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
694
705
|
suggestEstimatedItemSize?: boolean;
|
|
695
706
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -699,6 +710,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
699
710
|
elapsedTimeInMs: number;
|
|
700
711
|
}) => void;
|
|
701
712
|
snapToIndices?: number[];
|
|
713
|
+
stickyIndices?: number[];
|
|
714
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
715
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
702
716
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
|
|
703
717
|
ref?: React$1.Ref<LegendListRef>;
|
|
704
718
|
}) => React$1.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
@@ -712,7 +726,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
712
726
|
width: number;
|
|
713
727
|
};
|
|
714
728
|
extraData?: any;
|
|
715
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
729
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
716
730
|
initialContainerPoolRatio?: number | undefined;
|
|
717
731
|
initialScrollOffset?: number;
|
|
718
732
|
initialScrollIndex?: number | {
|
|
@@ -754,7 +768,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
754
768
|
recycleItems?: boolean;
|
|
755
769
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
756
770
|
refreshing?: boolean;
|
|
757
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
771
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
758
772
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
759
773
|
suggestEstimatedItemSize?: boolean;
|
|
760
774
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -764,6 +778,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
764
778
|
elapsedTimeInMs: number;
|
|
765
779
|
}) => void;
|
|
766
780
|
snapToIndices?: number[];
|
|
781
|
+
stickyIndices?: number[];
|
|
782
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
783
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
767
784
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
768
785
|
|
|
769
786
|
declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
@@ -777,7 +794,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
777
794
|
width: number;
|
|
778
795
|
};
|
|
779
796
|
extraData?: any;
|
|
780
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
797
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
781
798
|
initialContainerPoolRatio?: number | undefined;
|
|
782
799
|
initialScrollOffset?: number;
|
|
783
800
|
initialScrollIndex?: number | {
|
|
@@ -819,7 +836,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
819
836
|
recycleItems?: boolean;
|
|
820
837
|
refScrollView?: React$1.Ref<ScrollView>;
|
|
821
838
|
refreshing?: boolean;
|
|
822
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
839
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
823
840
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
824
841
|
suggestEstimatedItemSize?: boolean;
|
|
825
842
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -829,6 +846,9 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
829
846
|
elapsedTimeInMs: number;
|
|
830
847
|
}) => void;
|
|
831
848
|
snapToIndices?: number[];
|
|
849
|
+
stickyIndices?: number[];
|
|
850
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
851
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
832
852
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
833
853
|
|
|
834
854
|
declare function useViewability(callback: ViewabilityCallback, configId?: string): void;
|
package/index.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
|
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import { ComponentProps, ReactNode, Dispatch, SetStateAction } from 'react';
|
|
4
4
|
import * as react_native from 'react-native';
|
|
5
|
-
import { View,
|
|
5
|
+
import { View, Animated, ScrollView, StyleProp, ViewStyle, ScrollViewProps, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin } from 'react-native';
|
|
6
6
|
import Animated$1 from 'react-native-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" | "snapToOffsets" | "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} />
|
|
@@ -233,6 +234,15 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
233
234
|
elapsedTimeInMs: number;
|
|
234
235
|
}) => void;
|
|
235
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;
|
|
236
246
|
};
|
|
237
247
|
interface MaintainScrollAtEndOptions {
|
|
238
248
|
onLayout?: boolean;
|
|
@@ -244,13 +254,14 @@ interface ColumnWrapperStyle {
|
|
|
244
254
|
gap?: number;
|
|
245
255
|
columnGap?: number;
|
|
246
256
|
}
|
|
247
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
257
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, Omit<ComponentProps<typeof ScrollView>, "scrollEventThrottle">>;
|
|
248
258
|
interface InternalState {
|
|
249
259
|
positions: Map<string, number>;
|
|
250
260
|
columns: Map<string, number>;
|
|
251
261
|
sizes: Map<string, number>;
|
|
252
262
|
sizesKnown: Map<string, number>;
|
|
253
263
|
containerItemKeys: Set<string>;
|
|
264
|
+
containerItemTypes: Map<number, string>;
|
|
254
265
|
pendingAdjust: number;
|
|
255
266
|
isStartReached: boolean;
|
|
256
267
|
isEndReached: boolean;
|
|
@@ -325,38 +336,32 @@ interface InternalState {
|
|
|
325
336
|
}[];
|
|
326
337
|
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
338
|
timeoutSetPaddingTop?: any;
|
|
339
|
+
activeStickyIndex: number | undefined;
|
|
340
|
+
stickyContainers: Map<number, number>;
|
|
341
|
+
stickyContainerPool: Set<number>;
|
|
328
342
|
props: {
|
|
329
343
|
alignItemsAtEnd: boolean;
|
|
330
344
|
data: readonly any[];
|
|
331
345
|
estimatedItemSize: number | undefined;
|
|
332
|
-
getEstimatedItemSize:
|
|
346
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
347
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
348
|
+
getItemType: LegendListProps["getItemType"];
|
|
333
349
|
horizontal: boolean;
|
|
334
|
-
keyExtractor:
|
|
350
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
335
351
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
336
352
|
maintainScrollAtEndThreshold: number | undefined;
|
|
337
353
|
maintainVisibleContentPosition: boolean;
|
|
338
|
-
onEndReached:
|
|
339
|
-
distanceFromEnd: number;
|
|
340
|
-
}) => void) | null | undefined) | undefined;
|
|
354
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
341
355
|
onEndReachedThreshold: number | null | undefined;
|
|
342
|
-
onItemSizeChanged:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
itemKey: string;
|
|
347
|
-
itemData: any;
|
|
348
|
-
}) => void) | undefined;
|
|
349
|
-
onLoad: ((info: {
|
|
350
|
-
elapsedTimeInMs: number;
|
|
351
|
-
}) => void) | undefined;
|
|
352
|
-
onScroll: ((event: NativeSyntheticEvent<NativeScrollEvent>) => void) | undefined;
|
|
353
|
-
onStartReached: (((info: {
|
|
354
|
-
distanceFromStart: number;
|
|
355
|
-
}) => void) | null | undefined) | undefined;
|
|
356
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
357
|
+
onLoad: LegendListProps["onLoad"];
|
|
358
|
+
onScroll: LegendListProps["onScroll"];
|
|
359
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
356
360
|
onStartReachedThreshold: number | null | undefined;
|
|
361
|
+
recycleItems: boolean;
|
|
357
362
|
suggestEstimatedItemSize: boolean;
|
|
358
363
|
stylePaddingBottom: number | undefined;
|
|
359
|
-
renderItem:
|
|
364
|
+
renderItem: LegendListProps["renderItem"];
|
|
360
365
|
initialScroll: {
|
|
361
366
|
index: number;
|
|
362
367
|
viewOffset?: number;
|
|
@@ -367,6 +372,8 @@ interface InternalState {
|
|
|
367
372
|
initialContainerPoolRatio: number;
|
|
368
373
|
stylePaddingTop: number | undefined;
|
|
369
374
|
snapToIndices: number[] | undefined;
|
|
375
|
+
stickyIndicesSet: Set<number>;
|
|
376
|
+
stickyIndicesArr: number[];
|
|
370
377
|
};
|
|
371
378
|
}
|
|
372
379
|
interface ViewableRange<T> {
|
|
@@ -376,8 +383,9 @@ interface ViewableRange<T> {
|
|
|
376
383
|
end: number;
|
|
377
384
|
items: T[];
|
|
378
385
|
}
|
|
379
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
386
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
380
387
|
item: ItemT;
|
|
388
|
+
type: TItemType;
|
|
381
389
|
index: number;
|
|
382
390
|
extraData: any;
|
|
383
391
|
}
|
|
@@ -584,7 +592,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
584
592
|
width: number;
|
|
585
593
|
};
|
|
586
594
|
extraData?: any;
|
|
587
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
595
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
588
596
|
initialContainerPoolRatio?: number | undefined;
|
|
589
597
|
initialScrollOffset?: number;
|
|
590
598
|
initialScrollIndex?: number | {
|
|
@@ -626,7 +634,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
626
634
|
recycleItems?: boolean;
|
|
627
635
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
628
636
|
refreshing?: boolean;
|
|
629
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
637
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
630
638
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
631
639
|
suggestEstimatedItemSize?: boolean;
|
|
632
640
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -636,6 +644,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
636
644
|
elapsedTimeInMs: number;
|
|
637
645
|
}) => void;
|
|
638
646
|
snapToIndices?: number[];
|
|
647
|
+
stickyIndices?: number[];
|
|
648
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
649
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
639
650
|
} & 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"> & {
|
|
640
651
|
alignItemsAtEnd?: boolean;
|
|
641
652
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
@@ -647,7 +658,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
647
658
|
width: number;
|
|
648
659
|
};
|
|
649
660
|
extraData?: any;
|
|
650
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
661
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
651
662
|
initialContainerPoolRatio?: number | undefined;
|
|
652
663
|
initialScrollOffset?: number;
|
|
653
664
|
initialScrollIndex?: number | {
|
|
@@ -689,7 +700,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
689
700
|
recycleItems?: boolean;
|
|
690
701
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
691
702
|
refreshing?: boolean;
|
|
692
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
703
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
693
704
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
694
705
|
suggestEstimatedItemSize?: boolean;
|
|
695
706
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -699,6 +710,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
699
710
|
elapsedTimeInMs: number;
|
|
700
711
|
}) => void;
|
|
701
712
|
snapToIndices?: number[];
|
|
713
|
+
stickyIndices?: number[];
|
|
714
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
715
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
702
716
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
|
|
703
717
|
ref?: React$1.Ref<LegendListRef>;
|
|
704
718
|
}) => React$1.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
@@ -712,7 +726,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
712
726
|
width: number;
|
|
713
727
|
};
|
|
714
728
|
extraData?: any;
|
|
715
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
729
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
716
730
|
initialContainerPoolRatio?: number | undefined;
|
|
717
731
|
initialScrollOffset?: number;
|
|
718
732
|
initialScrollIndex?: number | {
|
|
@@ -754,7 +768,7 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
754
768
|
recycleItems?: boolean;
|
|
755
769
|
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
756
770
|
refreshing?: boolean;
|
|
757
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
771
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
758
772
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
759
773
|
suggestEstimatedItemSize?: boolean;
|
|
760
774
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -764,6 +778,9 @@ declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_
|
|
|
764
778
|
elapsedTimeInMs: number;
|
|
765
779
|
}) => void;
|
|
766
780
|
snapToIndices?: number[];
|
|
781
|
+
stickyIndices?: number[];
|
|
782
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
783
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
767
784
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
768
785
|
|
|
769
786
|
declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
@@ -777,7 +794,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
777
794
|
width: number;
|
|
778
795
|
};
|
|
779
796
|
extraData?: any;
|
|
780
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
797
|
+
getEstimatedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
781
798
|
initialContainerPoolRatio?: number | undefined;
|
|
782
799
|
initialScrollOffset?: number;
|
|
783
800
|
initialScrollIndex?: number | {
|
|
@@ -819,7 +836,7 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
819
836
|
recycleItems?: boolean;
|
|
820
837
|
refScrollView?: React$1.Ref<ScrollView>;
|
|
821
838
|
refreshing?: boolean;
|
|
822
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
839
|
+
renderItem?: ((props: LegendListRenderItemProps<T, string | undefined>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T, string | undefined>> | undefined;
|
|
823
840
|
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
824
841
|
suggestEstimatedItemSize?: boolean;
|
|
825
842
|
viewabilityConfig?: ViewabilityConfig;
|
|
@@ -829,6 +846,9 @@ declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "sc
|
|
|
829
846
|
elapsedTimeInMs: number;
|
|
830
847
|
}) => void;
|
|
831
848
|
snapToIndices?: number[];
|
|
849
|
+
stickyIndices?: number[];
|
|
850
|
+
getItemType?: ((item: T, index: number) => string | undefined) | undefined;
|
|
851
|
+
getFixedItemSize?: ((index: number, item: T, type: string | undefined) => number) | undefined;
|
|
832
852
|
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
833
853
|
|
|
834
854
|
declare function useViewability(callback: ViewabilityCallback, configId?: string): void;
|