@legendapp/list 3.0.0-beta.5 → 3.0.0-beta.50
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 +9 -2
- package/animated.d.ts +657 -5
- package/animated.js +2 -2
- package/animated.mjs +1 -1
- package/index.d.ts +1316 -11
- package/index.js +4009 -1279
- package/index.mjs +4008 -1280
- package/index.native.js +3772 -1337
- package/index.native.mjs +3758 -1325
- package/keyboard-chat.d.ts +228 -0
- package/keyboard-chat.js +97 -0
- package/keyboard-chat.mjs +76 -0
- package/keyboard-test.d.ts +216 -0
- package/keyboard-test.js +39 -0
- package/keyboard-test.mjs +18 -0
- package/keyboard.d.ts +216 -8
- package/keyboard.js +355 -64
- package/keyboard.mjs +358 -66
- package/package.json +68 -1
- package/{types-YNdphn_A.d.mts → react-native.d.ts} +306 -263
- package/react-native.js +6003 -0
- package/react-native.mjs +5974 -0
- package/{types-YNdphn_A.d.ts → react-native.web.d.ts} +367 -261
- package/react-native.web.js +6537 -0
- package/react-native.web.mjs +6508 -0
- package/react.d.ts +776 -0
- package/react.js +6537 -0
- package/react.mjs +6508 -0
- package/reanimated.d.ts +679 -8
- package/reanimated.js +230 -29
- package/reanimated.mjs +232 -31
- package/section-list.d.ts +661 -5
- package/section-list.js +50 -3675
- package/section-list.mjs +48 -3674
- 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/section-list.native.js +0 -3711
- package/section-list.native.mjs +0 -3690
|
@@ -1,42 +1,94 @@
|
|
|
1
|
-
import * as React
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import Reanimated 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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
internalState: InternalState | undefined;
|
|
11
|
-
listeners: Map<ListenerType, Set<(value: any) => void>>;
|
|
12
|
-
values: Map<ListenerType, any>;
|
|
13
|
-
mapViewabilityCallbacks: Map<string, ViewabilityCallback>;
|
|
14
|
-
mapViewabilityValues: Map<string, ViewToken>;
|
|
15
|
-
mapViewabilityAmountCallbacks: Map<number, ViewabilityAmountCallback>;
|
|
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
|
-
}>;
|
|
24
|
-
columnWrapperStyle: ColumnWrapperStyle | undefined;
|
|
25
|
-
viewRefs: Map<number, React$1.RefObject<View>>;
|
|
26
|
-
animatedScrollY: AnimatedValue;
|
|
5
|
+
interface MaintainVisibleContentPositionNormalized<ItemT = any> {
|
|
6
|
+
data: boolean;
|
|
7
|
+
size: boolean;
|
|
8
|
+
shouldRestorePosition?: (item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
27
9
|
}
|
|
28
10
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
11
|
+
type ListenerType = "activeStickyIndex" | "anchoredEndSpaceSize" | "debugComputedScroll" | "debugRawScroll" | "extraData" | "footerSize" | "headerSize" | "lastItemKeys" | "lastPositionUpdate" | "maintainVisibleContentPosition" | "numColumns" | "numContainers" | "numContainersPooled" | "otherAxisSize" | "readyToRender" | "scrollAdjust" | "scrollAdjustPending" | "scrollAdjustUserOffset" | "scrollSize" | "snapToOffsets" | "stylePaddingTop" | "totalSize" | "isAtEnd" | "isAtStart" | "isNearEnd" | "isNearStart" | "isWithinMaintainScrollAtEndThreshold" | `containerColumn${number}` | `containerSpan${number}` | `containerItemData${number}` | `containerItemKey${number}` | `containerPosition${number}` | `containerSticky${number}`;
|
|
12
|
+
type LegendListListenerType = Extract<ListenerType, "activeStickyIndex" | "anchoredEndSpaceSize" | "footerSize" | "headerSize" | "isAtEnd" | "isAtStart" | "isNearEnd" | "isNearStart" | "isWithinMaintainScrollAtEndThreshold" | "lastItemKeys" | "lastPositionUpdate" | "numContainers" | "numContainersPooled" | "otherAxisSize" | "readyToRender" | "snapToOffsets" | "totalSize">;
|
|
13
|
+
type ListenerTypeValueMap = {
|
|
14
|
+
activeStickyIndex: number;
|
|
15
|
+
anchoredEndSpaceSize: number;
|
|
16
|
+
animatedScrollY: any;
|
|
17
|
+
debugComputedScroll: number;
|
|
18
|
+
debugRawScroll: number;
|
|
19
|
+
extraData: any;
|
|
20
|
+
footerSize: number;
|
|
21
|
+
headerSize: number;
|
|
22
|
+
isAtEnd: boolean;
|
|
23
|
+
isAtStart: boolean;
|
|
24
|
+
isNearEnd: boolean;
|
|
25
|
+
isNearStart: boolean;
|
|
26
|
+
isWithinMaintainScrollAtEndThreshold: boolean;
|
|
27
|
+
lastItemKeys: string[];
|
|
28
|
+
lastPositionUpdate: number;
|
|
29
|
+
maintainVisibleContentPosition: MaintainVisibleContentPositionNormalized;
|
|
30
|
+
numColumns: number;
|
|
31
|
+
numContainers: number;
|
|
32
|
+
numContainersPooled: number;
|
|
33
|
+
otherAxisSize: number;
|
|
34
|
+
readyToRender: boolean;
|
|
35
|
+
scrollAdjust: number;
|
|
36
|
+
scrollAdjustPending: number;
|
|
37
|
+
scrollAdjustUserOffset: number;
|
|
38
|
+
scrollSize: {
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
};
|
|
42
|
+
snapToOffsets: number[];
|
|
43
|
+
stylePaddingTop: number;
|
|
44
|
+
totalSize: number;
|
|
45
|
+
} & {
|
|
46
|
+
[K in ListenerType as K extends `containerItemKey${number}` ? K : never]: string;
|
|
47
|
+
} & {
|
|
48
|
+
[K in ListenerType as K extends `containerItemData${number}` ? K : never]: any;
|
|
49
|
+
} & {
|
|
50
|
+
[K in ListenerType as K extends `containerPosition${number}` ? K : never]: number;
|
|
51
|
+
} & {
|
|
52
|
+
[K in ListenerType as K extends `containerColumn${number}` ? K : never]: number;
|
|
53
|
+
} & {
|
|
54
|
+
[K in ListenerType as K extends `containerSpan${number}` ? K : never]: number;
|
|
55
|
+
} & {
|
|
56
|
+
[K in ListenerType as K extends `containerSticky${number}` ? K : never]: boolean;
|
|
57
|
+
};
|
|
39
58
|
|
|
59
|
+
interface Insets {
|
|
60
|
+
top: number;
|
|
61
|
+
left: number;
|
|
62
|
+
bottom: number;
|
|
63
|
+
right: number;
|
|
64
|
+
}
|
|
65
|
+
interface LayoutRectangle {
|
|
66
|
+
x: number;
|
|
67
|
+
y: number;
|
|
68
|
+
width: number;
|
|
69
|
+
height: number;
|
|
70
|
+
}
|
|
71
|
+
interface NativeScrollEvent {
|
|
72
|
+
contentOffset: {
|
|
73
|
+
x: number;
|
|
74
|
+
y: number;
|
|
75
|
+
};
|
|
76
|
+
contentSize: {
|
|
77
|
+
width: number;
|
|
78
|
+
height: number;
|
|
79
|
+
};
|
|
80
|
+
layoutMeasurement: {
|
|
81
|
+
width: number;
|
|
82
|
+
height: number;
|
|
83
|
+
};
|
|
84
|
+
contentInset: Insets;
|
|
85
|
+
zoomScale: number;
|
|
86
|
+
}
|
|
87
|
+
interface NativeSyntheticEvent<T> {
|
|
88
|
+
nativeEvent: T;
|
|
89
|
+
}
|
|
90
|
+
type ViewStyle = Record<string, unknown>;
|
|
91
|
+
type StyleProp<T> = T | T[] | null | undefined | false;
|
|
40
92
|
type BaseScrollViewProps<TScrollView> = Omit<TScrollView, "contentOffset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children" | "onScroll">;
|
|
41
93
|
interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
42
94
|
/**
|
|
@@ -51,7 +103,7 @@ interface DataModeProps<ItemT, TItemType extends string | undefined> {
|
|
|
51
103
|
* - A React component: React.ComponentType<LegendListRenderItemProps<ItemT>>
|
|
52
104
|
* @required when using data mode
|
|
53
105
|
*/
|
|
54
|
-
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
106
|
+
renderItem: ((props: LegendListRenderItemProps<ItemT, TItemType>) => React.ReactNode) | React.ComponentType<LegendListRenderItemProps<ItemT, TItemType>>;
|
|
55
107
|
children?: never;
|
|
56
108
|
}
|
|
57
109
|
interface ChildrenModeProps {
|
|
@@ -60,7 +112,7 @@ interface ChildrenModeProps {
|
|
|
60
112
|
* Each child will be treated as an individual list item.
|
|
61
113
|
* @required when using children mode
|
|
62
114
|
*/
|
|
63
|
-
children: ReactNode;
|
|
115
|
+
children: React.ReactNode;
|
|
64
116
|
data?: never;
|
|
65
117
|
renderItem?: never;
|
|
66
118
|
}
|
|
@@ -71,14 +123,19 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
71
123
|
*/
|
|
72
124
|
alignItemsAtEnd?: boolean;
|
|
73
125
|
/**
|
|
74
|
-
*
|
|
75
|
-
* @default
|
|
126
|
+
* Keeps selected items mounted even when they scroll out of view.
|
|
127
|
+
* @default undefined
|
|
76
128
|
*/
|
|
77
|
-
|
|
129
|
+
alwaysRender?: AlwaysRenderConfig;
|
|
78
130
|
/**
|
|
79
131
|
* Style applied to each column's wrapper view.
|
|
80
132
|
*/
|
|
81
133
|
columnWrapperStyle?: ColumnWrapperStyle;
|
|
134
|
+
/**
|
|
135
|
+
* Version token that forces the list to treat data as updated even when the array reference is stable.
|
|
136
|
+
* Increment or change this when mutating the data array in place.
|
|
137
|
+
*/
|
|
138
|
+
dataVersion?: Key;
|
|
82
139
|
/**
|
|
83
140
|
* Distance in pixels to pre-render items ahead of the visible area.
|
|
84
141
|
* @default 250
|
|
@@ -103,25 +160,34 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
103
160
|
*/
|
|
104
161
|
extraData?: any;
|
|
105
162
|
/**
|
|
106
|
-
*
|
|
107
|
-
* Increment or change this when mutating the data array in place.
|
|
163
|
+
* In case you have distinct item sizes, you can provide a function to get the size of an item.
|
|
108
164
|
*/
|
|
109
|
-
|
|
165
|
+
getEstimatedItemSize?: (item: ItemT, index: number, type: TItemType) => number;
|
|
110
166
|
/**
|
|
111
|
-
* In case
|
|
112
|
-
|
|
167
|
+
* In case items always have a fixed size, you can provide a function to return it.
|
|
168
|
+
*/
|
|
169
|
+
getFixedItemSize?: (item: ItemT, index: number, type: TItemType) => number | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* Returns a stable item type used for pooling and size estimation.
|
|
113
172
|
*/
|
|
114
|
-
|
|
173
|
+
getItemType?: (item: ItemT, index: number) => TItemType;
|
|
174
|
+
/**
|
|
175
|
+
* Component to render between items, receiving the leading item as prop.
|
|
176
|
+
*/
|
|
177
|
+
ItemSeparatorComponent?: React.ComponentType<{
|
|
178
|
+
leadingItem: ItemT;
|
|
179
|
+
}>;
|
|
115
180
|
/**
|
|
116
181
|
* Ratio of initial container pool size to data length (e.g., 0.5 for half).
|
|
117
182
|
* @default 2
|
|
118
183
|
*/
|
|
119
184
|
initialContainerPoolRatio?: number | undefined;
|
|
120
185
|
/**
|
|
121
|
-
*
|
|
122
|
-
*
|
|
186
|
+
* When true, the list initializes scrolled to the last item.
|
|
187
|
+
* Overrides `initialScrollIndex` and `initialScrollOffset` when data is available.
|
|
188
|
+
* @default false
|
|
123
189
|
*/
|
|
124
|
-
|
|
190
|
+
initialScrollAtEnd?: boolean;
|
|
125
191
|
/**
|
|
126
192
|
* Index to scroll to initially.
|
|
127
193
|
* @default 0
|
|
@@ -129,19 +195,17 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
129
195
|
initialScrollIndex?: number | {
|
|
130
196
|
index: number;
|
|
131
197
|
viewOffset?: number | undefined;
|
|
198
|
+
viewPosition?: number | undefined;
|
|
132
199
|
};
|
|
133
200
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* @default false
|
|
201
|
+
* Initial scroll position in pixels.
|
|
202
|
+
* @default 0
|
|
137
203
|
*/
|
|
138
|
-
|
|
204
|
+
initialScrollOffset?: number;
|
|
139
205
|
/**
|
|
140
|
-
*
|
|
206
|
+
* Custom equality function to detect semantically unchanged items.
|
|
141
207
|
*/
|
|
142
|
-
|
|
143
|
-
leadingItem: ItemT;
|
|
144
|
-
}>;
|
|
208
|
+
itemsAreEqual?: (itemPrevious: ItemT, item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
145
209
|
/**
|
|
146
210
|
* Function to extract a unique key for each item.
|
|
147
211
|
*/
|
|
@@ -168,6 +232,7 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
168
232
|
ListHeaderComponentStyle?: StyleProp<ViewStyle> | undefined;
|
|
169
233
|
/**
|
|
170
234
|
* If true, auto-scrolls to end when new items are added.
|
|
235
|
+
* Use an options object to opt into specific triggers and control whether that scroll is animated.
|
|
171
236
|
* @default false
|
|
172
237
|
*/
|
|
173
238
|
maintainScrollAtEnd?: boolean | MaintainScrollAtEndOptions;
|
|
@@ -177,11 +242,18 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
177
242
|
*/
|
|
178
243
|
maintainScrollAtEndThreshold?: number;
|
|
179
244
|
/**
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
245
|
+
* Maintains visibility of content.
|
|
246
|
+
* - scroll (default: true) stabilizes during size/layout changes while scrolling.
|
|
247
|
+
* - data (default: false) stabilizes when the data array changes; passing true also sets the RN maintainVisibleContentPosition prop.
|
|
248
|
+
* - shouldRestorePosition can opt out specific items from data-change anchoring.
|
|
249
|
+
* - undefined (default) enables scroll stabilization but skips data-change anchoring.
|
|
250
|
+
* - true enables both behaviors; false disables both.
|
|
183
251
|
*/
|
|
184
|
-
maintainVisibleContentPosition?: boolean
|
|
252
|
+
maintainVisibleContentPosition?: boolean | MaintainVisibleContentPositionConfig<ItemT>;
|
|
253
|
+
/**
|
|
254
|
+
* Keeps an item visually anchored to the start by adding trailing space when the content below it underflows.
|
|
255
|
+
*/
|
|
256
|
+
anchoredEndSpace?: AnchoredEndSpaceConfig;
|
|
185
257
|
/**
|
|
186
258
|
* Number of columns to render items in.
|
|
187
259
|
* @default 1
|
|
@@ -208,10 +280,23 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
208
280
|
itemKey: string;
|
|
209
281
|
itemData: ItemT;
|
|
210
282
|
}) => void;
|
|
283
|
+
/**
|
|
284
|
+
* Called after the initial render work completes.
|
|
285
|
+
*/
|
|
286
|
+
onLoad?: (info: {
|
|
287
|
+
elapsedTimeInMs: number;
|
|
288
|
+
}) => void;
|
|
289
|
+
/**
|
|
290
|
+
* Called when list layout metrics change.
|
|
291
|
+
*/
|
|
292
|
+
onMetricsChange?: (metrics: LegendListMetrics) => void;
|
|
211
293
|
/**
|
|
212
294
|
* Function to call when the user pulls to refresh.
|
|
213
295
|
*/
|
|
214
296
|
onRefresh?: () => void;
|
|
297
|
+
/**
|
|
298
|
+
* Called when the list scrolls.
|
|
299
|
+
*/
|
|
215
300
|
onScroll?: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
216
301
|
/**
|
|
217
302
|
* Called when scrolling reaches the start within onStartReachedThreshold.
|
|
@@ -235,6 +320,12 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
235
320
|
* Called when the viewability of items changes.
|
|
236
321
|
*/
|
|
237
322
|
onViewableItemsChanged?: OnViewableItemsChanged<ItemT> | undefined;
|
|
323
|
+
/**
|
|
324
|
+
* Customize layout for multi-column lists, such as allowing items to span multiple columns.
|
|
325
|
+
*/
|
|
326
|
+
overrideItemLayout?: (layout: {
|
|
327
|
+
span?: number;
|
|
328
|
+
}, item: ItemT, index: number, maxColumns: number, extraData?: any) => void;
|
|
238
329
|
/**
|
|
239
330
|
* Offset in pixels for the refresh indicator.
|
|
240
331
|
* @default 0
|
|
@@ -248,7 +339,7 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
248
339
|
/**
|
|
249
340
|
* Ref to the underlying ScrollView component.
|
|
250
341
|
*/
|
|
251
|
-
refScrollView?: React.Ref<
|
|
342
|
+
refScrollView?: React.Ref<any>;
|
|
252
343
|
/**
|
|
253
344
|
* If true, shows a refresh indicator.
|
|
254
345
|
* @default false
|
|
@@ -259,7 +350,11 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
259
350
|
* Note: When using `stickyHeaderIndices`, you must provide an Animated ScrollView component.
|
|
260
351
|
* @default (props) => <ScrollView {...props} />
|
|
261
352
|
*/
|
|
262
|
-
renderScrollComponent?: (props:
|
|
353
|
+
renderScrollComponent?: (props: any) => React.ReactElement | null;
|
|
354
|
+
/**
|
|
355
|
+
* Array of item indices to use as snap points.
|
|
356
|
+
*/
|
|
357
|
+
snapToIndices?: number[];
|
|
263
358
|
/**
|
|
264
359
|
* This will log a suggested estimatedItemSize.
|
|
265
360
|
* @required
|
|
@@ -274,15 +369,6 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
274
369
|
* Pairs of viewability configs and their callbacks for tracking visibility.
|
|
275
370
|
*/
|
|
276
371
|
viewabilityConfigCallbackPairs?: ViewabilityConfigCallbackPairs<ItemT> | undefined;
|
|
277
|
-
/**
|
|
278
|
-
* If true, delays rendering until initial layout is complete.
|
|
279
|
-
* @default false
|
|
280
|
-
*/
|
|
281
|
-
waitForInitialLayout?: boolean;
|
|
282
|
-
onLoad?: (info: {
|
|
283
|
-
elapsedTimeInMs: number;
|
|
284
|
-
}) => void;
|
|
285
|
-
snapToIndices?: number[];
|
|
286
372
|
/**
|
|
287
373
|
* Array of child indices determining which children get docked to the top of the screen when scrolling.
|
|
288
374
|
* For example, passing stickyHeaderIndices={[0]} will cause the first child to be fixed to the top of the scroll view.
|
|
@@ -294,190 +380,109 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
|
|
|
294
380
|
* @deprecated Use stickyHeaderIndices instead for parity with React Native.
|
|
295
381
|
*/
|
|
296
382
|
stickyIndices?: number[];
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Configuration for sticky headers.
|
|
385
|
+
* @default undefined
|
|
386
|
+
*/
|
|
387
|
+
stickyHeaderConfig?: StickyHeaderConfig;
|
|
388
|
+
/**
|
|
389
|
+
* Web only: when true, listens to window/body scrolling instead of rendering a scrollable list container.
|
|
390
|
+
* @default false
|
|
391
|
+
*/
|
|
392
|
+
useWindowScroll?: boolean;
|
|
393
|
+
}
|
|
394
|
+
type LegendListPropsBase<ItemT, TScrollViewProps = Record<string, any>, TItemType extends string | undefined = string | undefined> = BaseScrollViewProps<TScrollViewProps> & LegendListSpecificProps<ItemT, TItemType> & (DataModeProps<ItemT, TItemType> | ChildrenModeProps);
|
|
395
|
+
interface MaintainVisibleContentPositionConfig<ItemT = any> {
|
|
396
|
+
data?: boolean;
|
|
397
|
+
size?: boolean;
|
|
398
|
+
shouldRestorePosition?: (item: ItemT, index: number, data: readonly ItemT[]) => boolean;
|
|
399
|
+
}
|
|
400
|
+
interface AnchoredEndSpaceConfig {
|
|
401
|
+
anchorIndex: number;
|
|
402
|
+
anchorOffset?: number;
|
|
403
|
+
anchorMaxSize?: number;
|
|
404
|
+
includeInEndInset?: boolean;
|
|
405
|
+
onSizeChanged?: (size: number) => void;
|
|
406
|
+
}
|
|
407
|
+
interface StickyHeaderConfig {
|
|
408
|
+
/**
|
|
409
|
+
* Specifies how far from the top edge sticky headers should start sticking.
|
|
410
|
+
* Useful for scenarios with a fixed navbar or header, where sticky elements pin below it..
|
|
411
|
+
* @default 0
|
|
412
|
+
*/
|
|
413
|
+
offset?: number;
|
|
414
|
+
/**
|
|
415
|
+
* Component to render as a backdrop behind the sticky header.
|
|
416
|
+
* @default undefined
|
|
417
|
+
*/
|
|
418
|
+
backdropComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
|
|
419
|
+
}
|
|
420
|
+
interface AlwaysRenderConfig {
|
|
421
|
+
top?: number;
|
|
422
|
+
bottom?: number;
|
|
423
|
+
indices?: number[];
|
|
424
|
+
keys?: string[];
|
|
425
|
+
}
|
|
426
|
+
interface MaintainScrollAtEndOnOptions {
|
|
427
|
+
dataChange?: boolean;
|
|
428
|
+
itemLayout?: boolean;
|
|
429
|
+
layout?: boolean;
|
|
300
430
|
}
|
|
301
|
-
type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView> | ComponentProps<typeof Reanimated.ScrollView>, TItemType extends string | undefined = string | undefined> = BaseScrollViewProps<TScrollView> & LegendListSpecificProps<ItemT, TItemType> & (DataModeProps<ItemT, TItemType> | ChildrenModeProps);
|
|
302
431
|
interface MaintainScrollAtEndOptions {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
432
|
+
/**
|
|
433
|
+
* Whether maintainScrollAtEnd should animate when it scrolls to the end.
|
|
434
|
+
*/
|
|
435
|
+
animated?: boolean;
|
|
436
|
+
/**
|
|
437
|
+
* Which events should keep the list pinned to the end.
|
|
438
|
+
* - If omitted, object values default to all triggers.
|
|
439
|
+
* - If provided, only the keys set to `true` are enabled.
|
|
440
|
+
*/
|
|
441
|
+
on?: MaintainScrollAtEndOnOptions;
|
|
306
442
|
}
|
|
307
443
|
interface ColumnWrapperStyle {
|
|
308
444
|
rowGap?: number;
|
|
309
445
|
gap?: number;
|
|
310
446
|
columnGap?: number;
|
|
311
447
|
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
contentSize?: number;
|
|
316
|
-
dataLength?: number;
|
|
317
|
-
atThreshold: boolean;
|
|
318
|
-
}
|
|
319
|
-
interface ScrollTarget {
|
|
320
|
-
offset: number;
|
|
321
|
-
index?: number;
|
|
322
|
-
viewOffset?: number;
|
|
323
|
-
viewPosition?: number;
|
|
324
|
-
animated?: boolean;
|
|
325
|
-
isInitialScroll?: boolean;
|
|
326
|
-
precomputedWithViewOffset?: boolean;
|
|
327
|
-
}
|
|
328
|
-
interface InternalState {
|
|
329
|
-
positions: Map<string, number>;
|
|
330
|
-
columns: Map<string, number>;
|
|
331
|
-
sizes: Map<string, number>;
|
|
332
|
-
sizesKnown: Map<string, number>;
|
|
333
|
-
containerItemKeys: Set<string>;
|
|
334
|
-
containerItemTypes: Map<number, string>;
|
|
335
|
-
isStartReached: boolean;
|
|
336
|
-
isEndReached: boolean;
|
|
337
|
-
isAtEnd: boolean;
|
|
338
|
-
isAtStart: boolean;
|
|
339
|
-
hasScrolled?: boolean;
|
|
340
|
-
scrollLength: number;
|
|
341
|
-
startBuffered: number;
|
|
342
|
-
startBufferedId?: string;
|
|
343
|
-
startNoBuffer: number;
|
|
344
|
-
endBuffered: number;
|
|
345
|
-
endNoBuffer: number;
|
|
346
|
-
firstFullyOnScreenIndex: number;
|
|
347
|
-
idsInView: string[];
|
|
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>;
|
|
366
|
-
idCache: string[];
|
|
367
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs<any> | undefined;
|
|
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;
|
|
389
|
-
ignoreScrollFromMVCP?: {
|
|
390
|
-
lt?: number;
|
|
391
|
-
gt?: number;
|
|
392
|
-
};
|
|
393
|
-
ignoreScrollFromMVCPIgnored?: boolean;
|
|
394
|
-
ignoreScrollFromMVCPTimeout?: any;
|
|
395
|
-
needsOtherAxisSize?: boolean;
|
|
396
|
-
averageSizes: Record<string, {
|
|
397
|
-
num: number;
|
|
398
|
-
avg: number;
|
|
399
|
-
}>;
|
|
400
|
-
refScroller: React.RefObject<ScrollView>;
|
|
401
|
-
loadStartTime: number;
|
|
402
|
-
initialScroll: ScrollIndexWithOffsetAndContentOffset | undefined;
|
|
403
|
-
initialAnchor?: InitialScrollAnchor;
|
|
404
|
-
lastLayout: LayoutRectangle | undefined;
|
|
405
|
-
timeoutSetPaddingTop?: any;
|
|
406
|
-
activeStickyIndex: number | undefined;
|
|
407
|
-
stickyContainers: Map<number, number>;
|
|
408
|
-
stickyContainerPool: Set<number>;
|
|
409
|
-
scrollProcessingEnabled: boolean;
|
|
410
|
-
pendingTotalSize?: number;
|
|
411
|
-
adjustingFromInitialMount?: number;
|
|
412
|
-
props: {
|
|
413
|
-
alignItemsAtEnd: boolean;
|
|
414
|
-
data: readonly any[];
|
|
415
|
-
dataVersion: Key | undefined;
|
|
416
|
-
estimatedItemSize: number | undefined;
|
|
417
|
-
getEstimatedItemSize: LegendListProps["getEstimatedItemSize"];
|
|
418
|
-
getFixedItemSize: LegendListProps["getFixedItemSize"];
|
|
419
|
-
getItemType: LegendListProps["getItemType"];
|
|
420
|
-
horizontal: boolean;
|
|
421
|
-
keyExtractor: LegendListProps["keyExtractor"];
|
|
422
|
-
maintainScrollAtEnd: boolean | MaintainScrollAtEndOptions;
|
|
423
|
-
maintainScrollAtEndThreshold: number | undefined;
|
|
424
|
-
maintainVisibleContentPosition: boolean;
|
|
425
|
-
onEndReached: LegendListProps["onEndReached"];
|
|
426
|
-
onEndReachedThreshold: number | null | undefined;
|
|
427
|
-
onItemSizeChanged: LegendListProps["onItemSizeChanged"];
|
|
428
|
-
onLoad: LegendListProps["onLoad"];
|
|
429
|
-
onScroll: LegendListProps["onScroll"];
|
|
430
|
-
onStartReached: LegendListProps["onStartReached"];
|
|
431
|
-
onStartReachedThreshold: number | null | undefined;
|
|
432
|
-
onStickyHeaderChange: LegendListProps["onStickyHeaderChange"];
|
|
433
|
-
recycleItems: boolean;
|
|
434
|
-
suggestEstimatedItemSize: boolean;
|
|
435
|
-
stylePaddingBottom: number | undefined;
|
|
436
|
-
renderItem: LegendListProps["renderItem"];
|
|
437
|
-
scrollBuffer: number;
|
|
438
|
-
numColumns: number;
|
|
439
|
-
initialContainerPoolRatio: number;
|
|
440
|
-
stylePaddingTop: number | undefined;
|
|
441
|
-
snapToIndices: number[] | undefined;
|
|
442
|
-
stickyIndicesSet: Set<number>;
|
|
443
|
-
stickyIndicesArr: number[];
|
|
444
|
-
itemsAreEqual: LegendListProps["itemsAreEqual"];
|
|
445
|
-
enableAverages: boolean;
|
|
446
|
-
};
|
|
447
|
-
}
|
|
448
|
-
interface ViewableRange<T> {
|
|
449
|
-
startBuffered: number;
|
|
450
|
-
start: number;
|
|
451
|
-
endBuffered: number;
|
|
452
|
-
end: number;
|
|
453
|
-
items: T[];
|
|
448
|
+
interface LegendListMetrics {
|
|
449
|
+
headerSize: number;
|
|
450
|
+
footerSize: number;
|
|
454
451
|
}
|
|
455
452
|
interface LegendListRenderItemProps<ItemT, TItemType extends string | number | undefined = string | number | undefined> {
|
|
456
|
-
item: ItemT;
|
|
457
|
-
type: TItemType;
|
|
458
|
-
index: number;
|
|
459
453
|
data: readonly ItemT[];
|
|
460
454
|
extraData: any;
|
|
455
|
+
index: number;
|
|
456
|
+
item: ItemT;
|
|
457
|
+
type: TItemType;
|
|
461
458
|
}
|
|
462
|
-
type
|
|
463
|
-
activeStickyIndex: number
|
|
459
|
+
type LegendListState$1 = {
|
|
460
|
+
activeStickyIndex: number;
|
|
464
461
|
contentLength: number;
|
|
465
462
|
data: readonly any[];
|
|
466
|
-
elementAtIndex: (index: number) =>
|
|
463
|
+
elementAtIndex: (index: number) => any;
|
|
467
464
|
end: number;
|
|
468
465
|
endBuffered: number;
|
|
469
466
|
isAtEnd: boolean;
|
|
470
467
|
isAtStart: boolean;
|
|
468
|
+
isNearEnd: boolean;
|
|
469
|
+
isNearStart: boolean;
|
|
470
|
+
isEndReached: boolean;
|
|
471
|
+
isStartReached: boolean;
|
|
472
|
+
isWithinMaintainScrollAtEndThreshold: boolean;
|
|
473
|
+
listen: <T extends LegendListListenerType>(listenerType: T, callback: (value: ListenerTypeValueMap[T]) => void) => () => void;
|
|
474
|
+
listenToPosition: (key: string, callback: (value: number) => void) => () => void;
|
|
471
475
|
positionAtIndex: (index: number) => number;
|
|
472
|
-
|
|
476
|
+
positionByKey: (key: string) => number | undefined;
|
|
473
477
|
scroll: number;
|
|
474
478
|
scrollLength: number;
|
|
479
|
+
scrollVelocity: number;
|
|
475
480
|
sizeAtIndex: (index: number) => number;
|
|
476
481
|
sizes: Map<string, number>;
|
|
477
482
|
start: number;
|
|
478
483
|
startBuffered: number;
|
|
479
484
|
};
|
|
480
|
-
type LegendListRef = {
|
|
485
|
+
type LegendListRef$1 = {
|
|
481
486
|
/**
|
|
482
487
|
* Displays the scroll indicators momentarily.
|
|
483
488
|
*/
|
|
@@ -485,7 +490,7 @@ type LegendListRef = {
|
|
|
485
490
|
/**
|
|
486
491
|
* Returns the native ScrollView component reference.
|
|
487
492
|
*/
|
|
488
|
-
getNativeScrollRef():
|
|
493
|
+
getNativeScrollRef(): any;
|
|
489
494
|
/**
|
|
490
495
|
* Returns the scroll responder instance for handling scroll events.
|
|
491
496
|
*/
|
|
@@ -493,11 +498,11 @@ type LegendListRef = {
|
|
|
493
498
|
/**
|
|
494
499
|
* Returns the ScrollResponderMixin for advanced scroll handling.
|
|
495
500
|
*/
|
|
496
|
-
getScrollResponder():
|
|
501
|
+
getScrollResponder(): any;
|
|
497
502
|
/**
|
|
498
503
|
* Returns the internal state of the scroll virtualization.
|
|
499
504
|
*/
|
|
500
|
-
getState():
|
|
505
|
+
getState(): LegendListState$1;
|
|
501
506
|
/**
|
|
502
507
|
* Scrolls a specific index into view.
|
|
503
508
|
* @param params - Parameters for scrolling.
|
|
@@ -507,7 +512,7 @@ type LegendListRef = {
|
|
|
507
512
|
scrollIndexIntoView(params: {
|
|
508
513
|
animated?: boolean | undefined;
|
|
509
514
|
index: number;
|
|
510
|
-
}): void
|
|
515
|
+
}): Promise<void>;
|
|
511
516
|
/**
|
|
512
517
|
* Scrolls a specific index into view.
|
|
513
518
|
* @param params - Parameters for scrolling.
|
|
@@ -517,7 +522,7 @@ type LegendListRef = {
|
|
|
517
522
|
scrollItemIntoView(params: {
|
|
518
523
|
animated?: boolean | undefined;
|
|
519
524
|
item: any;
|
|
520
|
-
}): void
|
|
525
|
+
}): Promise<void>;
|
|
521
526
|
/**
|
|
522
527
|
* Scrolls to the end of the list.
|
|
523
528
|
* @param options - Options for scrolling.
|
|
@@ -527,7 +532,7 @@ type LegendListRef = {
|
|
|
527
532
|
scrollToEnd(options?: {
|
|
528
533
|
animated?: boolean | undefined;
|
|
529
534
|
viewOffset?: number | undefined;
|
|
530
|
-
}): void
|
|
535
|
+
}): Promise<void>;
|
|
531
536
|
/**
|
|
532
537
|
* Scrolls to a specific index in the list.
|
|
533
538
|
* @param params - Parameters for scrolling.
|
|
@@ -541,7 +546,7 @@ type LegendListRef = {
|
|
|
541
546
|
index: number;
|
|
542
547
|
viewOffset?: number | undefined;
|
|
543
548
|
viewPosition?: number | undefined;
|
|
544
|
-
}): void
|
|
549
|
+
}): Promise<void>;
|
|
545
550
|
/**
|
|
546
551
|
* Scrolls to a specific item in the list.
|
|
547
552
|
* @param params - Parameters for scrolling.
|
|
@@ -555,7 +560,7 @@ type LegendListRef = {
|
|
|
555
560
|
item: any;
|
|
556
561
|
viewOffset?: number | undefined;
|
|
557
562
|
viewPosition?: number | undefined;
|
|
558
|
-
}): void
|
|
563
|
+
}): Promise<void>;
|
|
559
564
|
/**
|
|
560
565
|
* Scrolls to a specific offset in pixels.
|
|
561
566
|
* @param params - Parameters for scrolling.
|
|
@@ -565,42 +570,60 @@ type LegendListRef = {
|
|
|
565
570
|
scrollToOffset(params: {
|
|
566
571
|
offset: number;
|
|
567
572
|
animated?: boolean | undefined;
|
|
568
|
-
}): void
|
|
573
|
+
}): Promise<void>;
|
|
569
574
|
/**
|
|
570
575
|
* Sets or adds to the offset of the visible content anchor.
|
|
571
576
|
* @param value - The offset to set or add.
|
|
572
577
|
* @param animated - If true, uses Animated to animate the change.
|
|
573
578
|
*/
|
|
574
|
-
setVisibleContentAnchorOffset(value: number | ((
|
|
579
|
+
setVisibleContentAnchorOffset(value: number | ((val: number) => number)): void;
|
|
575
580
|
/**
|
|
576
581
|
* Sets whether scroll processing is enabled.
|
|
577
582
|
* @param enabled - If true, scroll processing is enabled.
|
|
578
583
|
*/
|
|
579
584
|
setScrollProcessingEnabled(enabled: boolean): void;
|
|
585
|
+
/**
|
|
586
|
+
* Clears internal virtualization caches.
|
|
587
|
+
* @param options - Cache clearing options.
|
|
588
|
+
* @param options.mode - `sizes` clears measurement caches. `full` also clears key/position caches.
|
|
589
|
+
*/
|
|
590
|
+
clearCaches(options?: {
|
|
591
|
+
mode?: "sizes" | "full";
|
|
592
|
+
}): void;
|
|
593
|
+
/**
|
|
594
|
+
* Reports an externally measured content inset. Pass null/undefined to clear.
|
|
595
|
+
* Values are merged on top of props/animated/native insets.
|
|
596
|
+
*/
|
|
597
|
+
reportContentInset(inset?: Partial<Insets> | null): void;
|
|
580
598
|
};
|
|
581
599
|
interface ViewToken<ItemT = any> {
|
|
582
|
-
|
|
583
|
-
key: string;
|
|
600
|
+
containerId: number;
|
|
584
601
|
index: number;
|
|
585
602
|
isViewable: boolean;
|
|
586
|
-
|
|
603
|
+
item: ItemT;
|
|
604
|
+
key: string;
|
|
587
605
|
}
|
|
588
606
|
interface ViewAmountToken<ItemT = any> extends ViewToken<ItemT> {
|
|
589
|
-
sizeVisible: number;
|
|
590
|
-
size: number;
|
|
591
|
-
percentVisible: number;
|
|
592
607
|
percentOfScroller: number;
|
|
608
|
+
percentVisible: number;
|
|
593
609
|
scrollSize: number;
|
|
610
|
+
size: number;
|
|
611
|
+
sizeVisible: number;
|
|
594
612
|
}
|
|
595
613
|
interface ViewabilityConfigCallbackPair<ItemT = any> {
|
|
596
|
-
viewabilityConfig: ViewabilityConfig;
|
|
597
614
|
onViewableItemsChanged?: OnViewableItemsChanged<ItemT>;
|
|
615
|
+
viewabilityConfig: ViewabilityConfig;
|
|
598
616
|
}
|
|
599
617
|
type ViewabilityConfigCallbackPairs<ItemT> = ViewabilityConfigCallbackPair<ItemT>[];
|
|
600
|
-
|
|
601
|
-
viewableItems: Array<ViewToken<ItemT>>;
|
|
618
|
+
interface OnViewableItemsChangedInfo<ItemT> {
|
|
602
619
|
changed: Array<ViewToken<ItemT>>;
|
|
603
|
-
|
|
620
|
+
end: number;
|
|
621
|
+
endBuffered: number;
|
|
622
|
+
start: number;
|
|
623
|
+
startBuffered: number;
|
|
624
|
+
viewableItems: Array<ViewToken<ItemT>>;
|
|
625
|
+
}
|
|
626
|
+
type OnViewableItemsChanged<ItemT> = ((info: OnViewableItemsChangedInfo<ItemT>) => void) | null;
|
|
604
627
|
interface ViewabilityConfig {
|
|
605
628
|
/**
|
|
606
629
|
* A unique ID to identify this viewability config
|
|
@@ -633,17 +656,11 @@ interface ViewabilityConfig {
|
|
|
633
656
|
type ViewabilityCallback<ItemT = any> = (viewToken: ViewToken<ItemT>) => void;
|
|
634
657
|
type ViewabilityAmountCallback<ItemT = any> = (viewToken: ViewAmountToken<ItemT>) => void;
|
|
635
658
|
interface LegendListRecyclingState<T> {
|
|
636
|
-
item: T;
|
|
637
|
-
prevItem: T | undefined;
|
|
638
659
|
index: number;
|
|
660
|
+
item: T;
|
|
639
661
|
prevIndex: number | undefined;
|
|
662
|
+
prevItem: T | undefined;
|
|
640
663
|
}
|
|
641
|
-
type TypedForwardRef = <T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactNode) => (props: P & React.RefAttributes<T>) => React.ReactNode;
|
|
642
|
-
declare const typedForwardRef: TypedForwardRef;
|
|
643
|
-
type TypedMemo = <T extends React.ComponentType<any>>(Component: T, propsAreEqual?: (prevProps: Readonly<React.JSXElementConstructor<T>>, nextProps: Readonly<React.JSXElementConstructor<T>>) => boolean) => T & {
|
|
644
|
-
displayName?: string;
|
|
645
|
-
};
|
|
646
|
-
declare const typedMemo: TypedMemo;
|
|
647
664
|
interface ScrollIndexWithOffset {
|
|
648
665
|
index: number;
|
|
649
666
|
viewOffset?: number;
|
|
@@ -655,16 +672,42 @@ interface ScrollIndexWithOffsetPosition extends ScrollIndexWithOffset {
|
|
|
655
672
|
interface ScrollIndexWithOffsetAndContentOffset extends ScrollIndexWithOffsetPosition {
|
|
656
673
|
contentOffset?: number;
|
|
657
674
|
}
|
|
675
|
+
/** @deprecated Kept for backwards compatibility. Use `ScrollIndexWithOffsetPosition`. */
|
|
658
676
|
interface InitialScrollAnchor extends ScrollIndexWithOffsetPosition {
|
|
659
677
|
attempts?: number;
|
|
660
678
|
lastDelta?: number;
|
|
661
679
|
settledTicks?: number;
|
|
662
680
|
}
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
681
|
+
|
|
682
|
+
type LegendListPropsOverrides<ItemT, TItemType extends string | undefined> = Omit<LegendListPropsBase<ItemT, ScrollViewProps, TItemType>, "anchoredEndSpace" | "onScroll" | "refScrollView" | "renderScrollComponent" | "ListHeaderComponentStyle" | "ListFooterComponentStyle"> & {
|
|
683
|
+
onScroll?: (event: NativeSyntheticEvent$1<NativeScrollEvent$1>) => void;
|
|
684
|
+
refScrollView?: React.Ref<ScrollView>;
|
|
685
|
+
renderScrollComponent?: (props: ScrollViewProps) => React.ReactElement<ScrollViewProps>;
|
|
686
|
+
ListHeaderComponentStyle?: StyleProp$1<ViewStyle$1> | undefined;
|
|
687
|
+
ListFooterComponentStyle?: StyleProp$1<ViewStyle$1> | undefined;
|
|
688
|
+
};
|
|
689
|
+
type LegendListProps<ItemT = any, TItemType extends string | undefined = string | undefined> = LegendListPropsOverrides<ItemT, TItemType>;
|
|
690
|
+
type LegendListRef = Omit<LegendListRef$1, "getNativeScrollRef" | "getScrollResponder" | "reportContentInset"> & {
|
|
691
|
+
getNativeScrollRef(): React.ElementRef<typeof ScrollViewComponent>;
|
|
692
|
+
getScrollResponder(): ScrollResponderMixin;
|
|
693
|
+
reportContentInset(inset?: Partial<Insets$1> | null): void;
|
|
694
|
+
};
|
|
695
|
+
type LegendListState = Omit<LegendListState$1, "elementAtIndex"> & {
|
|
696
|
+
elementAtIndex: (index: number) => View | null | undefined;
|
|
667
697
|
};
|
|
668
|
-
type
|
|
698
|
+
type LegendListComponent = <ItemT = any>(props: LegendListProps<ItemT> & React.RefAttributes<LegendListRef>) => React.ReactElement | null;
|
|
699
|
+
|
|
700
|
+
declare function useViewability<ItemT = any>(callback: ViewabilityCallback<ItemT>, configId?: string): void;
|
|
701
|
+
declare function useViewabilityAmount<ItemT = any>(callback: ViewabilityAmountCallback<ItemT>): void;
|
|
702
|
+
declare function useRecyclingEffect(effect: (info: LegendListRecyclingState<unknown>) => void | (() => void)): void;
|
|
703
|
+
declare function useRecyclingState<ItemT>(valueOrFun: ((info: LegendListRecyclingState<ItemT>) => ItemT) | ItemT): readonly [ItemT, Dispatch<SetStateAction<ItemT>>];
|
|
704
|
+
declare function useIsLastItem(): boolean;
|
|
705
|
+
declare function useListScrollSize(): {
|
|
706
|
+
width: number;
|
|
707
|
+
height: number;
|
|
708
|
+
};
|
|
709
|
+
declare function useSyncLayout(): () => void;
|
|
710
|
+
|
|
711
|
+
declare const LegendList: LegendListComponent;
|
|
669
712
|
|
|
670
|
-
export { type
|
|
713
|
+
export { type AlwaysRenderConfig, type ColumnWrapperStyle, type InitialScrollAnchor, type Insets, type LayoutRectangle, LegendList, type LegendListComponent, type LegendListMetrics, type LegendListProps, type LegendListRecyclingState, type LegendListRef, type LegendListRenderItemProps, type LegendListState, type MaintainScrollAtEndOnOptions, type MaintainScrollAtEndOptions, type MaintainVisibleContentPositionConfig, type NativeScrollEvent, type NativeSyntheticEvent, type OnViewableItemsChanged, type OnViewableItemsChangedInfo, type ScrollIndexWithOffset, type ScrollIndexWithOffsetAndContentOffset, type ScrollIndexWithOffsetPosition, type StickyHeaderConfig, type StyleProp, type ViewAmountToken, type ViewStyle, type ViewToken, type ViewabilityAmountCallback, type ViewabilityCallback, type ViewabilityConfig, type ViewabilityConfigCallbackPair, type ViewabilityConfigCallbackPairs, useIsLastItem, useListScrollSize, useRecyclingEffect, useRecyclingState, useSyncLayout, useViewability, useViewabilityAmount };
|