@legendapp/list 2.0.0-next.9 → 2.1.0-next.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 +123 -339
- package/index.d.ts +123 -339
- package/index.js +1497 -793
- package/index.mjs +1454 -750
- 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,20 +1,29 @@
|
|
|
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, ScrollView, Animated, LayoutRectangle, ScrollViewComponent, ScrollResponderMixin, StyleProp, ViewStyle, NativeSyntheticEvent, NativeScrollEvent, ScrollViewProps } from 'react-native';
|
|
6
4
|
import Animated$1 from 'react-native-reanimated';
|
|
7
5
|
|
|
8
|
-
type
|
|
6
|
+
type AnimatedValue = number;
|
|
7
|
+
|
|
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" | "lastPositionUpdate";
|
|
9
9
|
interface StateContext {
|
|
10
|
+
internalState: InternalState | undefined;
|
|
10
11
|
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
11
12
|
values: Map<ListenerType, any>;
|
|
12
13
|
mapViewabilityCallbacks: Map<string, ViewabilityCallback>;
|
|
13
14
|
mapViewabilityValues: Map<string, ViewToken>;
|
|
14
15
|
mapViewabilityAmountCallbacks: Map<number, ViewabilityAmountCallback>;
|
|
15
16
|
mapViewabilityAmountValues: Map<number, ViewAmountToken>;
|
|
17
|
+
mapViewabilityConfigStates: Map<string, {
|
|
18
|
+
viewableItems: ViewToken[];
|
|
19
|
+
start: number;
|
|
20
|
+
end: number;
|
|
21
|
+
previousStart: number;
|
|
22
|
+
previousEnd: number;
|
|
23
|
+
}>;
|
|
16
24
|
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
17
25
|
viewRefs: Map<number, React$1.RefObject<View>>;
|
|
26
|
+
animatedScrollY: AnimatedValue;
|
|
18
27
|
}
|
|
19
28
|
|
|
20
29
|
declare class ScrollAdjustHandler {
|
|
@@ -24,23 +33,51 @@ declare class ScrollAdjustHandler {
|
|
|
24
33
|
constructor(ctx: StateContext);
|
|
25
34
|
requestAdjust(add: number): void;
|
|
26
35
|
setMounted(): void;
|
|
36
|
+
getAdjust(): number;
|
|
27
37
|
}
|
|
28
38
|
|
|
29
|
-
type
|
|
39
|
+
type BaseScrollViewProps<TScrollView> = Omit<TScrollView, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children" | "onScroll">;
|
|
40
|
+
interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
41
|
+
/**
|
|
42
|
+
* Array of items to render in the list.
|
|
43
|
+
* @required when using data mode
|
|
44
|
+
*/
|
|
45
|
+
data: ReadonlyArray<ItemT>;
|
|
46
|
+
/**
|
|
47
|
+
* Function or React component to render each item in the list.
|
|
48
|
+
* Can be either:
|
|
49
|
+
* - A function: (props: LegendListRenderItemProps<ItemT>) => ReactNode
|
|
50
|
+
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
51
|
+
* @required when using data mode
|
|
52
|
+
*/
|
|
53
|
+
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
54
|
+
children?: never;
|
|
55
|
+
}
|
|
56
|
+
interface ChildrenModeProps {
|
|
57
|
+
/**
|
|
58
|
+
* React children elements to render as list items.
|
|
59
|
+
* Each child will be treated as an individual list item.
|
|
60
|
+
* @required when using children mode
|
|
61
|
+
*/
|
|
62
|
+
children: ReactNode;
|
|
63
|
+
data?: never;
|
|
64
|
+
renderItem?: never;
|
|
65
|
+
}
|
|
66
|
+
interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
30
67
|
/**
|
|
31
68
|
* If true, aligns items at the end of the list.
|
|
32
69
|
* @default false
|
|
33
70
|
*/
|
|
34
71
|
alignItemsAtEnd?: boolean;
|
|
35
72
|
/**
|
|
36
|
-
*
|
|
73
|
+
* If true, enables using average sizes for performance optimization.
|
|
74
|
+
* @default true
|
|
37
75
|
*/
|
|
38
|
-
|
|
76
|
+
enableAverages?: boolean;
|
|
39
77
|
/**
|
|
40
|
-
*
|
|
41
|
-
* @required
|
|
78
|
+
* Style applied to each column's wrapper view.
|
|
42
79
|
*/
|
|
43
|
-
|
|
80
|
+
columnWrapperStyle?: ColumnWrapperStyle;
|
|
44
81
|
/**
|
|
45
82
|
* Distance in pixels to pre-render items ahead of the visible area.
|
|
46
83
|
* @default 250
|
|
@@ -68,7 +105,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
68
105
|
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
69
106
|
* Use instead of FlatList's getItemLayout or FlashList overrideItemLayout if you want to have accurate initialScrollOffset, you should provide this function
|
|
70
107
|
*/
|
|
71
|
-
getEstimatedItemSize?: (index: number, item: ItemT) => number;
|
|
108
|
+
getEstimatedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
72
109
|
/**
|
|
73
110
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
74
111
|
* @default 2
|
|
@@ -86,7 +123,6 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
86
123
|
initialScrollIndex?: number | {
|
|
87
124
|
index: number;
|
|
88
125
|
viewOffset?: number | undefined;
|
|
89
|
-
viewPosition?: number | undefined;
|
|
90
126
|
};
|
|
91
127
|
/**
|
|
92
128
|
* Component to render between items, receiving the leading item as prop.
|
|
@@ -163,6 +199,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
163
199
|
* Function to call when the user pulls to refresh.
|
|
164
200
|
*/
|
|
165
201
|
onRefresh?: () => void;
|
|
202
|
+
onScroll?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
166
203
|
/**
|
|
167
204
|
* Called when scrolling reaches the start within onStartReachedThreshold.
|
|
168
205
|
*/
|
|
@@ -177,7 +214,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
177
214
|
/**
|
|
178
215
|
* Called when the viewability of items changes.
|
|
179
216
|
*/
|
|
180
|
-
onViewableItemsChanged?: OnViewableItemsChanged | undefined;
|
|
217
|
+
onViewableItemsChanged?: OnViewableItemsChanged<ItemT> | undefined;
|
|
181
218
|
/**
|
|
182
219
|
* Offset in pixels for the refresh indicator.
|
|
183
220
|
* @default 0
|
|
@@ -197,14 +234,6 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
197
234
|
* @default false
|
|
198
235
|
*/
|
|
199
236
|
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
237
|
/**
|
|
209
238
|
* Render custom ScrollView component.
|
|
210
239
|
* @default (props) => <ScrollView {...props} />
|
|
@@ -223,7 +252,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
223
252
|
/**
|
|
224
253
|
* Pairs of viewability configs and their callbacks for tracking visibility.
|
|
225
254
|
*/
|
|
226
|
-
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs | undefined;
|
|
255
|
+
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs<ItemT> | undefined;
|
|
227
256
|
/**
|
|
228
257
|
* If true, delays rendering until initial layout is complete.
|
|
229
258
|
* @default false
|
|
@@ -233,7 +262,18 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
|
|
|
233
262
|
elapsedTimeInMs: number;
|
|
234
263
|
}) => void;
|
|
235
264
|
snapToIndices?: number[];
|
|
236
|
-
|
|
265
|
+
/**
|
|
266
|
+
* Array of child indices determining which children get docked to the top of the screen when scrolling.
|
|
267
|
+
* For example, passing stickyIndices={[0]} will cause the first child to be fixed to the top of the scroll view.
|
|
268
|
+
* Not supported in conjunction with horizontal={true}.
|
|
269
|
+
* @default undefined
|
|
270
|
+
*/
|
|
271
|
+
stickyIndices?: number[];
|
|
272
|
+
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
273
|
+
getFixedItemSize?: (index: number, item: ItemT, type: TItemType) => number;
|
|
274
|
+
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
275
|
+
}
|
|
276
|
+
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
277
|
interface MaintainScrollAtEndOptions {
|
|
238
278
|
onLayout?: boolean;
|
|
239
279
|
onItemLayout?: boolean;
|
|
@@ -244,14 +284,14 @@ interface ColumnWrapperStyle {
|
|
|
244
284
|
gap?: number;
|
|
245
285
|
columnGap?: number;
|
|
246
286
|
}
|
|
247
|
-
type LegendListProps<ItemT> = LegendListPropsBase<ItemT,
|
|
287
|
+
type LegendListProps<ItemT = any> = LegendListPropsBase<ItemT, ComponentProps<typeof ScrollView>>;
|
|
248
288
|
interface InternalState {
|
|
249
289
|
positions: Map<string, number>;
|
|
250
290
|
columns: Map<string, number>;
|
|
251
291
|
sizes: Map<string, number>;
|
|
252
292
|
sizesKnown: Map<string, number>;
|
|
253
293
|
containerItemKeys: Set<string>;
|
|
254
|
-
|
|
294
|
+
containerItemTypes: Map<number, string>;
|
|
255
295
|
isStartReached: boolean;
|
|
256
296
|
isEndReached: boolean;
|
|
257
297
|
isAtEnd: boolean;
|
|
@@ -279,7 +319,7 @@ interface InternalState {
|
|
|
279
319
|
nativeMarginTop: number;
|
|
280
320
|
indexByKey: Map<string, number>;
|
|
281
321
|
idCache: Map<number, string>;
|
|
282
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
322
|
+
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs<any> | undefined;
|
|
283
323
|
scrollHistory: Array<{
|
|
284
324
|
scroll: number;
|
|
285
325
|
time: number;
|
|
@@ -314,59 +354,47 @@ interface InternalState {
|
|
|
314
354
|
}>;
|
|
315
355
|
refScroller: React.RefObject<ScrollView>;
|
|
316
356
|
loadStartTime: number;
|
|
317
|
-
initialScroll:
|
|
357
|
+
initialScroll: ScrollIndexWithOffset | undefined;
|
|
318
358
|
lastLayout: LayoutRectangle | undefined;
|
|
319
|
-
queuedItemSizeUpdates: {
|
|
320
|
-
itemKey: string;
|
|
321
|
-
sizeObj: {
|
|
322
|
-
width: number;
|
|
323
|
-
height: number;
|
|
324
|
-
};
|
|
325
|
-
}[];
|
|
326
|
-
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
359
|
timeoutSetPaddingTop?: any;
|
|
360
|
+
activeStickyIndex: number | undefined;
|
|
361
|
+
stickyContainers: Map<number, number>;
|
|
362
|
+
stickyContainerPool: Set<number>;
|
|
363
|
+
scrollProcessingEnabled: boolean;
|
|
364
|
+
onScrollRafScheduled?: boolean;
|
|
328
365
|
props: {
|
|
329
366
|
alignItemsAtEnd: boolean;
|
|
330
367
|
data: readonly any[];
|
|
331
368
|
estimatedItemSize: number | undefined;
|
|
332
|
-
getEstimatedItemSize:
|
|
369
|
+
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
370
|
+
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
371
|
+
getItemType: LegendListProps["getItemType"];
|
|
333
372
|
horizontal: boolean;
|
|
334
|
-
keyExtractor:
|
|
373
|
+
keyExtractor: LegendListProps["keyExtractor"];
|
|
335
374
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
336
375
|
maintainScrollAtEndThreshold: number | undefined;
|
|
337
376
|
maintainVisibleContentPosition: boolean;
|
|
338
|
-
onEndReached:
|
|
339
|
-
distanceFromEnd: number;
|
|
340
|
-
}) => void) | null | undefined) | undefined;
|
|
377
|
+
onEndReached: LegendListProps["onEndReached"];
|
|
341
378
|
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;
|
|
379
|
+
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
380
|
+
onLoad: LegendListProps["onLoad"];
|
|
381
|
+
onScroll: LegendListProps["onScroll"];
|
|
382
|
+
onStartReached: LegendListProps["onStartReached"];
|
|
356
383
|
onStartReachedThreshold: number | null | undefined;
|
|
384
|
+
recycleItems: boolean;
|
|
357
385
|
suggestEstimatedItemSize: boolean;
|
|
358
386
|
stylePaddingBottom: number | undefined;
|
|
359
|
-
renderItem:
|
|
360
|
-
initialScroll:
|
|
361
|
-
index: number;
|
|
362
|
-
viewOffset?: number;
|
|
363
|
-
viewPosition?: number;
|
|
364
|
-
} | undefined;
|
|
387
|
+
renderItem: LegendListProps["renderItem"];
|
|
388
|
+
initialScroll: ScrollIndexWithOffset | undefined;
|
|
365
389
|
scrollBuffer: number;
|
|
366
390
|
numColumns: number;
|
|
367
391
|
initialContainerPoolRatio: number;
|
|
368
392
|
stylePaddingTop: number | undefined;
|
|
369
393
|
snapToIndices: number[] | undefined;
|
|
394
|
+
stickyIndicesSet: Set<number>;
|
|
395
|
+
stickyIndicesArr: number[];
|
|
396
|
+
itemsAreEqual: LegendListProps["itemsAreEqual"];
|
|
397
|
+
enableAverages: boolean;
|
|
370
398
|
};
|
|
371
399
|
}
|
|
372
400
|
interface ViewableRange<T> {
|
|
@@ -376,24 +404,28 @@ interface ViewableRange<T> {
|
|
|
376
404
|
end: number;
|
|
377
405
|
items: T[];
|
|
378
406
|
}
|
|
379
|
-
interface LegendListRenderItemProps<ItemT> {
|
|
407
|
+
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
380
408
|
item: ItemT;
|
|
409
|
+
type: TItemType;
|
|
381
410
|
index: number;
|
|
411
|
+
data: readonly ItemT[];
|
|
382
412
|
extraData: any;
|
|
383
413
|
}
|
|
384
414
|
type ScrollState = {
|
|
385
415
|
contentLength: number;
|
|
416
|
+
data: readonly any[];
|
|
386
417
|
end: number;
|
|
387
418
|
endBuffered: number;
|
|
388
419
|
isAtEnd: boolean;
|
|
389
420
|
isAtStart: boolean;
|
|
421
|
+
positionAtIndex: (index: number) => number;
|
|
390
422
|
positions: Map<string, number>;
|
|
391
423
|
scroll: number;
|
|
392
424
|
scrollLength: number;
|
|
425
|
+
sizeAtIndex: (index: number) => number;
|
|
426
|
+
sizes: Map<string, number>;
|
|
393
427
|
start: number;
|
|
394
428
|
startBuffered: number;
|
|
395
|
-
sizes: Map<string, number>;
|
|
396
|
-
sizeAtIndex: (index: number) => number;
|
|
397
429
|
};
|
|
398
430
|
type LegendListRef = {
|
|
399
431
|
/**
|
|
@@ -440,9 +472,11 @@ type LegendListRef = {
|
|
|
440
472
|
* Scrolls to the end of the list.
|
|
441
473
|
* @param options - Options for scrolling.
|
|
442
474
|
* @param options.animated - If true, animates the scroll. Default: true.
|
|
475
|
+
* @param options.viewOffset - Offset from the target position.
|
|
443
476
|
*/
|
|
444
477
|
scrollToEnd(options?: {
|
|
445
478
|
animated?: boolean | undefined;
|
|
479
|
+
viewOffset?: number | undefined;
|
|
446
480
|
}): void;
|
|
447
481
|
/**
|
|
448
482
|
* Scrolls to a specific index in the list.
|
|
@@ -488,6 +522,11 @@ type LegendListRef = {
|
|
|
488
522
|
* @param animated - If true, uses Animated to animate the change.
|
|
489
523
|
*/
|
|
490
524
|
setVisibleContentAnchorOffset(value: number | ((value: number) => number)): void;
|
|
525
|
+
/**
|
|
526
|
+
* Sets whether scroll processing is enabled.
|
|
527
|
+
* @param enabled - If true, scroll processing is enabled.
|
|
528
|
+
*/
|
|
529
|
+
setScrollProcessingEnabled(enabled: boolean): void;
|
|
491
530
|
};
|
|
492
531
|
interface ViewToken<ItemT = any> {
|
|
493
532
|
item: ItemT;
|
|
@@ -503,14 +542,14 @@ interface ViewAmountToken<ItemT = any> extends ViewToken<ItemT> {
|
|
|
503
542
|
percentOfScroller: number;
|
|
504
543
|
scrollSize: number;
|
|
505
544
|
}
|
|
506
|
-
interface ViewabilityConfigCallbackPair {
|
|
545
|
+
interface ViewabilityConfigCallbackPair<ItemT> {
|
|
507
546
|
viewabilityConfig: ViewabilityConfig;
|
|
508
|
-
onViewableItemsChanged?: OnViewableItemsChanged
|
|
547
|
+
onViewableItemsChanged?: OnViewableItemsChanged<ItemT>;
|
|
509
548
|
}
|
|
510
|
-
type ViewabilityConfigCallbackPairs = ViewabilityConfigCallbackPair[];
|
|
511
|
-
type OnViewableItemsChanged = ((info: {
|
|
512
|
-
viewableItems: Array<ViewToken
|
|
513
|
-
changed: Array<ViewToken
|
|
549
|
+
type ViewabilityConfigCallbackPairs<ItemT> = ViewabilityConfigCallbackPair<ItemT>[];
|
|
550
|
+
type OnViewableItemsChanged<ItemT> = ((info: {
|
|
551
|
+
viewableItems: Array<ViewToken<ItemT>>;
|
|
552
|
+
changed: Array<ViewToken<ItemT>>;
|
|
514
553
|
}) => void) | null;
|
|
515
554
|
interface ViewabilityConfig {
|
|
516
555
|
/**
|
|
@@ -541,8 +580,8 @@ interface ViewabilityConfig {
|
|
|
541
580
|
*/
|
|
542
581
|
waitForInteraction?: boolean | undefined;
|
|
543
582
|
}
|
|
544
|
-
type ViewabilityCallback = (viewToken: ViewToken) => void;
|
|
545
|
-
type ViewabilityAmountCallback = (viewToken: ViewAmountToken) => void;
|
|
583
|
+
type ViewabilityCallback<ItemT = any> = (viewToken: ViewToken<ItemT>) => void;
|
|
584
|
+
type ViewabilityAmountCallback<ItemT = any> = (viewToken: ViewAmountToken<ItemT>) => void;
|
|
546
585
|
interface LegendListRecyclingState<T> {
|
|
547
586
|
item: T;
|
|
548
587
|
prevItem: T | undefined;
|
|
@@ -555,11 +594,13 @@ type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqua
|
|
|
555
594
|
displayName?: string;
|
|
556
595
|
};
|
|
557
596
|
declare const typedMemo: TypedMemo;
|
|
558
|
-
|
|
597
|
+
interface ScrollIndexWithOffset {
|
|
559
598
|
index: number;
|
|
560
|
-
viewOffset
|
|
561
|
-
|
|
562
|
-
|
|
599
|
+
viewOffset: number;
|
|
600
|
+
}
|
|
601
|
+
interface ScrollIndexWithOffsetPosition extends ScrollIndexWithOffset {
|
|
602
|
+
viewPosition: number;
|
|
603
|
+
}
|
|
563
604
|
type GetRenderedItemResult<ItemT> = {
|
|
564
605
|
index: number;
|
|
565
606
|
item: ItemT;
|
|
@@ -567,270 +608,12 @@ type GetRenderedItemResult<ItemT> = {
|
|
|
567
608
|
};
|
|
568
609
|
type GetRenderedItem = (key: string) => GetRenderedItemResult<any> | null;
|
|
569
610
|
|
|
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;
|
|
611
|
+
declare const LegendList: (<T>(props: LegendListProps<T> & React$1.RefAttributes<LegendListRef>) => React$1.ReactNode) & {
|
|
612
|
+
displayName?: string;
|
|
613
|
+
};
|
|
831
614
|
|
|
832
|
-
declare function useViewability(callback: ViewabilityCallback
|
|
833
|
-
declare function useViewabilityAmount(callback: ViewabilityAmountCallback): void;
|
|
615
|
+
declare function useViewability<ItemT = any>(callback: ViewabilityCallback<ItemT>, configId?: string): void;
|
|
616
|
+
declare function useViewabilityAmount<ItemT = any>(callback: ViewabilityAmountCallback<ItemT>): void;
|
|
834
617
|
declare function useRecyclingEffect(effect: (info: LegendListRecyclingState<unknown>) => void | (() => void)): void;
|
|
835
618
|
declare function useRecyclingState<ItemT>(valueOrFun: ((info: LegendListRecyclingState<ItemT>) => ItemT) | ItemT): readonly [ItemT | null, Dispatch<SetStateAction<ItemT>>];
|
|
836
619
|
declare function useIsLastItem(): boolean;
|
|
@@ -838,5 +621,6 @@ declare function useListScrollSize(): {
|
|
|
838
621
|
width: number;
|
|
839
622
|
height: number;
|
|
840
623
|
};
|
|
624
|
+
declare function useSyncLayout(): () => void;
|
|
841
625
|
|
|
842
|
-
export { type ColumnWrapperStyle, type GetRenderedItem, type GetRenderedItemResult, type InternalState,
|
|
626
|
+
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 };
|