@legendapp/list 3.0.0-beta.4 → 3.0.0-beta.40
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/CHANGELOG.md +19 -0
- package/README.md +8 -1
- package/animated.d.ts +607 -5
- package/animated.js +2 -2
- package/animated.mjs +1 -1
- package/index.d.ts +1192 -11
- package/index.js +1989 -946
- package/index.mjs +1988 -947
- package/index.native.js +1758 -866
- package/index.native.mjs +1740 -850
- package/keyboard-test.d.ts +206 -0
- package/keyboard-test.js +34 -0
- package/keyboard-test.mjs +13 -0
- package/keyboard.d.ts +206 -8
- package/keyboard.js +340 -32
- package/keyboard.mjs +343 -34
- package/package.json +52 -1
- package/{types-JPHClxiw.d.mts → react-native.d.ts} +399 -154
- package/{section-list.native.js → react-native.js} +1838 -1094
- package/{section-list.native.mjs → react-native.mjs} +1811 -1077
- package/{types-JPHClxiw.d.ts → react.d.ts} +456 -154
- package/react.js +4812 -0
- package/react.mjs +4782 -0
- package/reanimated.d.ts +618 -7
- package/reanimated.js +156 -30
- package/reanimated.mjs +155 -29
- package/section-list.d.ts +607 -5
- package/section-list.js +38 -3679
- package/section-list.mjs +34 -3676
- package/animated.d.mts +0 -9
- package/index.d.mts +0 -23
- package/index.native.d.mts +0 -23
- package/index.native.d.ts +0 -23
- package/keyboard-controller.d.mts +0 -12
- package/keyboard-controller.d.ts +0 -12
- package/keyboard-controller.js +0 -69
- package/keyboard-controller.mjs +0 -48
- package/keyboard.d.mts +0 -13
- package/reanimated.d.mts +0 -18
- package/section-list.d.mts +0 -113
- package/section-list.native.d.mts +0 -113
- package/section-list.native.d.ts +0 -113
- package/types-YNdphn_A.d.mts +0 -670
- package/types-YNdphn_A.d.ts +0 -670
|
@@ -1,15 +1,60 @@
|
|
|
1
|
-
import * as React
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import Animated$1 from 'react-native-reanimated';
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Key, Dispatch, SetStateAction } from 'react';
|
|
3
|
+
import { ScrollViewProps, NativeSyntheticEvent as NativeSyntheticEvent$1, NativeScrollEvent as NativeScrollEvent$1, ScrollView, StyleProp as StyleProp$1, ViewStyle as ViewStyle$1, ScrollViewComponent, ScrollResponderMixin, Insets as Insets$1, View } from 'react-native';
|
|
5
4
|
|
|
6
5
|
type AnimatedValue = number;
|
|
7
6
|
|
|
8
|
-
type
|
|
7
|
+
type LooseMeasureCallback = (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void;
|
|
8
|
+
interface LooseView {
|
|
9
|
+
measure?: (callback: LooseMeasureCallback) => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type ListenerType = "activeStickyIndex" | "debugComputedScroll" | "debugRawScroll" | "extraData" | "footerSize" | "headerSize" | "lastItemKeys" | "lastPositionUpdate" | "maintainVisibleContentPosition" | "numColumns" | "numContainers" | "numContainersPooled" | "otherAxisSize" | "readyToRender" | "scrollAdjust" | "scrollAdjustPending" | "scrollAdjustUserOffset" | "scrollSize" | "snapToOffsets" | "stylePaddingTop" | "totalSize" | `containerColumn${number}` | `containerSpan${number}` | `containerItemData${number}` | `containerItemKey${number}` | `containerPosition${number}` | `containerSticky${number}`;
|
|
13
|
+
type LegendListListenerType = Extract<ListenerType, "activeStickyIndex" | "footerSize" | "headerSize" | "lastItemKeys" | "lastPositionUpdate" | "numContainers" | "numContainersPooled" | "otherAxisSize" | "readyToRender" | "snapToOffsets" | "totalSize">;
|
|
14
|
+
type ListenerTypeValueMap = {
|
|
15
|
+
activeStickyIndex: number;
|
|
16
|
+
animatedScrollY: any;
|
|
17
|
+
debugComputedScroll: number;
|
|
18
|
+
debugRawScroll: number;
|
|
19
|
+
extraData: any;
|
|
20
|
+
footerSize: number;
|
|
21
|
+
headerSize: number;
|
|
22
|
+
lastItemKeys: string[];
|
|
23
|
+
lastPositionUpdate: number;
|
|
24
|
+
maintainVisibleContentPosition: MaintainVisibleContentPositionNormalized;
|
|
25
|
+
numColumns: number;
|
|
26
|
+
numContainers: number;
|
|
27
|
+
numContainersPooled: number;
|
|
28
|
+
otherAxisSize: number;
|
|
29
|
+
readyToRender: boolean;
|
|
30
|
+
scrollAdjust: number;
|
|
31
|
+
scrollAdjustPending: number;
|
|
32
|
+
scrollAdjustUserOffset: number;
|
|
33
|
+
scrollSize: {
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
};
|
|
37
|
+
snapToOffsets: number[];
|
|
38
|
+
stylePaddingTop: number;
|
|
39
|
+
totalSize: number;
|
|
40
|
+
} & {
|
|
41
|
+
[K in ListenerType as K extends `containerItemKey${number}` ? K : never]: string;
|
|
42
|
+
} & {
|
|
43
|
+
[K in ListenerType as K extends `containerItemData${number}` ? K : never]: any;
|
|
44
|
+
} & {
|
|
45
|
+
[K in ListenerType as K extends `containerPosition${number}` ? K : never]: number;
|
|
46
|
+
} & {
|
|
47
|
+
[K in ListenerType as K extends `containerColumn${number}` ? K : never]: number;
|
|
48
|
+
} & {
|
|
49
|
+
[K in ListenerType as K extends `containerSpan${number}` ? K : never]: number;
|
|
50
|
+
} & {
|
|
51
|
+
[K in ListenerType as K extends `containerSticky${number}` ? K : never]: boolean;
|
|
52
|
+
};
|
|
9
53
|
interface StateContext {
|
|
10
|
-
|
|
54
|
+
animatedScrollY: AnimatedValue;
|
|
55
|
+
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
56
|
+
contextNum: number;
|
|
11
57
|
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
12
|
-
values: Map<ListenerType, any>;
|
|
13
58
|
mapViewabilityCallbacks: Map<string, ViewabilityCallback>;
|
|
14
59
|
mapViewabilityValues: Map<string, ViewToken>;
|
|
15
60
|
mapViewabilityAmountCallbacks: Map<number, ViewabilityAmountCallback>;
|
|
@@ -21,22 +66,85 @@ interface StateContext {
|
|
|
21
66
|
previousStart: number;
|
|
22
67
|
previousEnd: number;
|
|
23
68
|
}>;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
69
|
+
positionListeners: Map<string, Set<(value: any) => void>>;
|
|
70
|
+
state: InternalState;
|
|
71
|
+
values: Map<ListenerType, any>;
|
|
72
|
+
viewRefs: Map<number, React.RefObject<LooseView | null>>;
|
|
27
73
|
}
|
|
28
74
|
|
|
29
75
|
declare class ScrollAdjustHandler {
|
|
30
76
|
private appliedAdjust;
|
|
31
77
|
private pendingAdjust;
|
|
32
|
-
private
|
|
33
|
-
private mounted;
|
|
78
|
+
private ctx;
|
|
34
79
|
constructor(ctx: StateContext);
|
|
35
80
|
requestAdjust(add: number): void;
|
|
36
|
-
setMounted(): void;
|
|
37
81
|
getAdjust(): number;
|
|
82
|
+
commitPendingAdjust(scrollTarget: ScrollTarget): void;
|
|
38
83
|
}
|
|
39
84
|
|
|
85
|
+
type BaseSharedValue<T = number> = {
|
|
86
|
+
get: () => T;
|
|
87
|
+
};
|
|
88
|
+
type StylesAsSharedValue<Style> = {
|
|
89
|
+
[key in keyof Style]: Style[key] | BaseSharedValue<Style[key]>;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
interface Insets {
|
|
93
|
+
top: number;
|
|
94
|
+
left: number;
|
|
95
|
+
bottom: number;
|
|
96
|
+
right: number;
|
|
97
|
+
}
|
|
98
|
+
interface LayoutRectangle {
|
|
99
|
+
x: number;
|
|
100
|
+
y: number;
|
|
101
|
+
width: number;
|
|
102
|
+
height: number;
|
|
103
|
+
}
|
|
104
|
+
interface NativeScrollEvent {
|
|
105
|
+
contentOffset: {
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
};
|
|
109
|
+
contentSize: {
|
|
110
|
+
width: number;
|
|
111
|
+
height: number;
|
|
112
|
+
};
|
|
113
|
+
layoutMeasurement: {
|
|
114
|
+
width: number;
|
|
115
|
+
height: number;
|
|
116
|
+
};
|
|
117
|
+
contentInset: Insets;
|
|
118
|
+
zoomScale: number;
|
|
119
|
+
}
|
|
120
|
+
interface NativeSyntheticEvent<T> {
|
|
121
|
+
nativeEvent: T;
|
|
122
|
+
}
|
|
123
|
+
type ViewStyle = Record<string, unknown>;
|
|
124
|
+
type StyleProp<T> = T | T[] | null | undefined | false;
|
|
125
|
+
interface ScrollEventTargetLike {
|
|
126
|
+
addEventListener(type: string, listener: (...args: any[]) => void): void;
|
|
127
|
+
removeEventListener(type: string, listener: (...args: any[]) => void): void;
|
|
128
|
+
}
|
|
129
|
+
interface ScrollableNodeLike {
|
|
130
|
+
scrollLeft?: number;
|
|
131
|
+
scrollTop?: number;
|
|
132
|
+
}
|
|
133
|
+
interface LegendListScrollerRef {
|
|
134
|
+
flashScrollIndicators(): void;
|
|
135
|
+
getCurrentScrollOffset?(): number;
|
|
136
|
+
getScrollEventTarget(): ScrollEventTargetLike | null;
|
|
137
|
+
getScrollableNode(): ScrollableNodeLike | null;
|
|
138
|
+
getScrollResponder(): unknown;
|
|
139
|
+
scrollTo(options: {
|
|
140
|
+
animated?: boolean;
|
|
141
|
+
x?: number;
|
|
142
|
+
y?: number;
|
|
143
|
+
}): void;
|
|
144
|
+
scrollToEnd(options?: {
|
|
145
|
+
animated?: boolean;
|
|
146
|
+
}): void;
|
|
147
|
+
}
|
|
40
148
|
type BaseScrollViewProps<TScrollView> = Omit<TScrollView, "contentOffset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children" | "onScroll">;
|
|
41
149
|
interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
42
150
|
/**
|
|
@@ -51,7 +159,7 @@ interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
|
51
159
|
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
52
160
|
* @required when using data mode
|
|
53
161
|
*/
|
|
54
|
-
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
162
|
+
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => React.ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
55
163
|
children?: never;
|
|
56
164
|
}
|
|
57
165
|
interface ChildrenModeProps {
|
|
@@ -60,7 +168,7 @@ interface ChildrenModeProps {
|
|
|
60
168
|
* Each child will be treated as an individual list item.
|
|
61
169
|
* @required when using children mode
|
|
62
170
|
*/
|
|
63
|
-
children: ReactNode;
|
|
171
|
+
children: React.ReactNode;
|
|
64
172
|
data?: never;
|
|
65
173
|
renderItem?: never;
|
|
66
174
|
}
|
|
@@ -71,10 +179,10 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
71
179
|
*/
|
|
72
180
|
alignItemsAtEnd?: boolean;
|
|
73
181
|
/**
|
|
74
|
-
*
|
|
75
|
-
* @default
|
|
182
|
+
* Keeps selected items mounted even when they scroll out of view.
|
|
183
|
+
* @default undefined
|
|
76
184
|
*/
|
|
77
|
-
|
|
185
|
+
alwaysRender?: AlwaysRenderConfig;
|
|
78
186
|
/**
|
|
79
187
|
* Style applied to each column's wrapper view.
|
|
80
188
|
*/
|
|
@@ -111,7 +219,14 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
111
219
|
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
112
220
|
* Use instead of FlatList's getItemLayout or FlashList overrideItemLayout if you want to have accurate initialScrollOffset, you should provide this function
|
|
113
221
|
*/
|
|
114
|
-
getEstimatedItemSize?: (
|
|
222
|
+
getEstimatedItemSize?: (item: ItemT, index: number, type: TItemType) => number;
|
|
223
|
+
/**
|
|
224
|
+
* Customize layout for multi-column lists, such as allowing items to span multiple columns.
|
|
225
|
+
* Similar to FlashList's overrideItemLayout.
|
|
226
|
+
*/
|
|
227
|
+
overrideItemLayout?: (layout: {
|
|
228
|
+
span?: number;
|
|
229
|
+
}, item: ItemT, index: number, maxColumns: number, extraData?: any) => void;
|
|
115
230
|
/**
|
|
116
231
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
117
232
|
* @default 2
|
|
@@ -129,6 +244,7 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
129
244
|
initialScrollIndex?: number | {
|
|
130
245
|
index: number;
|
|
131
246
|
viewOffset?: number | undefined;
|
|
247
|
+
viewPosition?: number | undefined;
|
|
132
248
|
};
|
|
133
249
|
/**
|
|
134
250
|
* When true, the list initializes scrolled to the last item.
|
|
@@ -177,11 +293,19 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
177
293
|
*/
|
|
178
294
|
maintainScrollAtEndThreshold?: number;
|
|
179
295
|
/**
|
|
180
|
-
*
|
|
181
|
-
*
|
|
296
|
+
* Maintains visibility of content.
|
|
297
|
+
* - scroll (default: true) stabilizes during size/layout changes while scrolling.
|
|
298
|
+
* - data (default: false) stabilizes when the data array changes; passing true also sets the RN maintainVisibleContentPosition prop.
|
|
299
|
+
* - shouldRestorePosition can opt out specific items from data-change anchoring.
|
|
300
|
+
* - undefined (default) enables scroll stabilization but skips data-change anchoring.
|
|
301
|
+
* - true enables both behaviors; false disables both.
|
|
302
|
+
*/
|
|
303
|
+
maintainVisibleContentPosition?: boolean | MaintainVisibleContentPositionConfig<ItemT>;
|
|
304
|
+
/**
|
|
305
|
+
* Web only: when true, listens to window/body scrolling instead of rendering a scrollable list container.
|
|
182
306
|
* @default false
|
|
183
307
|
*/
|
|
184
|
-
|
|
308
|
+
useWindowScroll?: boolean;
|
|
185
309
|
/**
|
|
186
310
|
* Number of columns to render items in.
|
|
187
311
|
* @default 1
|
|
@@ -208,6 +332,10 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
208
332
|
itemKey: string;
|
|
209
333
|
itemData: ItemT;
|
|
210
334
|
}) => void;
|
|
335
|
+
/**
|
|
336
|
+
* Called when list layout metrics change.
|
|
337
|
+
*/
|
|
338
|
+
onMetricsChange?: (metrics: LegendListMetrics) => void;
|
|
211
339
|
/**
|
|
212
340
|
* Function to call when the user pulls to refresh.
|
|
213
341
|
*/
|
|
@@ -248,7 +376,7 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
248
376
|
/**
|
|
249
377
|
* Ref to the underlying ScrollView component.
|
|
250
378
|
*/
|
|
251
|
-
refScrollView?: React.Ref<
|
|
379
|
+
refScrollView?: React.Ref<any>;
|
|
252
380
|
/**
|
|
253
381
|
* If true, shows a refresh indicator.
|
|
254
382
|
* @default false
|
|
@@ -259,7 +387,7 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
259
387
|
* Note: When using `stickyHeaderIndices`, you must provide an Animated ScrollView component.
|
|
260
388
|
* @default (props) => <ScrollView {...props} />
|
|
261
389
|
*/
|
|
262
|
-
renderScrollComponent?: (props:
|
|
390
|
+
renderScrollComponent?: (props: any) => React.ReactElement | null;
|
|
263
391
|
/**
|
|
264
392
|
* This will log a suggested estimatedItemSize.
|
|
265
393
|
* @required
|
|
@@ -294,11 +422,46 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
294
422
|
* @deprecated Use stickyHeaderIndices instead for parity with React Native.
|
|
295
423
|
*/
|
|
296
424
|
stickyIndices?: number[];
|
|
425
|
+
/**
|
|
426
|
+
* Configuration for sticky headers.
|
|
427
|
+
* @default undefined
|
|
428
|
+
*/
|
|
429
|
+
stickyHeaderConfig?: StickyHeaderConfig;
|
|
297
430
|
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
298
|
-
getFixedItemSize?: (
|
|
431
|
+
getFixedItemSize?: (item: ItemT, index: number, type: TItemType) => number | undefined;
|
|
299
432
|
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
300
433
|
}
|
|
301
|
-
type LegendListPropsBase<ItemT,
|
|
434
|
+
type LegendListPropsBase<ItemT, TScrollViewProps = Record<string, any>, TItemType extends string | undefined = string | undefined> = BaseScrollViewProps<TScrollViewProps> & LegendListSpecificProps<ItemT, TItemType> & (DataModeProps<ItemT, TItemType> | ChildrenModeProps);
|
|
435
|
+
type LegendListPropsInternal = LegendListSpecificProps<any, string | undefined> & DataModeProps<any, string | undefined>;
|
|
436
|
+
interface MaintainVisibleContentPositionConfig<ItemT = any> {
|
|
437
|
+
data?: boolean;
|
|
438
|
+
size?: boolean;
|
|
439
|
+
shouldRestorePosition?: (item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
440
|
+
}
|
|
441
|
+
interface MaintainVisibleContentPositionNormalized<ItemT = any> {
|
|
442
|
+
data: boolean;
|
|
443
|
+
size: boolean;
|
|
444
|
+
shouldRestorePosition?: (item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
445
|
+
}
|
|
446
|
+
interface StickyHeaderConfig {
|
|
447
|
+
/**
|
|
448
|
+
* Specifies how far from the top edge sticky headers should start sticking.
|
|
449
|
+
* Useful for scenarios with a fixed navbar or header, where sticky elements pin below it..
|
|
450
|
+
* @default 0
|
|
451
|
+
*/
|
|
452
|
+
offset?: number;
|
|
453
|
+
/**
|
|
454
|
+
* Component to render as a backdrop behind the sticky header.
|
|
455
|
+
* @default undefined
|
|
456
|
+
*/
|
|
457
|
+
backdropComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
|
|
458
|
+
}
|
|
459
|
+
interface AlwaysRenderConfig {
|
|
460
|
+
top?: number;
|
|
461
|
+
bottom?: number;
|
|
462
|
+
indices?: number[];
|
|
463
|
+
keys?: string[];
|
|
464
|
+
}
|
|
302
465
|
interface MaintainScrollAtEndOptions {
|
|
303
466
|
onLayout?: boolean;
|
|
304
467
|
onItemLayout?: boolean;
|
|
@@ -309,7 +472,10 @@ interface ColumnWrapperStyle {
|
|
|
309
472
|
gap?: number;
|
|
310
473
|
columnGap?: number;
|
|
311
474
|
}
|
|
312
|
-
|
|
475
|
+
interface LegendListMetrics {
|
|
476
|
+
headerSize: number;
|
|
477
|
+
footerSize: number;
|
|
478
|
+
}
|
|
313
479
|
interface ThresholdSnapshot {
|
|
314
480
|
scrollPosition: number;
|
|
315
481
|
contentSize?: number;
|
|
@@ -317,167 +483,202 @@ interface ThresholdSnapshot {
|
|
|
317
483
|
atThreshold: boolean;
|
|
318
484
|
}
|
|
319
485
|
interface ScrollTarget {
|
|
320
|
-
offset: number;
|
|
321
|
-
index?: number;
|
|
322
|
-
viewOffset?: number;
|
|
323
|
-
viewPosition?: number;
|
|
324
486
|
animated?: boolean;
|
|
487
|
+
index?: number;
|
|
325
488
|
isInitialScroll?: boolean;
|
|
489
|
+
itemSize?: number;
|
|
490
|
+
offset: number;
|
|
326
491
|
precomputedWithViewOffset?: boolean;
|
|
492
|
+
viewOffset?: number;
|
|
493
|
+
viewPosition?: number;
|
|
327
494
|
}
|
|
328
495
|
interface InternalState {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
496
|
+
activeStickyIndex: number | undefined;
|
|
497
|
+
adjustingFromInitialMount?: number;
|
|
498
|
+
animFrameCheckFinishedScroll?: any;
|
|
499
|
+
averageSizes: Record<string, {
|
|
500
|
+
num: number;
|
|
501
|
+
avg: number;
|
|
502
|
+
}>;
|
|
503
|
+
columns: Array<number | undefined>;
|
|
504
|
+
columnSpans: Array<number | undefined>;
|
|
505
|
+
containerItemKeys: Map<string, number>;
|
|
334
506
|
containerItemTypes: Map<number, string>;
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
startBufferedId?: string;
|
|
343
|
-
startNoBuffer: number;
|
|
507
|
+
dataChangeEpoch: number;
|
|
508
|
+
dataChangeNeedsScrollUpdate: boolean;
|
|
509
|
+
didColumnsChange?: boolean;
|
|
510
|
+
didDataChange?: boolean;
|
|
511
|
+
didFinishInitialScroll?: boolean;
|
|
512
|
+
didContainersLayout?: boolean;
|
|
513
|
+
enableScrollForNextCalculateItemsInView: boolean;
|
|
344
514
|
endBuffered: number;
|
|
345
515
|
endNoBuffer: number;
|
|
516
|
+
endReachedSnapshot: ThresholdSnapshot | undefined;
|
|
346
517
|
firstFullyOnScreenIndex: number;
|
|
347
|
-
|
|
348
|
-
scrollPending: number;
|
|
349
|
-
scroll: number;
|
|
350
|
-
scrollTime: number;
|
|
351
|
-
scrollPrev: number;
|
|
352
|
-
scrollPrevTime: number;
|
|
353
|
-
scrollAdjustHandler: ScrollAdjustHandler;
|
|
354
|
-
triggerCalculateItemsInView?: (params?: {
|
|
355
|
-
doMVCP?: boolean;
|
|
356
|
-
dataChanged?: boolean;
|
|
357
|
-
forceFullItemPositions?: boolean;
|
|
358
|
-
}) => void;
|
|
359
|
-
maintainingScrollAtEnd?: boolean;
|
|
360
|
-
totalSize: number;
|
|
361
|
-
otherAxisSize?: number;
|
|
362
|
-
timeouts: Set<number>;
|
|
363
|
-
timeoutSizeMessage: any;
|
|
364
|
-
nativeMarginTop: number;
|
|
365
|
-
indexByKey: Map<string, number>;
|
|
518
|
+
hasScrolled?: boolean;
|
|
366
519
|
idCache: string[];
|
|
367
|
-
|
|
368
|
-
scrollHistory: Array<{
|
|
369
|
-
scroll: number;
|
|
370
|
-
time: number;
|
|
371
|
-
}>;
|
|
372
|
-
lastScrollAdjustForHistory?: number;
|
|
373
|
-
startReachedSnapshot: ThresholdSnapshot | undefined;
|
|
374
|
-
endReachedSnapshot: ThresholdSnapshot | undefined;
|
|
375
|
-
scrollForNextCalculateItemsInView: {
|
|
376
|
-
top: number;
|
|
377
|
-
bottom: number;
|
|
378
|
-
} | undefined;
|
|
379
|
-
enableScrollForNextCalculateItemsInView: boolean;
|
|
380
|
-
minIndexSizeChanged: number | undefined;
|
|
381
|
-
queuedInitialLayout?: boolean | undefined;
|
|
382
|
-
queuedCalculateItemsInView: number | undefined;
|
|
383
|
-
dataChangeNeedsScrollUpdate: boolean;
|
|
384
|
-
previousData?: readonly unknown[];
|
|
385
|
-
didColumnsChange?: boolean;
|
|
386
|
-
didDataChange?: boolean;
|
|
387
|
-
isFirst?: boolean;
|
|
388
|
-
lastBatchingAction: number;
|
|
520
|
+
idsInView: string[];
|
|
389
521
|
ignoreScrollFromMVCP?: {
|
|
390
522
|
lt?: number;
|
|
391
523
|
gt?: number;
|
|
392
524
|
};
|
|
393
525
|
ignoreScrollFromMVCPIgnored?: boolean;
|
|
394
526
|
ignoreScrollFromMVCPTimeout?: any;
|
|
395
|
-
|
|
396
|
-
averageSizes: Record<string, {
|
|
397
|
-
num: number;
|
|
398
|
-
avg: number;
|
|
399
|
-
}>;
|
|
400
|
-
refScroller: React.RefObject<ScrollView>;
|
|
401
|
-
loadStartTime: number;
|
|
402
|
-
initialScroll: ScrollIndexWithOffsetAndContentOffset | undefined;
|
|
527
|
+
indexByKey: Map<string, number>;
|
|
403
528
|
initialAnchor?: InitialScrollAnchor;
|
|
529
|
+
initialScroll: ScrollIndexWithOffsetAndContentOffset | undefined;
|
|
530
|
+
isAtEnd: boolean;
|
|
531
|
+
isAtStart: boolean;
|
|
532
|
+
isEndReached: boolean | null;
|
|
533
|
+
isFirst?: boolean;
|
|
534
|
+
isStartReached: boolean | null;
|
|
535
|
+
lastBatchingAction: number;
|
|
404
536
|
lastLayout: LayoutRectangle | undefined;
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
537
|
+
lastScrollAdjustForHistory?: number;
|
|
538
|
+
lastScrollDelta: number;
|
|
539
|
+
loadStartTime: number;
|
|
540
|
+
maintainingScrollAtEnd?: boolean;
|
|
541
|
+
minIndexSizeChanged: number | undefined;
|
|
542
|
+
mvcpAnchorLock?: {
|
|
543
|
+
id: string;
|
|
544
|
+
position: number;
|
|
545
|
+
quietPasses: number;
|
|
546
|
+
expiresAt: number;
|
|
547
|
+
};
|
|
548
|
+
contentInsetOverride?: Partial<Insets> | null;
|
|
549
|
+
nativeContentInset?: Insets;
|
|
550
|
+
nativeMarginTop: number;
|
|
551
|
+
needsOtherAxisSize?: boolean;
|
|
552
|
+
otherAxisSize?: number;
|
|
410
553
|
pendingTotalSize?: number;
|
|
411
|
-
|
|
554
|
+
pendingScrollResolve?: (() => void) | undefined;
|
|
555
|
+
positions: Array<number | undefined>;
|
|
556
|
+
previousData?: readonly unknown[];
|
|
557
|
+
queuedCalculateItemsInView: number | undefined;
|
|
558
|
+
queuedMVCPRecalculate?: number;
|
|
559
|
+
queuedInitialLayout?: boolean | undefined;
|
|
560
|
+
refScroller: React.RefObject<LegendListScrollerRef | null>;
|
|
561
|
+
scroll: number;
|
|
562
|
+
scrollAdjustHandler: ScrollAdjustHandler;
|
|
563
|
+
scrollForNextCalculateItemsInView: {
|
|
564
|
+
top: number | null;
|
|
565
|
+
bottom: number | null;
|
|
566
|
+
} | undefined;
|
|
567
|
+
scrollHistory: Array<{
|
|
568
|
+
scroll: number;
|
|
569
|
+
time: number;
|
|
570
|
+
}>;
|
|
571
|
+
scrollingTo?: ScrollTarget | undefined;
|
|
572
|
+
scrollLastCalculate?: number;
|
|
573
|
+
scrollLength: number;
|
|
574
|
+
scrollPending: number;
|
|
575
|
+
scrollPrev: number;
|
|
576
|
+
scrollPrevTime: number;
|
|
577
|
+
scrollProcessingEnabled: boolean;
|
|
578
|
+
scrollTime: number;
|
|
579
|
+
sizes: Map<string, number>;
|
|
580
|
+
sizesKnown: Map<string, number>;
|
|
581
|
+
startBuffered: number;
|
|
582
|
+
startBufferedId?: string;
|
|
583
|
+
startNoBuffer: number;
|
|
584
|
+
startReachedSnapshotDataChangeEpoch: number | undefined;
|
|
585
|
+
startReachedSnapshot: ThresholdSnapshot | undefined;
|
|
586
|
+
stickyContainerPool: Set<number>;
|
|
587
|
+
stickyContainers: Map<number, number>;
|
|
588
|
+
timeouts: Set<number>;
|
|
589
|
+
timeoutSetPaddingTop?: any;
|
|
590
|
+
timeoutSizeMessage: any;
|
|
591
|
+
timeoutCheckFinishedScrollFallback?: any;
|
|
592
|
+
totalSize: number;
|
|
593
|
+
triggerCalculateItemsInView?: (params?: {
|
|
594
|
+
doMVCP?: boolean;
|
|
595
|
+
dataChanged?: boolean;
|
|
596
|
+
forceFullItemPositions?: boolean;
|
|
597
|
+
}) => void;
|
|
598
|
+
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs<any> | undefined;
|
|
412
599
|
props: {
|
|
413
600
|
alignItemsAtEnd: boolean;
|
|
601
|
+
animatedProps: StylesAsSharedValue<Record<string, any>>;
|
|
602
|
+
alwaysRender: AlwaysRenderConfig | undefined;
|
|
603
|
+
alwaysRenderIndicesArr: number[];
|
|
604
|
+
alwaysRenderIndicesSet: Set<number>;
|
|
605
|
+
contentInset: Insets | undefined;
|
|
414
606
|
data: readonly any[];
|
|
415
607
|
dataVersion: Key | undefined;
|
|
608
|
+
drawDistance: number;
|
|
416
609
|
estimatedItemSize: number | undefined;
|
|
417
|
-
getEstimatedItemSize:
|
|
418
|
-
getFixedItemSize:
|
|
419
|
-
getItemType:
|
|
610
|
+
getEstimatedItemSize: LegendListPropsInternal["getEstimatedItemSize"];
|
|
611
|
+
getFixedItemSize: LegendListPropsInternal["getFixedItemSize"];
|
|
612
|
+
getItemType: LegendListPropsInternal["getItemType"];
|
|
420
613
|
horizontal: boolean;
|
|
421
|
-
|
|
614
|
+
initialContainerPoolRatio: number;
|
|
615
|
+
itemsAreEqual: LegendListPropsInternal["itemsAreEqual"];
|
|
616
|
+
keyExtractor: LegendListPropsInternal["keyExtractor"];
|
|
422
617
|
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
423
618
|
maintainScrollAtEndThreshold: number | undefined;
|
|
424
|
-
maintainVisibleContentPosition:
|
|
425
|
-
|
|
619
|
+
maintainVisibleContentPosition: MaintainVisibleContentPositionNormalized;
|
|
620
|
+
numColumns: number;
|
|
621
|
+
onEndReached: LegendListPropsInternal["onEndReached"];
|
|
426
622
|
onEndReachedThreshold: number | null | undefined;
|
|
427
|
-
onItemSizeChanged:
|
|
428
|
-
onLoad:
|
|
429
|
-
onScroll:
|
|
430
|
-
onStartReached:
|
|
623
|
+
onItemSizeChanged: LegendListPropsInternal["onItemSizeChanged"];
|
|
624
|
+
onLoad: LegendListPropsInternal["onLoad"];
|
|
625
|
+
onScroll: LegendListPropsInternal["onScroll"];
|
|
626
|
+
onStartReached: LegendListPropsInternal["onStartReached"];
|
|
431
627
|
onStartReachedThreshold: number | null | undefined;
|
|
432
|
-
onStickyHeaderChange:
|
|
628
|
+
onStickyHeaderChange: LegendListPropsInternal["onStickyHeaderChange"];
|
|
629
|
+
overrideItemLayout: LegendListPropsInternal["overrideItemLayout"];
|
|
433
630
|
recycleItems: boolean;
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
renderItem: LegendListProps["renderItem"];
|
|
437
|
-
scrollBuffer: number;
|
|
438
|
-
numColumns: number;
|
|
439
|
-
initialContainerPoolRatio: number;
|
|
440
|
-
stylePaddingTop: number | undefined;
|
|
631
|
+
renderItem: LegendListPropsInternal["renderItem"];
|
|
632
|
+
scrollBuffer?: number;
|
|
441
633
|
snapToIndices: number[] | undefined;
|
|
442
|
-
|
|
634
|
+
positionComponentInternal: React.ComponentType<any> | undefined;
|
|
635
|
+
stickyPositionComponentInternal: React.ComponentType<any> | undefined;
|
|
443
636
|
stickyIndicesArr: number[];
|
|
444
|
-
|
|
445
|
-
|
|
637
|
+
stickyIndicesSet: Set<number>;
|
|
638
|
+
stylePaddingBottom: number | undefined;
|
|
639
|
+
stylePaddingTop: number | undefined;
|
|
640
|
+
suggestEstimatedItemSize: boolean;
|
|
641
|
+
useWindowScroll: boolean;
|
|
446
642
|
};
|
|
447
643
|
}
|
|
448
644
|
interface ViewableRange<T> {
|
|
449
|
-
startBuffered: number;
|
|
450
|
-
start: number;
|
|
451
|
-
endBuffered: number;
|
|
452
645
|
end: number;
|
|
646
|
+
endBuffered: number;
|
|
453
647
|
items: T[];
|
|
648
|
+
start: number;
|
|
649
|
+
startBuffered: number;
|
|
454
650
|
}
|
|
455
651
|
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
456
|
-
item: ItemT;
|
|
457
|
-
type: TItemType;
|
|
458
|
-
index: number;
|
|
459
652
|
data: readonly ItemT[];
|
|
460
653
|
extraData: any;
|
|
654
|
+
index: number;
|
|
655
|
+
item: ItemT;
|
|
656
|
+
type: TItemType;
|
|
461
657
|
}
|
|
462
|
-
type
|
|
463
|
-
activeStickyIndex: number
|
|
658
|
+
type LegendListState$1 = {
|
|
659
|
+
activeStickyIndex: number;
|
|
464
660
|
contentLength: number;
|
|
465
661
|
data: readonly any[];
|
|
466
|
-
elementAtIndex: (index: number) =>
|
|
662
|
+
elementAtIndex: (index: number) => any;
|
|
467
663
|
end: number;
|
|
468
664
|
endBuffered: number;
|
|
469
665
|
isAtEnd: boolean;
|
|
470
666
|
isAtStart: boolean;
|
|
667
|
+
isEndReached: boolean;
|
|
668
|
+
isStartReached: boolean;
|
|
669
|
+
listen: <T extends LegendListListenerType>(listenerType: T, callback: (value: ListenerTypeValueMap[T]) => void) => () => void;
|
|
670
|
+
listenToPosition: (key: string, callback: (value: number) => void) => () => void;
|
|
471
671
|
positionAtIndex: (index: number) => number;
|
|
472
|
-
|
|
672
|
+
positionByKey: (key: string) => number | undefined;
|
|
473
673
|
scroll: number;
|
|
474
674
|
scrollLength: number;
|
|
675
|
+
scrollVelocity: number;
|
|
475
676
|
sizeAtIndex: (index: number) => number;
|
|
476
677
|
sizes: Map<string, number>;
|
|
477
678
|
start: number;
|
|
478
679
|
startBuffered: number;
|
|
479
680
|
};
|
|
480
|
-
type LegendListRef = {
|
|
681
|
+
type LegendListRef$1 = {
|
|
481
682
|
/**
|
|
482
683
|
* Displays the scroll indicators momentarily.
|
|
483
684
|
*/
|
|
@@ -485,7 +686,7 @@ type LegendListRef = {
|
|
|
485
686
|
/**
|
|
486
687
|
* Returns the native ScrollView component reference.
|
|
487
688
|
*/
|
|
488
|
-
getNativeScrollRef():
|
|
689
|
+
getNativeScrollRef(): any;
|
|
489
690
|
/**
|
|
490
691
|
* Returns the scroll responder instance for handling scroll events.
|
|
491
692
|
*/
|
|
@@ -493,11 +694,11 @@ type LegendListRef = {
|
|
|
493
694
|
/**
|
|
494
695
|
* Returns the ScrollResponderMixin for advanced scroll handling.
|
|
495
696
|
*/
|
|
496
|
-
getScrollResponder():
|
|
697
|
+
getScrollResponder(): any;
|
|
497
698
|
/**
|
|
498
699
|
* Returns the internal state of the scroll virtualization.
|
|
499
700
|
*/
|
|
500
|
-
getState():
|
|
701
|
+
getState(): LegendListState$1;
|
|
501
702
|
/**
|
|
502
703
|
* Scrolls a specific index into view.
|
|
503
704
|
* @param params - Parameters for scrolling.
|
|
@@ -507,7 +708,7 @@ type LegendListRef = {
|
|
|
507
708
|
scrollIndexIntoView(params: {
|
|
508
709
|
animated?: boolean | undefined;
|
|
509
710
|
index: number;
|
|
510
|
-
}): void
|
|
711
|
+
}): Promise<void>;
|
|
511
712
|
/**
|
|
512
713
|
* Scrolls a specific index into view.
|
|
513
714
|
* @param params - Parameters for scrolling.
|
|
@@ -517,7 +718,7 @@ type LegendListRef = {
|
|
|
517
718
|
scrollItemIntoView(params: {
|
|
518
719
|
animated?: boolean | undefined;
|
|
519
720
|
item: any;
|
|
520
|
-
}): void
|
|
721
|
+
}): Promise<void>;
|
|
521
722
|
/**
|
|
522
723
|
* Scrolls to the end of the list.
|
|
523
724
|
* @param options - Options for scrolling.
|
|
@@ -527,7 +728,7 @@ type LegendListRef = {
|
|
|
527
728
|
scrollToEnd(options?: {
|
|
528
729
|
animated?: boolean | undefined;
|
|
529
730
|
viewOffset?: number | undefined;
|
|
530
|
-
}): void
|
|
731
|
+
}): Promise<void>;
|
|
531
732
|
/**
|
|
532
733
|
* Scrolls to a specific index in the list.
|
|
533
734
|
* @param params - Parameters for scrolling.
|
|
@@ -541,7 +742,7 @@ type LegendListRef = {
|
|
|
541
742
|
index: number;
|
|
542
743
|
viewOffset?: number | undefined;
|
|
543
744
|
viewPosition?: number | undefined;
|
|
544
|
-
}): void
|
|
745
|
+
}): Promise<void>;
|
|
545
746
|
/**
|
|
546
747
|
* Scrolls to a specific item in the list.
|
|
547
748
|
* @param params - Parameters for scrolling.
|
|
@@ -555,7 +756,7 @@ type LegendListRef = {
|
|
|
555
756
|
item: any;
|
|
556
757
|
viewOffset?: number | undefined;
|
|
557
758
|
viewPosition?: number | undefined;
|
|
558
|
-
}): void
|
|
759
|
+
}): Promise<void>;
|
|
559
760
|
/**
|
|
560
761
|
* Scrolls to a specific offset in pixels.
|
|
561
762
|
* @param params - Parameters for scrolling.
|
|
@@ -565,36 +766,49 @@ type LegendListRef = {
|
|
|
565
766
|
scrollToOffset(params: {
|
|
566
767
|
offset: number;
|
|
567
768
|
animated?: boolean | undefined;
|
|
568
|
-
}): void
|
|
769
|
+
}): Promise<void>;
|
|
569
770
|
/**
|
|
570
771
|
* Sets or adds to the offset of the visible content anchor.
|
|
571
772
|
* @param value - The offset to set or add.
|
|
572
773
|
* @param animated - If true, uses Animated to animate the change.
|
|
573
774
|
*/
|
|
574
|
-
setVisibleContentAnchorOffset(value: number | ((
|
|
775
|
+
setVisibleContentAnchorOffset(value: number | ((val: number) => number)): void;
|
|
575
776
|
/**
|
|
576
777
|
* Sets whether scroll processing is enabled.
|
|
577
778
|
* @param enabled - If true, scroll processing is enabled.
|
|
578
779
|
*/
|
|
579
780
|
setScrollProcessingEnabled(enabled: boolean): void;
|
|
781
|
+
/**
|
|
782
|
+
* Clears internal virtualization caches.
|
|
783
|
+
* @param options - Cache clearing options.
|
|
784
|
+
* @param options.mode - `sizes` clears measurement caches. `full` also clears key/position caches.
|
|
785
|
+
*/
|
|
786
|
+
clearCaches(options?: {
|
|
787
|
+
mode?: "sizes" | "full";
|
|
788
|
+
}): void;
|
|
789
|
+
/**
|
|
790
|
+
* Reports an externally measured content inset. Pass null/undefined to clear.
|
|
791
|
+
* Values are merged on top of props/animated/native insets.
|
|
792
|
+
*/
|
|
793
|
+
reportContentInset(inset?: Partial<Insets> | null): void;
|
|
580
794
|
};
|
|
581
795
|
interface ViewToken<ItemT = any> {
|
|
582
|
-
|
|
583
|
-
key: string;
|
|
796
|
+
containerId: number;
|
|
584
797
|
index: number;
|
|
585
798
|
isViewable: boolean;
|
|
586
|
-
|
|
799
|
+
item: ItemT;
|
|
800
|
+
key: string;
|
|
587
801
|
}
|
|
588
802
|
interface ViewAmountToken<ItemT = any> extends ViewToken<ItemT> {
|
|
589
|
-
sizeVisible: number;
|
|
590
|
-
size: number;
|
|
591
|
-
percentVisible: number;
|
|
592
803
|
percentOfScroller: number;
|
|
804
|
+
percentVisible: number;
|
|
593
805
|
scrollSize: number;
|
|
806
|
+
size: number;
|
|
807
|
+
sizeVisible: number;
|
|
594
808
|
}
|
|
595
809
|
interface ViewabilityConfigCallbackPair<ItemT = any> {
|
|
596
|
-
viewabilityConfig: ViewabilityConfig;
|
|
597
810
|
onViewableItemsChanged?: OnViewableItemsChanged<ItemT>;
|
|
811
|
+
viewabilityConfig: ViewabilityConfig;
|
|
598
812
|
}
|
|
599
813
|
type ViewabilityConfigCallbackPairs<ItemT> = ViewabilityConfigCallbackPair<ItemT>[];
|
|
600
814
|
type OnViewableItemsChanged<ItemT> = ((info: {
|
|
@@ -633,14 +847,14 @@ interface ViewabilityConfig {
|
|
|
633
847
|
type ViewabilityCallback<ItemT = any> = (viewToken: ViewToken<ItemT>) => void;
|
|
634
848
|
type ViewabilityAmountCallback<ItemT = any> = (viewToken: ViewAmountToken<ItemT>) => void;
|
|
635
849
|
interface LegendListRecyclingState<T> {
|
|
636
|
-
item: T;
|
|
637
|
-
prevItem: T | undefined;
|
|
638
850
|
index: number;
|
|
851
|
+
item: T;
|
|
639
852
|
prevIndex: number | undefined;
|
|
853
|
+
prevItem: T | undefined;
|
|
640
854
|
}
|
|
641
|
-
type TypedForwardRef = <T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.
|
|
855
|
+
type TypedForwardRef = <T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactElement | null) => (props: P & React.RefAttributes<T>) => React.ReactElement | null;
|
|
642
856
|
declare const typedForwardRef: TypedForwardRef;
|
|
643
|
-
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<React.
|
|
857
|
+
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<React.ComponentProps<T>>, nextProps: Readonly<React.ComponentProps<T>>) => boolean) => T & {
|
|
644
858
|
displayName?: string;
|
|
645
859
|
};
|
|
646
860
|
declare const typedMemo: TypedMemo;
|
|
@@ -667,4 +881,35 @@ type GetRenderedItemResult<ItemT> = {
|
|
|
667
881
|
};
|
|
668
882
|
type GetRenderedItem = (key: string) => GetRenderedItemResult<any> | null;
|
|
669
883
|
|
|
670
|
-
|
|
884
|
+
type LegendListPropsOverrides<ItemT, TItemType extends string | undefined> = Omit<LegendListPropsBase<ItemT, ScrollViewProps, TItemType>, "onScroll" | "refScrollView" | "renderScrollComponent" | "ListHeaderComponentStyle" | "ListFooterComponentStyle"> & {
|
|
885
|
+
onScroll?: (event: NativeSyntheticEvent$1<NativeScrollEvent$1>) => void;
|
|
886
|
+
refScrollView?: React.Ref<ScrollView>;
|
|
887
|
+
renderScrollComponent?: (props: ScrollViewProps) => React.ReactElement<ScrollViewProps>;
|
|
888
|
+
ListHeaderComponentStyle?: StyleProp$1<ViewStyle$1> | undefined;
|
|
889
|
+
ListFooterComponentStyle?: StyleProp$1<ViewStyle$1> | undefined;
|
|
890
|
+
};
|
|
891
|
+
type LegendListProps<ItemT = any, TItemType extends string | undefined = string | undefined> = LegendListPropsOverrides<ItemT, TItemType>;
|
|
892
|
+
type LegendListRef = Omit<LegendListRef$1, "getNativeScrollRef" | "getScrollResponder" | "reportContentInset"> & {
|
|
893
|
+
getNativeScrollRef(): React.ElementRef<typeof ScrollViewComponent>;
|
|
894
|
+
getScrollResponder(): ScrollResponderMixin;
|
|
895
|
+
reportContentInset(inset?: Partial<Insets$1> | null): void;
|
|
896
|
+
};
|
|
897
|
+
type LegendListState = Omit<LegendListState$1, "elementAtIndex"> & {
|
|
898
|
+
elementAtIndex: (index: number) => View | null | undefined;
|
|
899
|
+
};
|
|
900
|
+
type LegendListComponent = <ItemT = any>(props: LegendListProps<ItemT> & React.RefAttributes<LegendListRef>) => React.ReactElement | null;
|
|
901
|
+
|
|
902
|
+
declare function useViewability<ItemT = any>(callback: ViewabilityCallback<ItemT>, configId?: string): void;
|
|
903
|
+
declare function useViewabilityAmount<ItemT = any>(callback: ViewabilityAmountCallback<ItemT>): void;
|
|
904
|
+
declare function useRecyclingEffect(effect: (info: LegendListRecyclingState<unknown>) => void | (() => void)): void;
|
|
905
|
+
declare function useRecyclingState<ItemT>(valueOrFun: ((info: LegendListRecyclingState<ItemT>) => ItemT) | ItemT): readonly [ItemT, Dispatch<SetStateAction<ItemT>>];
|
|
906
|
+
declare function useIsLastItem(): boolean;
|
|
907
|
+
declare function useListScrollSize(): {
|
|
908
|
+
width: number;
|
|
909
|
+
height: number;
|
|
910
|
+
};
|
|
911
|
+
declare function useSyncLayout(): () => void;
|
|
912
|
+
|
|
913
|
+
declare const LegendList: LegendListComponent;
|
|
914
|
+
|
|
915
|
+
export { type AlwaysRenderConfig, type BaseScrollViewProps, type ColumnWrapperStyle, type GetRenderedItem, type GetRenderedItemResult, type InitialScrollAnchor, type Insets, type InternalState, type LayoutRectangle, LegendList, type LegendListComponent, type LegendListMetrics, type LegendListProps, type LegendListPropsBase, type LegendListRecyclingState, type LegendListRef, type LegendListRenderItemProps, type LegendListScrollerRef, type LegendListState, type MaintainScrollAtEndOptions, type MaintainVisibleContentPositionConfig, type MaintainVisibleContentPositionNormalized, type NativeScrollEvent, type NativeSyntheticEvent, type OnViewableItemsChanged, type ScrollEventTargetLike, type ScrollIndexWithOffset, type ScrollIndexWithOffsetAndContentOffset, type ScrollIndexWithOffsetPosition, type ScrollTarget, type ScrollableNodeLike, type StickyHeaderConfig, type StyleProp, type ThresholdSnapshot, type TypedForwardRef, type TypedMemo, type ViewAmountToken, type ViewStyle, type ViewToken, type ViewabilityAmountCallback, type ViewabilityCallback, type ViewabilityConfig, type ViewabilityConfigCallbackPair, type ViewabilityConfigCallbackPairs, type ViewableRange, typedForwardRef, typedMemo, useIsLastItem, useListScrollSize, useRecyclingEffect, useRecyclingState, useSyncLayout, useViewability, useViewabilityAmount };
|