@legendapp/list 2.0.0-next.9 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.DS_Store +0 -0
- package/animated.d.mts +3 -65
- package/animated.d.ts +3 -65
- package/index.d.mts +124 -339
- package/index.d.ts +124 -339
- package/index.js +1176 -598
- package/index.mjs +1178 -600
- package/keyboard-controller.d.mts +7 -260
- package/keyboard-controller.d.ts +7 -260
- package/package.json +1 -1
- package/reanimated.d.mts +1 -1
- package/reanimated.d.ts +1 -1
- package/reanimated.js +19 -17
- package/reanimated.mjs +20 -18
package/index.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
|
|
2
1
|
import * as React$1 from 'react';
|
|
3
2
|
import { ComponentProps, ReactNode, Dispatch, SetStateAction } from 'react';
|
|
4
|
-
import
|
|
5
|
-
import { View, ScrollView, Animated, StyleProp, ViewStyle, ScrollViewProps, LayoutRectangle, NativeSyntheticEvent, NativeScrollEvent, ScrollViewComponent, ScrollResponderMixin } from 'react-native';
|
|
3
|
+
import { View, Animated, ScrollView, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin, StyleProp, ViewStyle, NativeSyntheticEvent, NativeScrollEvent, ScrollViewProps } from 'react-native';
|
|
6
4
|
import Animated$1 from 'react-native-reanimated';
|
|
7
5
|
|
|
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";
|
|
6
|
+
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
7
|
interface StateContext {
|
|
10
8
|
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
11
9
|
values: Map<ListenerType, any>;
|
|
@@ -13,8 +11,16 @@ interface StateContext {
|
|
|
13
11
|
mapViewabilityValues: Map<string, ViewToken>;
|
|
14
12
|
mapViewabilityAmountCallbacks: Map<number, ViewabilityAmountCallback>;
|
|
15
13
|
mapViewabilityAmountValues: Map<number, ViewAmountToken>;
|
|
14
|
+
mapViewabilityConfigStates: Map<string, {
|
|
15
|
+
viewableItems: ViewToken[];
|
|
16
|
+
start: number;
|
|
17
|
+
end: number;
|
|
18
|
+
previousStart: number;
|
|
19
|
+
previousEnd: number;
|
|
20
|
+
}>;
|
|
16
21
|
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
17
22
|
viewRefs: Map<number, React$1.RefObject<View>>;
|
|
23
|
+
animatedScrollY: Animated.Value;
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
declare class ScrollAdjustHandler {
|
|
@@ -24,23 +30,51 @@ declare class ScrollAdjustHandler {
|
|
|
24
30
|
constructor(ctx: StateContext);
|
|
25
31
|
requestAdjust(add: number): void;
|
|
26
32
|
setMounted(): void;
|
|
33
|
+
getAdjust(): number;
|
|
27
34
|
}
|
|
28
35
|
|
|
29
|
-
type
|
|
36
|
+
type BaseScrollViewProps<TScrollView> = Omit<TScrollView, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children" | "onScroll">;
|
|
37
|
+
interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
38
|
+
/**
|
|
39
|
+
* Array of items to render in the list.
|
|
40
|
+
* @required when using data mode
|
|
41
|
+
*/
|
|
42
|
+
data: ReadonlyArray<ItemT>;
|
|
43
|
+
/**
|
|
44
|
+
* Function or React component to render each item in the list.
|
|
45
|
+
* Can be either:
|
|
46
|
+
* - A function: (props: LegendListRenderItemProps<ItemT>) => ReactNode
|
|
47
|
+
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
48
|
+
* @required when using data mode
|
|
49
|
+
*/
|
|
50
|
+
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
51
|
+
children?: never;
|
|
52
|
+
}
|
|
53
|
+
interface ChildrenModeProps {
|
|
54
|
+
/**
|
|
55
|
+
* React children elements to render as list items.
|
|
56
|
+
* Each child will be treated as an individual list item.
|
|
57
|
+
* @required when using children mode
|
|
58
|
+
*/
|
|
59
|
+
children: ReactNode;
|
|
60
|
+
data?: never;
|
|
61
|
+
renderItem?: never;
|
|
62
|
+
}
|
|
63
|
+
interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
30
64
|
/**
|
|
31
65
|
* If true, aligns items at the end of the list.
|
|
32
66
|
* @default false
|
|
33
67
|
*/
|
|
34
68
|
alignItemsAtEnd?: boolean;
|
|
35
69
|
/**
|
|
36
|
-
*
|
|
70
|
+
* If true, enables using average sizes for performance optimization.
|
|
71
|
+
* @default true
|
|
37
72
|
*/
|
|
38
|
-
|
|
73
|
+
enableAverages?: boolean;
|
|
39
74
|
/**
|
|
40
|
-
*
|
|
41
|
-
* @required
|
|
75
|
+
* Style applied to each column's wrapper view.
|
|
42
76
|
*/
|
|
43
|
-
|
|
77
|
+
columnWrapperStyle?: ColumnWrapperStyle;
|
|
44
78
|
/**
|
|
45
79
|
* Distance in pixels to pre-render items ahead of the visible area.
|
|
46
80
|
* @default 250
|
|
@@ -68,7 +102,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
68
102
|
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
69
103
|
* Use instead of FlatList's getItemLayout or FlashList overrideItemLayout if you want to have accurate initialScrollOffset, you should provide this function
|
|
70
104
|
*/
|
|
71
|
-
getEstimatedItemSize?: (index: number, item: ItemT) => number;
|
|
105
|
+
getEstimatedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
72
106
|
/**
|
|
73
107
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
74
108
|
* @default 2
|
|
@@ -86,7 +120,6 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
86
120
|
initialScrollIndex?: number | {
|
|
87
121
|
index: number;
|
|
88
122
|
viewOffset?: number | undefined;
|
|
89
|
-
viewPosition?: number | undefined;
|
|
90
123
|
};
|
|
91
124
|
/**
|
|
92
125
|
* Component to render between items, receiving the leading item as prop.
|
|
@@ -163,6 +196,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
163
196
|
* Function to call when the user pulls to refresh.
|
|
164
197
|
*/
|
|
165
198
|
onRefresh?: () => void;
|
|
199
|
+
onScroll?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
166
200
|
/**
|
|
167
201
|
* Called when scrolling reaches the start within onStartReachedThreshold.
|
|
168
202
|
*/
|
|
@@ -177,7 +211,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
177
211
|
/**
|
|
178
212
|
* Called when the viewability of items changes.
|
|
179
213
|
*/
|
|
180
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
214
|
+
onViewableItemsChanged?: OnViewableItemsChanged<ItemT> | undefined;
|
|
181
215
|
/**
|
|
182
216
|
* Offset in pixels for the refresh indicator.
|
|
183
217
|
* @default 0
|
|
@@ -197,14 +231,6 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
197
231
|
* @default false
|
|
198
232
|
*/
|
|
199
233
|
refreshing?: boolean;
|
|
200
|
-
/**
|
|
201
|
-
* Function or React component to render each item in the list.
|
|
202
|
-
* Can be either:
|
|
203
|
-
* - A function: (props: LegendListRenderItemProps<ItemT>) => ReactNode
|
|
204
|
-
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
205
|
-
* @required
|
|
206
|
-
*/
|
|
207
|
-
renderItem?: ((props: LegendListRenderItemProps<ItemT>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT>>;
|
|
208
234
|
/**
|
|
209
235
|
* Render custom ScrollView component.
|
|
210
236
|
* @default (props) => <ScrollView {...props} />
|
|
@@ -223,7 +249,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
223
249
|
/**
|
|
224
250
|
* Pairs of viewability configs and their callbacks for tracking visibility.
|
|
225
251
|
*/
|
|
226
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
252
|
+
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs<ItemT> | undefined;
|
|
227
253
|
/**
|
|
228
254
|
* If true, delays rendering until initial layout is complete.
|
|
229
255
|
* @default false
|
|
@@ -233,7 +259,18 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
233
259
|
elapsedTimeInMs: number;
|
|
234
260
|
}) => void;
|
|
235
261
|
snapToIndices?: number[];
|
|
236
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Array of child indices determining which children get docked to the top of the screen when scrolling.
|
|
264
|
+
* For example, passing stickyIndices={[0]} will cause the first child to be fixed to the top of the scroll view.
|
|
265
|
+
* Not supported in conjunction with horizontal={true}.
|
|
266
|
+
* @default undefined
|
|
267
|
+
*/
|
|
268
|
+
stickyIndices?: number[];
|
|
269
|
+
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
270
|
+
getFixedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
271
|
+
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
272
|
+
}
|
|
273
|
+
type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView> | ComponentProps<typeof Animated$1.ScrollView>, TItemType extends string | undefined = string | undefined> = BaseScrollViewProps<TScrollView> & LegendListSpecificProps<ItemT, TItemType> & (DataModeProps<ItemT, TItemType> | ChildrenModeProps);
|
|
237
274
|
interface MaintainScrollAtEndOptions {
|
|
238
275
|
onLayout?: boolean;
|
|
239
276
|
onItemLayout?: boolean;
|
|
@@ -244,14 +281,14 @@ interface ColumnWrapperStyle {
|
|
|
244
281
|
gap?: number;
|
|
245
282
|
columnGap?: number;
|
|
246
283
|
}
|
|
247
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT,
|
|
284
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, ComponentProps<typeof ScrollView>>;
|
|
248
285
|
interface InternalState {
|
|
249
286
|
positions: Map<string, number>;
|
|
250
287
|
columns: Map<string, number>;
|
|
251
288
|
sizes: Map<string, number>;
|
|
252
289
|
sizesKnown: Map<string, number>;
|
|
253
290
|
containerItemKeys: Set<string>;
|
|
254
|
-
|
|
291
|
+
containerItemTypes: Map<number, string>;
|
|
255
292
|
isStartReached: boolean;
|
|
256
293
|
isEndReached: boolean;
|
|
257
294
|
isAtEnd: boolean;
|
|
@@ -279,7 +316,7 @@ interface InternalState {
|
|
|
279
316
|
nativeMarginTop: number;
|
|
280
317
|
indexByKey: Map<string, number>;
|
|
281
318
|
idCache: Map<number, string>;
|
|
282
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
319
|
+
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs<any> | undefined;
|
|
283
320
|
scrollHistory: Array<{
|
|
284
321
|
scroll: number;
|
|
285
322
|
time: number;
|
|
@@ -308,65 +345,57 @@ interface InternalState {
|
|
|
308
345
|
animated?: boolean;
|
|
309
346
|
} | undefined;
|
|
310
347
|
needsOtherAxisSize?: boolean;
|
|
348
|
+
positionRange: {
|
|
349
|
+
start: number;
|
|
350
|
+
end: number;
|
|
351
|
+
valid: boolean;
|
|
352
|
+
};
|
|
311
353
|
averageSizes: Record<string, {
|
|
312
354
|
num: number;
|
|
313
355
|
avg: number;
|
|
314
356
|
}>;
|
|
315
357
|
refScroller: React.RefObject<ScrollView>;
|
|
316
358
|
loadStartTime: number;
|
|
317
|
-
initialScroll:
|
|
359
|
+
initialScroll: ScrollIndexWithOffset | undefined;
|
|
318
360
|
lastLayout: LayoutRectangle | undefined;
|
|
319
|
-
queuedItemSizeUpdates: {
|
|
320
|
-
itemKey: string;
|
|
321
|
-
sizeObj: {
|
|
322
|
-
width: number;
|
|
323
|
-
height: number;
|
|
324
|
-
};
|
|
325
|
-
}[];
|
|
326
|
-
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
361
|
timeoutSetPaddingTop?: any;
|
|
362
|
+
activeStickyIndex: number | undefined;
|
|
363
|
+
stickyContainers: Map<number, number>;
|
|
364
|
+
stickyContainerPool: Set<number>;
|
|
365
|
+
scrollProcessingEnabled: boolean;
|
|
328
366
|
props: {
|
|
329
367
|
alignItemsAtEnd: boolean;
|
|
330
368
|
data: readonly any[];
|
|
331
369
|
estimatedItemSize: number | undefined;
|
|
332
|
-
getEstimatedItemSize:
|
|
370
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
371
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
372
|
+
getItemType: LegendListProps["getItemType"];
|
|
333
373
|
horizontal: boolean;
|
|
334
|
-
keyExtractor:
|
|
374
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
335
375
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
336
376
|
maintainScrollAtEndThreshold: number | undefined;
|
|
337
377
|
maintainVisibleContentPosition: boolean;
|
|
338
|
-
onEndReached:
|
|
339
|
-
distanceFromEnd: number;
|
|
340
|
-
}) => void) | null | undefined) | undefined;
|
|
378
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
341
379
|
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;
|
|
380
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
381
|
+
onLoad: LegendListProps["onLoad"];
|
|
382
|
+
onScroll: LegendListProps["onScroll"];
|
|
383
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
356
384
|
onStartReachedThreshold: number | null | undefined;
|
|
385
|
+
recycleItems: boolean;
|
|
357
386
|
suggestEstimatedItemSize: boolean;
|
|
358
387
|
stylePaddingBottom: number | undefined;
|
|
359
|
-
renderItem:
|
|
360
|
-
initialScroll:
|
|
361
|
-
index: number;
|
|
362
|
-
viewOffset?: number;
|
|
363
|
-
viewPosition?: number;
|
|
364
|
-
} | undefined;
|
|
388
|
+
renderItem: LegendListProps["renderItem"];
|
|
389
|
+
initialScroll: ScrollIndexWithOffset | undefined;
|
|
365
390
|
scrollBuffer: number;
|
|
366
391
|
numColumns: number;
|
|
367
392
|
initialContainerPoolRatio: number;
|
|
368
393
|
stylePaddingTop: number | undefined;
|
|
369
394
|
snapToIndices: number[] | undefined;
|
|
395
|
+
stickyIndicesSet: Set<number>;
|
|
396
|
+
stickyIndicesArr: number[];
|
|
397
|
+
itemsAreEqual: LegendListProps["itemsAreEqual"];
|
|
398
|
+
enableAverages: boolean;
|
|
370
399
|
};
|
|
371
400
|
}
|
|
372
401
|
interface ViewableRange<T> {
|
|
@@ -376,24 +405,28 @@ interface ViewableRange<T> {
|
|
|
376
405
|
end: number;
|
|
377
406
|
items: T[];
|
|
378
407
|
}
|
|
379
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
408
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
380
409
|
item: ItemT;
|
|
410
|
+
type: TItemType;
|
|
381
411
|
index: number;
|
|
412
|
+
data: readonly ItemT[];
|
|
382
413
|
extraData: any;
|
|
383
414
|
}
|
|
384
415
|
type ScrollState = {
|
|
385
416
|
contentLength: number;
|
|
417
|
+
data: readonly any[];
|
|
386
418
|
end: number;
|
|
387
419
|
endBuffered: number;
|
|
388
420
|
isAtEnd: boolean;
|
|
389
421
|
isAtStart: boolean;
|
|
422
|
+
positionAtIndex: (index: number) => number | undefined;
|
|
390
423
|
positions: Map<string, number>;
|
|
391
424
|
scroll: number;
|
|
392
425
|
scrollLength: number;
|
|
426
|
+
sizeAtIndex: (index: number) => number | undefined;
|
|
427
|
+
sizes: Map<string, number>;
|
|
393
428
|
start: number;
|
|
394
429
|
startBuffered: number;
|
|
395
|
-
sizes: Map<string, number>;
|
|
396
|
-
sizeAtIndex: (index: number) => number;
|
|
397
430
|
};
|
|
398
431
|
type LegendListRef = {
|
|
399
432
|
/**
|
|
@@ -440,9 +473,11 @@ type LegendListRef = {
|
|
|
440
473
|
* Scrolls to the end of the list.
|
|
441
474
|
* @param options - Options for scrolling.
|
|
442
475
|
* @param options.animated - If true, animates the scroll. Default: true.
|
|
476
|
+
* @param options.viewOffset - Offset from the target position.
|
|
443
477
|
*/
|
|
444
478
|
scrollToEnd(options?: {
|
|
445
479
|
animated?: boolean | undefined;
|
|
480
|
+
viewOffset?: number | undefined;
|
|
446
481
|
}): void;
|
|
447
482
|
/**
|
|
448
483
|
* Scrolls to a specific index in the list.
|
|
@@ -488,6 +523,11 @@ type LegendListRef = {
|
|
|
488
523
|
* @param animated - If true, uses Animated to animate the change.
|
|
489
524
|
*/
|
|
490
525
|
setVisibleContentAnchorOffset(value: number | ((value: number) => number)): void;
|
|
526
|
+
/**
|
|
527
|
+
* Sets whether scroll processing is enabled.
|
|
528
|
+
* @param enabled - If true, scroll processing is enabled.
|
|
529
|
+
*/
|
|
530
|
+
setScrollProcessingEnabled(enabled: boolean): void;
|
|
491
531
|
};
|
|
492
532
|
interface ViewToken<ItemT = any> {
|
|
493
533
|
item: ItemT;
|
|
@@ -503,14 +543,14 @@ interface ViewAmountToken<ItemT = any> extends ViewToken<ItemT> {
|
|
|
503
543
|
percentOfScroller: number;
|
|
504
544
|
scrollSize: number;
|
|
505
545
|
}
|
|
506
|
-
interface ViewabilityConfigCallbackPair {
|
|
546
|
+
interface ViewabilityConfigCallbackPair<ItemT> {
|
|
507
547
|
viewabilityConfig: ViewabilityConfig;
|
|
508
|
-
onViewableItemsChanged?: OnViewableItemsChanged
|
|
548
|
+
onViewableItemsChanged?: OnViewableItemsChanged<ItemT>;
|
|
509
549
|
}
|
|
510
|
-
type ViewabilityConfigCallbackPairs = ViewabilityConfigCallbackPair[];
|
|
511
|
-
type OnViewableItemsChanged = ((info: {
|
|
512
|
-
viewableItems: Array<ViewToken
|
|
513
|
-
changed: Array<ViewToken
|
|
550
|
+
type ViewabilityConfigCallbackPairs<ItemT> = ViewabilityConfigCallbackPair<ItemT>[];
|
|
551
|
+
type OnViewableItemsChanged<ItemT> = ((info: {
|
|
552
|
+
viewableItems: Array<ViewToken<ItemT>>;
|
|
553
|
+
changed: Array<ViewToken<ItemT>>;
|
|
514
554
|
}) => void) | null;
|
|
515
555
|
interface ViewabilityConfig {
|
|
516
556
|
/**
|
|
@@ -541,8 +581,8 @@ interface ViewabilityConfig {
|
|
|
541
581
|
*/
|
|
542
582
|
waitForInteraction?: boolean | undefined;
|
|
543
583
|
}
|
|
544
|
-
type ViewabilityCallback = (viewToken: ViewToken) => void;
|
|
545
|
-
type ViewabilityAmountCallback = (viewToken: ViewAmountToken) => void;
|
|
584
|
+
type ViewabilityCallback<ItemT = any> = (viewToken: ViewToken<ItemT>) => void;
|
|
585
|
+
type ViewabilityAmountCallback<ItemT = any> = (viewToken: ViewAmountToken<ItemT>) => void;
|
|
546
586
|
interface LegendListRecyclingState<T> {
|
|
547
587
|
item: T;
|
|
548
588
|
prevItem: T | undefined;
|
|
@@ -555,11 +595,13 @@ type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqua
|
|
|
555
595
|
displayName?: string;
|
|
556
596
|
};
|
|
557
597
|
declare const typedMemo: TypedMemo;
|
|
558
|
-
|
|
598
|
+
interface ScrollIndexWithOffset {
|
|
559
599
|
index: number;
|
|
560
|
-
viewOffset
|
|
561
|
-
|
|
562
|
-
|
|
600
|
+
viewOffset: number;
|
|
601
|
+
}
|
|
602
|
+
interface ScrollIndexWithOffsetPosition extends ScrollIndexWithOffset {
|
|
603
|
+
viewPosition: number;
|
|
604
|
+
}
|
|
563
605
|
type GetRenderedItemResult<ItemT> = {
|
|
564
606
|
index: number;
|
|
565
607
|
item: ItemT;
|
|
@@ -567,270 +609,12 @@ type GetRenderedItemResult<ItemT> = {
|
|
|
567
609
|
};
|
|
568
610
|
type GetRenderedItem = (key: string) => GetRenderedItemResult<any> | null;
|
|
569
611
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
}
|
|
574
|
-
declare const LazyLegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
575
|
-
alignItemsAtEnd?: boolean;
|
|
576
|
-
columnWrapperStyle?: ColumnWrapperStyle;
|
|
577
|
-
data: readonly T[];
|
|
578
|
-
drawDistance?: number;
|
|
579
|
-
estimatedItemSize?: number;
|
|
580
|
-
estimatedListSize?: {
|
|
581
|
-
height: number;
|
|
582
|
-
width: number;
|
|
583
|
-
};
|
|
584
|
-
extraData?: any;
|
|
585
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
586
|
-
initialContainerPoolRatio?: number | undefined;
|
|
587
|
-
initialScrollOffset?: number;
|
|
588
|
-
initialScrollIndex?: number | {
|
|
589
|
-
index: number;
|
|
590
|
-
viewOffset?: number | undefined;
|
|
591
|
-
viewPosition?: number | undefined;
|
|
592
|
-
};
|
|
593
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
594
|
-
leadingItem: T;
|
|
595
|
-
}> | undefined;
|
|
596
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
597
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
598
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
599
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
600
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
601
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
602
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
603
|
-
maintainScrollAtEndThreshold?: number;
|
|
604
|
-
maintainVisibleContentPosition?: boolean;
|
|
605
|
-
numColumns?: number;
|
|
606
|
-
onEndReached?: ((info: {
|
|
607
|
-
distanceFromEnd: number;
|
|
608
|
-
}) => void) | null | undefined;
|
|
609
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
610
|
-
onItemSizeChanged?: ((info: {
|
|
611
|
-
size: number;
|
|
612
|
-
previous: number;
|
|
613
|
-
index: number;
|
|
614
|
-
itemKey: string;
|
|
615
|
-
itemData: T;
|
|
616
|
-
}) => void) | undefined;
|
|
617
|
-
onRefresh?: () => void;
|
|
618
|
-
onStartReached?: ((info: {
|
|
619
|
-
distanceFromStart: number;
|
|
620
|
-
}) => void) | null | undefined;
|
|
621
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
622
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
623
|
-
progressViewOffset?: number;
|
|
624
|
-
recycleItems?: boolean;
|
|
625
|
-
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
626
|
-
refreshing?: boolean;
|
|
627
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
628
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
629
|
-
suggestEstimatedItemSize?: boolean;
|
|
630
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
631
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
632
|
-
waitForInitialLayout?: boolean;
|
|
633
|
-
onLoad?: (info: {
|
|
634
|
-
elapsedTimeInMs: number;
|
|
635
|
-
}) => void;
|
|
636
|
-
snapToIndices?: number[];
|
|
637
|
-
} & 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"> & {
|
|
638
|
-
alignItemsAtEnd?: boolean;
|
|
639
|
-
columnWrapperStyle?: ColumnWrapperStyle;
|
|
640
|
-
data: readonly T[];
|
|
641
|
-
drawDistance?: number;
|
|
642
|
-
estimatedItemSize?: number;
|
|
643
|
-
estimatedListSize?: {
|
|
644
|
-
height: number;
|
|
645
|
-
width: number;
|
|
646
|
-
};
|
|
647
|
-
extraData?: any;
|
|
648
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
649
|
-
initialContainerPoolRatio?: number | undefined;
|
|
650
|
-
initialScrollOffset?: number;
|
|
651
|
-
initialScrollIndex?: number | {
|
|
652
|
-
index: number;
|
|
653
|
-
viewOffset?: number | undefined;
|
|
654
|
-
viewPosition?: number | undefined;
|
|
655
|
-
};
|
|
656
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
657
|
-
leadingItem: T;
|
|
658
|
-
}> | undefined;
|
|
659
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
660
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
661
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
662
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
663
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
664
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
665
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
666
|
-
maintainScrollAtEndThreshold?: number;
|
|
667
|
-
maintainVisibleContentPosition?: boolean;
|
|
668
|
-
numColumns?: number;
|
|
669
|
-
onEndReached?: ((info: {
|
|
670
|
-
distanceFromEnd: number;
|
|
671
|
-
}) => void) | null | undefined;
|
|
672
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
673
|
-
onItemSizeChanged?: ((info: {
|
|
674
|
-
size: number;
|
|
675
|
-
previous: number;
|
|
676
|
-
index: number;
|
|
677
|
-
itemKey: string;
|
|
678
|
-
itemData: T;
|
|
679
|
-
}) => void) | undefined;
|
|
680
|
-
onRefresh?: () => void;
|
|
681
|
-
onStartReached?: ((info: {
|
|
682
|
-
distanceFromStart: number;
|
|
683
|
-
}) => void) | null | undefined;
|
|
684
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
685
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
686
|
-
progressViewOffset?: number;
|
|
687
|
-
recycleItems?: boolean;
|
|
688
|
-
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
689
|
-
refreshing?: boolean;
|
|
690
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
691
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
692
|
-
suggestEstimatedItemSize?: boolean;
|
|
693
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
694
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
695
|
-
waitForInitialLayout?: boolean;
|
|
696
|
-
onLoad?: (info: {
|
|
697
|
-
elapsedTimeInMs: number;
|
|
698
|
-
}) => void;
|
|
699
|
-
snapToIndices?: number[];
|
|
700
|
-
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
|
|
701
|
-
ref?: React$1.Ref<LegendListRef>;
|
|
702
|
-
}) => React$1.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
703
|
-
alignItemsAtEnd?: boolean;
|
|
704
|
-
columnWrapperStyle?: ColumnWrapperStyle;
|
|
705
|
-
data: readonly T[];
|
|
706
|
-
drawDistance?: number;
|
|
707
|
-
estimatedItemSize?: number;
|
|
708
|
-
estimatedListSize?: {
|
|
709
|
-
height: number;
|
|
710
|
-
width: number;
|
|
711
|
-
};
|
|
712
|
-
extraData?: any;
|
|
713
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
714
|
-
initialContainerPoolRatio?: number | undefined;
|
|
715
|
-
initialScrollOffset?: number;
|
|
716
|
-
initialScrollIndex?: number | {
|
|
717
|
-
index: number;
|
|
718
|
-
viewOffset?: number | undefined;
|
|
719
|
-
viewPosition?: number | undefined;
|
|
720
|
-
};
|
|
721
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
722
|
-
leadingItem: T;
|
|
723
|
-
}> | undefined;
|
|
724
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
725
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
726
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
727
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
728
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
729
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
730
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
731
|
-
maintainScrollAtEndThreshold?: number;
|
|
732
|
-
maintainVisibleContentPosition?: boolean;
|
|
733
|
-
numColumns?: number;
|
|
734
|
-
onEndReached?: ((info: {
|
|
735
|
-
distanceFromEnd: number;
|
|
736
|
-
}) => void) | null | undefined;
|
|
737
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
738
|
-
onItemSizeChanged?: ((info: {
|
|
739
|
-
size: number;
|
|
740
|
-
previous: number;
|
|
741
|
-
index: number;
|
|
742
|
-
itemKey: string;
|
|
743
|
-
itemData: T;
|
|
744
|
-
}) => void) | undefined;
|
|
745
|
-
onRefresh?: () => void;
|
|
746
|
-
onStartReached?: ((info: {
|
|
747
|
-
distanceFromStart: number;
|
|
748
|
-
}) => void) | null | undefined;
|
|
749
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
750
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
751
|
-
progressViewOffset?: number;
|
|
752
|
-
recycleItems?: boolean;
|
|
753
|
-
refScrollView?: React$1.Ref<react_native.ScrollView>;
|
|
754
|
-
refreshing?: boolean;
|
|
755
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
756
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
757
|
-
suggestEstimatedItemSize?: boolean;
|
|
758
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
759
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
760
|
-
waitForInitialLayout?: boolean;
|
|
761
|
-
onLoad?: (info: {
|
|
762
|
-
elapsedTimeInMs: number;
|
|
763
|
-
}) => void;
|
|
764
|
-
snapToIndices?: number[];
|
|
765
|
-
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode>(props: LazyLegendListProps<ItemT, ListT> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
766
|
-
|
|
767
|
-
declare const LegendList: <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
|
|
768
|
-
alignItemsAtEnd?: boolean;
|
|
769
|
-
columnWrapperStyle?: ColumnWrapperStyle;
|
|
770
|
-
data: readonly T[];
|
|
771
|
-
drawDistance?: number;
|
|
772
|
-
estimatedItemSize?: number;
|
|
773
|
-
estimatedListSize?: {
|
|
774
|
-
height: number;
|
|
775
|
-
width: number;
|
|
776
|
-
};
|
|
777
|
-
extraData?: any;
|
|
778
|
-
getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
|
|
779
|
-
initialContainerPoolRatio?: number | undefined;
|
|
780
|
-
initialScrollOffset?: number;
|
|
781
|
-
initialScrollIndex?: number | {
|
|
782
|
-
index: number;
|
|
783
|
-
viewOffset?: number | undefined;
|
|
784
|
-
viewPosition?: number | undefined;
|
|
785
|
-
};
|
|
786
|
-
ItemSeparatorComponent?: React$1.ComponentType<{
|
|
787
|
-
leadingItem: T;
|
|
788
|
-
}> | undefined;
|
|
789
|
-
keyExtractor?: ((item: T, index: number) => string) | undefined;
|
|
790
|
-
ListEmptyComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
791
|
-
ListFooterComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
792
|
-
ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
793
|
-
ListHeaderComponent?: React$1.ComponentType<any> | React$1.ReactElement | null | undefined;
|
|
794
|
-
ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
|
|
795
|
-
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
796
|
-
maintainScrollAtEndThreshold?: number;
|
|
797
|
-
maintainVisibleContentPosition?: boolean;
|
|
798
|
-
numColumns?: number;
|
|
799
|
-
onEndReached?: ((info: {
|
|
800
|
-
distanceFromEnd: number;
|
|
801
|
-
}) => void) | null | undefined;
|
|
802
|
-
onEndReachedThreshold?: number | null | undefined;
|
|
803
|
-
onItemSizeChanged?: ((info: {
|
|
804
|
-
size: number;
|
|
805
|
-
previous: number;
|
|
806
|
-
index: number;
|
|
807
|
-
itemKey: string;
|
|
808
|
-
itemData: T;
|
|
809
|
-
}) => void) | undefined;
|
|
810
|
-
onRefresh?: () => void;
|
|
811
|
-
onStartReached?: ((info: {
|
|
812
|
-
distanceFromStart: number;
|
|
813
|
-
}) => void) | null | undefined;
|
|
814
|
-
onStartReachedThreshold?: number | null | undefined;
|
|
815
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
816
|
-
progressViewOffset?: number;
|
|
817
|
-
recycleItems?: boolean;
|
|
818
|
-
refScrollView?: React$1.Ref<ScrollView>;
|
|
819
|
-
refreshing?: boolean;
|
|
820
|
-
renderItem?: ((props: LegendListRenderItemProps<T>) => React$1.ReactNode) | React$1.ComponentType<LegendListRenderItemProps<T>> | undefined;
|
|
821
|
-
renderScrollComponent?: (props: react_native.ScrollViewProps) => React$1.ReactElement<react_native.ScrollViewProps>;
|
|
822
|
-
suggestEstimatedItemSize?: boolean;
|
|
823
|
-
viewabilityConfig?: ViewabilityConfig;
|
|
824
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
825
|
-
waitForInitialLayout?: boolean;
|
|
826
|
-
onLoad?: (info: {
|
|
827
|
-
elapsedTimeInMs: number;
|
|
828
|
-
}) => void;
|
|
829
|
-
snapToIndices?: number[];
|
|
830
|
-
} & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode;
|
|
612
|
+
declare const LegendList: (<T>(props: LegendListProps<T> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode) & {
|
|
613
|
+
displayName?: string;
|
|
614
|
+
};
|
|
831
615
|
|
|
832
|
-
declare function useViewability(callback: ViewabilityCallback
|
|
833
|
-
declare function useViewabilityAmount(callback: ViewabilityAmountCallback): void;
|
|
616
|
+
declare function useViewability<ItemT = any>(callback: ViewabilityCallback<ItemT>, configId?: string): void;
|
|
617
|
+
declare function useViewabilityAmount<ItemT = any>(callback: ViewabilityAmountCallback<ItemT>): void;
|
|
834
618
|
declare function useRecyclingEffect(effect: (info: LegendListRecyclingState<unknown>) => void | (() => void)): void;
|
|
835
619
|
declare function useRecyclingState<ItemT>(valueOrFun: ((info: LegendListRecyclingState<ItemT>) => ItemT) | ItemT): readonly [ItemT | null, Dispatch<SetStateAction<ItemT>>];
|
|
836
620
|
declare function useIsLastItem(): boolean;
|
|
@@ -838,5 +622,6 @@ declare function useListScrollSize(): {
|
|
|
838
622
|
width: number;
|
|
839
623
|
height: number;
|
|
840
624
|
};
|
|
625
|
+
declare function useSyncLayout(): () => void;
|
|
841
626
|
|
|
842
|
-
export { type ColumnWrapperStyle, type GetRenderedItem, type GetRenderedItemResult, type InternalState,
|
|
627
|
+
export { type ColumnWrapperStyle, type GetRenderedItem, type GetRenderedItemResult, type InternalState, LegendList, type LegendListProps, type LegendListPropsBase, type LegendListRecyclingState, type LegendListRef, type LegendListRenderItemProps, type MaintainScrollAtEndOptions, type OnViewableItemsChanged, type ScrollIndexWithOffset, type ScrollIndexWithOffsetPosition, type ScrollState, type TypedForwardRef, type TypedMemo, type ViewAmountToken, type ViewToken, type ViewabilityAmountCallback, type ViewabilityCallback, type ViewabilityConfig, type ViewabilityConfigCallbackPair, type ViewabilityConfigCallbackPairs, type ViewableRange, typedForwardRef, typedMemo, useIsLastItem, useListScrollSize, useRecyclingEffect, useRecyclingState, useSyncLayout, useViewability, useViewabilityAmount };
|