@legendapp/list 1.0.0-beta.4 → 1.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.
@@ -0,0 +1,396 @@
1
+ import * as _legendapp_list from '@legendapp/list';
2
+ import { LegendListRef } from '@legendapp/list';
3
+ import * as react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe from 'react-native-reanimated/lib/typescript/layoutReanimation/animationBuilder/Keyframe';
4
+ import * as react_native from 'react-native';
5
+ import * as react_native_reanimated from 'react-native-reanimated';
6
+ import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
7
+ import * as React from 'react';
8
+
9
+ declare const KeyboardAvoidingLegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendapp_list_reanimated.AnimatedLegendListPropsBase<ItemT_1>, "refLegendList"> & {
10
+ getEstimatedItemSize?: ((index: number, item: ItemT_1) => number) | undefined;
11
+ keyExtractor?: ((item: ItemT_1, index: number) => string) | undefined;
12
+ animatedProps?: Partial<{
13
+ decelerationRate?: number | "fast" | "normal" | react_native_reanimated.SharedValue<number | "fast" | "normal" | undefined> | undefined;
14
+ horizontal?: boolean | react_native_reanimated.SharedValue<boolean | null | undefined> | null | undefined;
15
+ invertStickyHeaders?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
16
+ keyboardDismissMode?: "none" | "interactive" | "on-drag" | react_native_reanimated.SharedValue<"none" | "interactive" | "on-drag" | undefined> | undefined;
17
+ keyboardShouldPersistTaps?: boolean | "always" | "never" | "handled" | react_native_reanimated.SharedValue<boolean | "always" | "never" | "handled" | undefined> | undefined;
18
+ onContentSizeChange?: ((w: number, h: number) => void) | react_native_reanimated.SharedValue<((w: number, h: number) => void) | undefined> | undefined;
19
+ onScroll?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
20
+ onScrollBeginDrag?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
21
+ onScrollEndDrag?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
22
+ onMomentumScrollEnd?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
23
+ onMomentumScrollBegin?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
24
+ pagingEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
25
+ scrollEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
26
+ removeClippedSubviews?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
27
+ showsHorizontalScrollIndicator?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
28
+ showsVerticalScrollIndicator?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
29
+ stickyHeaderHiddenOnScroll?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
30
+ refreshControl?: React.ReactElement<react_native.RefreshControlProps, string | React.JSXElementConstructor<any>> | react_native_reanimated.SharedValue<React.ReactElement<react_native.RefreshControlProps, string | React.JSXElementConstructor<any>> | undefined> | undefined;
31
+ snapToInterval?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
32
+ snapToOffsets?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
33
+ snapToStart?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
34
+ snapToEnd?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
35
+ stickyHeaderIndices?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
36
+ disableIntervalMomentum?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
37
+ disableScrollViewPanResponder?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
38
+ StickyHeaderComponent?: React.ComponentType<any> | react_native_reanimated.SharedValue<React.ComponentType<any> | undefined> | undefined;
39
+ children?: React.ReactNode | react_native_reanimated.SharedValue<React.ReactNode>;
40
+ hitSlop?: number | react_native.Insets | react_native_reanimated.SharedValue<number | react_native.Insets | null | undefined> | null | undefined;
41
+ id?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
42
+ needsOffscreenAlphaCompositing?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
43
+ onLayout?: ((event: react_native.LayoutChangeEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.LayoutChangeEvent) => void) | undefined> | undefined;
44
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | react_native_reanimated.SharedValue<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
45
+ testID?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
46
+ nativeID?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
47
+ className?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
48
+ collapsable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
49
+ collapsableChildren?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
50
+ renderToHardwareTextureAndroid?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
51
+ focusable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
52
+ tabIndex?: 0 | -1 | react_native_reanimated.SharedValue<0 | -1 | undefined> | undefined;
53
+ shouldRasterizeIOS?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
54
+ isTVSelectable?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
55
+ hasTVPreferredFocus?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
56
+ tvParallaxShiftDistanceX?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
57
+ tvParallaxShiftDistanceY?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
58
+ tvParallaxTiltAngle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
59
+ tvParallaxMagnification?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
60
+ onStartShouldSetResponder?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
61
+ onMoveShouldSetResponder?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
62
+ onResponderEnd?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
63
+ onResponderGrant?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
64
+ onResponderReject?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
65
+ onResponderMove?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
66
+ onResponderRelease?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
67
+ onResponderStart?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
68
+ onResponderTerminationRequest?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
69
+ onResponderTerminate?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
70
+ onStartShouldSetResponderCapture?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
71
+ onMoveShouldSetResponderCapture?: ((event: react_native.GestureResponderEvent) => boolean) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => boolean) | undefined> | undefined;
72
+ onTouchStart?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
73
+ onTouchMove?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
74
+ onTouchEnd?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
75
+ onTouchCancel?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
76
+ onTouchEndCapture?: ((event: react_native.GestureResponderEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.GestureResponderEvent) => void) | undefined> | undefined;
77
+ onPointerEnter?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
78
+ onPointerEnterCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
79
+ onPointerLeave?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
80
+ onPointerLeaveCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
81
+ onPointerMove?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
82
+ onPointerMoveCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
83
+ onPointerCancel?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
84
+ onPointerCancelCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
85
+ onPointerDown?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
86
+ onPointerDownCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
87
+ onPointerUp?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
88
+ onPointerUpCapture?: ((event: react_native.PointerEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.PointerEvent) => void) | undefined> | undefined;
89
+ accessible?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
90
+ accessibilityActions?: readonly Readonly<{
91
+ name: react_native.AccessibilityActionName | string;
92
+ label?: string | undefined;
93
+ }>[] | react_native_reanimated.SharedValue<readonly Readonly<{
94
+ name: react_native.AccessibilityActionName | string;
95
+ label?: string | undefined;
96
+ }>[] | undefined> | undefined;
97
+ accessibilityLabel?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
98
+ 'aria-label'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
99
+ accessibilityRole?: react_native.AccessibilityRole | react_native_reanimated.SharedValue<react_native.AccessibilityRole | undefined> | undefined;
100
+ accessibilityState?: react_native.AccessibilityState | react_native_reanimated.SharedValue<react_native.AccessibilityState | undefined> | undefined;
101
+ 'aria-busy'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
102
+ 'aria-checked'?: boolean | "mixed" | react_native_reanimated.SharedValue<boolean | "mixed" | undefined> | undefined;
103
+ 'aria-disabled'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
104
+ 'aria-expanded'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
105
+ 'aria-selected'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
106
+ accessibilityHint?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
107
+ accessibilityValue?: react_native.AccessibilityValue | react_native_reanimated.SharedValue<react_native.AccessibilityValue | undefined> | undefined;
108
+ 'aria-valuemax'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
109
+ 'aria-valuemin'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
110
+ 'aria-valuenow'?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
111
+ 'aria-valuetext'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
112
+ onAccessibilityAction?: ((event: react_native.AccessibilityActionEvent) => void) | react_native_reanimated.SharedValue<((event: react_native.AccessibilityActionEvent) => void) | undefined> | undefined;
113
+ importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | react_native_reanimated.SharedValue<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
114
+ 'aria-hidden'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
115
+ 'aria-modal'?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
116
+ role?: react_native.Role | react_native_reanimated.SharedValue<react_native.Role | undefined> | undefined;
117
+ accessibilityLabelledBy?: string | string[] | react_native_reanimated.SharedValue<string | string[] | undefined> | undefined;
118
+ 'aria-labelledby'?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
119
+ accessibilityLiveRegion?: "none" | "polite" | "assertive" | react_native_reanimated.SharedValue<"none" | "polite" | "assertive" | undefined> | undefined;
120
+ 'aria-live'?: "polite" | "assertive" | "off" | react_native_reanimated.SharedValue<"polite" | "assertive" | "off" | undefined> | undefined;
121
+ accessibilityElementsHidden?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
122
+ accessibilityViewIsModal?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
123
+ onAccessibilityEscape?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
124
+ onAccessibilityTap?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
125
+ onMagicTap?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
126
+ accessibilityIgnoresInvertColors?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
127
+ accessibilityLanguage?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
128
+ accessibilityShowsLargeContentViewer?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
129
+ accessibilityLargeContentTitle?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
130
+ alwaysBounceHorizontal?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
131
+ alwaysBounceVertical?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
132
+ automaticallyAdjustContentInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
133
+ automaticallyAdjustKeyboardInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
134
+ automaticallyAdjustsScrollIndicatorInsets?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
135
+ bounces?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
136
+ bouncesZoom?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
137
+ canCancelContentTouches?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
138
+ centerContent?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
139
+ contentInset?: react_native.Insets | react_native_reanimated.SharedValue<react_native.Insets | undefined> | undefined;
140
+ contentOffset?: react_native.PointProp | react_native_reanimated.SharedValue<react_native.PointProp | undefined> | undefined;
141
+ contentInsetAdjustmentBehavior?: "always" | "never" | "automatic" | "scrollableAxes" | react_native_reanimated.SharedValue<"always" | "never" | "automatic" | "scrollableAxes" | undefined> | undefined;
142
+ directionalLockEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
143
+ maintainVisibleContentPosition?: {
144
+ autoscrollToTopThreshold?: number | null | undefined;
145
+ minIndexForVisible: number;
146
+ } | react_native_reanimated.SharedValue<{
147
+ autoscrollToTopThreshold?: number | null | undefined;
148
+ minIndexForVisible: number;
149
+ } | null | undefined> | null | undefined;
150
+ maximumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
151
+ minimumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
152
+ onScrollAnimationEnd?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
153
+ pinchGestureEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
154
+ scrollEventThrottle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
155
+ scrollIndicatorInsets?: react_native.Insets | react_native_reanimated.SharedValue<react_native.Insets | undefined> | undefined;
156
+ scrollToOverflowEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
157
+ scrollsToTop?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
158
+ snapToAlignment?: "center" | "start" | "end" | react_native_reanimated.SharedValue<"center" | "start" | "end" | undefined> | undefined;
159
+ onScrollToTop?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
160
+ zoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
161
+ endFillColor?: react_native.ColorValue | react_native_reanimated.SharedValue<react_native.ColorValue | undefined> | undefined;
162
+ scrollPerfTag?: string | react_native_reanimated.SharedValue<string | undefined> | undefined;
163
+ overScrollMode?: "auto" | "always" | "never" | react_native_reanimated.SharedValue<"auto" | "always" | "never" | undefined> | undefined;
164
+ nestedScrollEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
165
+ fadingEdgeLength?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
166
+ persistentScrollbar?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
167
+ } & {
168
+ style?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
169
+ contentContainerStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
170
+ indicatorStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<"default" | "black" | "white" | undefined>>;
171
+ } & {
172
+ layout?: react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.LayoutAnimationFunction | typeof react_native_reanimated.BaseAnimationBuilder;
173
+ entering?: react_native_reanimated.BaseAnimationBuilder | typeof react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.EntryExitAnimationFunction | react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe.ReanimatedKeyframe;
174
+ exiting?: react_native_reanimated.BaseAnimationBuilder | typeof react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.EntryExitAnimationFunction | react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe.ReanimatedKeyframe;
175
+ } & {
176
+ sharedTransitionTag?: string;
177
+ sharedTransitionStyle?: react_native_reanimated.SharedTransition;
178
+ }> | undefined;
179
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT_1>) => React.ReactNode) | undefined;
180
+ onItemSizeChanged?: ((info: {
181
+ size: number;
182
+ previous: number;
183
+ index: number;
184
+ itemKey: string;
185
+ itemData: ItemT_1;
186
+ }) => void) | undefined;
187
+ ItemSeparatorComponent?: React.ComponentType<{
188
+ leadingItem: ItemT_1;
189
+ }> | undefined;
190
+ } & {
191
+ ref?: React.Ref<LegendListRef>;
192
+ }) => React.ReactElement | null) | (<T>(props: Omit<react_native.ScrollViewProps, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
193
+ alignItemsAtEnd?: boolean;
194
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
195
+ data: readonly T[];
196
+ drawDistance?: number;
197
+ estimatedItemSize?: number;
198
+ extraData?: any;
199
+ getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
200
+ initialContainerPoolRatio?: number | undefined;
201
+ initialScrollOffset?: number;
202
+ initialScrollIndex?: number;
203
+ ItemSeparatorComponent?: React.ComponentType<{
204
+ leadingItem: T;
205
+ }> | undefined;
206
+ keyExtractor?: ((item: T, index: number) => string) | undefined;
207
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
208
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
209
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
210
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
211
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
212
+ maintainScrollAtEnd?: boolean;
213
+ maintainScrollAtEndThreshold?: number;
214
+ maintainVisibleContentPosition?: boolean;
215
+ numColumns?: number;
216
+ onEndReached?: ((info: {
217
+ distanceFromEnd: number;
218
+ }) => void) | null | undefined;
219
+ onEndReachedThreshold?: number | null | undefined;
220
+ onItemSizeChanged?: ((info: {
221
+ size: number;
222
+ previous: number;
223
+ index: number;
224
+ itemKey: string;
225
+ itemData: T;
226
+ }) => void) | undefined;
227
+ onRefresh?: () => void;
228
+ onStartReached?: ((info: {
229
+ distanceFromStart: number;
230
+ }) => void) | null | undefined;
231
+ onStartReachedThreshold?: number | null | undefined;
232
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
233
+ progressViewOffset?: number;
234
+ recycleItems?: boolean;
235
+ refScrollView?: React.Ref<react_native.ScrollView>;
236
+ refreshing?: boolean;
237
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
238
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
239
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
240
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
241
+ waitForInitialLayout?: boolean;
242
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<react_native.ScrollViewProps, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
243
+ alignItemsAtEnd?: boolean;
244
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
245
+ data: readonly T[];
246
+ drawDistance?: number;
247
+ estimatedItemSize?: number;
248
+ extraData?: any;
249
+ getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
250
+ initialContainerPoolRatio?: number | undefined;
251
+ initialScrollOffset?: number;
252
+ initialScrollIndex?: number;
253
+ ItemSeparatorComponent?: React.ComponentType<{
254
+ leadingItem: T;
255
+ }> | undefined;
256
+ keyExtractor?: ((item: T, index: number) => string) | undefined;
257
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
258
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
259
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
260
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
261
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
262
+ maintainScrollAtEnd?: boolean;
263
+ maintainScrollAtEndThreshold?: number;
264
+ maintainVisibleContentPosition?: boolean;
265
+ numColumns?: number;
266
+ onEndReached?: ((info: {
267
+ distanceFromEnd: number;
268
+ }) => void) | null | undefined;
269
+ onEndReachedThreshold?: number | null | undefined;
270
+ onItemSizeChanged?: ((info: {
271
+ size: number;
272
+ previous: number;
273
+ index: number;
274
+ itemKey: string;
275
+ itemData: T;
276
+ }) => void) | undefined;
277
+ onRefresh?: () => void;
278
+ onStartReached?: ((info: {
279
+ distanceFromStart: number;
280
+ }) => void) | null | undefined;
281
+ onStartReachedThreshold?: number | null | undefined;
282
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
283
+ progressViewOffset?: number;
284
+ recycleItems?: boolean;
285
+ refScrollView?: React.Ref<react_native.ScrollView>;
286
+ refreshing?: boolean;
287
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
288
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
289
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
290
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
291
+ waitForInitialLayout?: boolean;
292
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode)> = <T>(props: Omit<react_native.ScrollViewProps, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
293
+ alignItemsAtEnd?: boolean;
294
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
295
+ data: readonly T[];
296
+ drawDistance?: number;
297
+ estimatedItemSize?: number;
298
+ extraData?: any;
299
+ getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
300
+ initialContainerPoolRatio?: number | undefined;
301
+ initialScrollOffset?: number;
302
+ initialScrollIndex?: number;
303
+ ItemSeparatorComponent?: React.ComponentType<{
304
+ leadingItem: T;
305
+ }> | undefined;
306
+ keyExtractor?: ((item: T, index: number) => string) | undefined;
307
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
308
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
309
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
310
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
311
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
312
+ maintainScrollAtEnd?: boolean;
313
+ maintainScrollAtEndThreshold?: number;
314
+ maintainVisibleContentPosition?: boolean;
315
+ numColumns?: number;
316
+ onEndReached?: ((info: {
317
+ distanceFromEnd: number;
318
+ }) => void) | null | undefined;
319
+ onEndReachedThreshold?: number | null | undefined;
320
+ onItemSizeChanged?: ((info: {
321
+ size: number;
322
+ previous: number;
323
+ index: number;
324
+ itemKey: string;
325
+ itemData: T;
326
+ }) => void) | undefined;
327
+ onRefresh?: () => void;
328
+ onStartReached?: ((info: {
329
+ distanceFromStart: number;
330
+ }) => void) | null | undefined;
331
+ onStartReachedThreshold?: number | null | undefined;
332
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
333
+ progressViewOffset?: number;
334
+ recycleItems?: boolean;
335
+ refScrollView?: React.Ref<react_native.ScrollView>;
336
+ refreshing?: boolean;
337
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
338
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
339
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
340
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
341
+ waitForInitialLayout?: boolean;
342
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<react_native.ScrollViewProps, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
343
+ alignItemsAtEnd?: boolean;
344
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
345
+ data: readonly ItemT[];
346
+ drawDistance?: number;
347
+ estimatedItemSize?: number;
348
+ extraData?: any;
349
+ getEstimatedItemSize?: ((index: number, item: ItemT) => number) | undefined;
350
+ initialContainerPoolRatio?: number | undefined;
351
+ initialScrollOffset?: number;
352
+ initialScrollIndex?: number;
353
+ ItemSeparatorComponent?: React.ComponentType<{
354
+ leadingItem: ItemT;
355
+ }> | undefined;
356
+ keyExtractor?: ((item: ItemT, index: number) => string) | undefined;
357
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
358
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
359
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
360
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
361
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
362
+ maintainScrollAtEnd?: boolean;
363
+ maintainScrollAtEndThreshold?: number;
364
+ maintainVisibleContentPosition?: boolean;
365
+ numColumns?: number;
366
+ onEndReached?: ((info: {
367
+ distanceFromEnd: number;
368
+ }) => void) | null | undefined;
369
+ onEndReachedThreshold?: number | null | undefined;
370
+ onItemSizeChanged?: ((info: {
371
+ size: number;
372
+ previous: number;
373
+ index: number;
374
+ itemKey: string;
375
+ itemData: ItemT;
376
+ }) => void) | undefined;
377
+ onRefresh?: () => void;
378
+ onStartReached?: ((info: {
379
+ distanceFromStart: number;
380
+ }) => void) | null | undefined;
381
+ onStartReachedThreshold?: number | null | undefined;
382
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
383
+ progressViewOffset?: number;
384
+ recycleItems?: boolean;
385
+ refScrollView?: React.Ref<react_native.ScrollView>;
386
+ refreshing?: boolean;
387
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT>) => React.ReactNode) | undefined;
388
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
389
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
390
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
391
+ waitForInitialLayout?: boolean;
392
+ } & {
393
+ LegendList?: ListT;
394
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode;
395
+
396
+ export { KeyboardAvoidingLegendList };
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var list = require('@legendapp/list');
4
+ var React = require('react');
5
+ var reactNativeKeyboardController = require('react-native-keyboard-controller');
6
+ var reactNativeReanimated = require('react-native-reanimated');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ // src/keyboard-controller.tsx
29
+ var typedForwardRef = React.forwardRef;
30
+ var KeyboardAvoidingLegendList = typedForwardRef(function KeyboardAvoidingLegendList2(props, forwardedRef) {
31
+ const { LegendList: LegendListProp, ...rest } = props;
32
+ const [padding, setPadding] = React.useState(0);
33
+ const updatePadding = (height) => {
34
+ setPadding(height);
35
+ };
36
+ reactNativeKeyboardController.useKeyboardHandler({
37
+ onEnd: (e) => {
38
+ "worklet";
39
+ reactNativeReanimated.runOnJS(updatePadding)(e.height);
40
+ }
41
+ });
42
+ const LegendListComponent = LegendListProp != null ? LegendListProp : list.LegendList;
43
+ return /* @__PURE__ */ React__namespace.createElement(LegendListComponent, { style: { paddingTop: padding }, ...rest, ref: forwardedRef });
44
+ });
45
+
46
+ exports.KeyboardAvoidingLegendList = KeyboardAvoidingLegendList;
@@ -0,0 +1,25 @@
1
+ import { LegendList } from '@legendapp/list';
2
+ import * as React from 'react';
3
+ import { useState, forwardRef } from 'react';
4
+ import { useKeyboardHandler } from 'react-native-keyboard-controller';
5
+ import { runOnJS } from 'react-native-reanimated';
6
+
7
+ // src/keyboard-controller.tsx
8
+ var typedForwardRef = forwardRef;
9
+ var KeyboardAvoidingLegendList = typedForwardRef(function KeyboardAvoidingLegendList2(props, forwardedRef) {
10
+ const { LegendList: LegendListProp, ...rest } = props;
11
+ const [padding, setPadding] = useState(0);
12
+ const updatePadding = (height) => {
13
+ setPadding(height);
14
+ };
15
+ useKeyboardHandler({
16
+ onEnd: (e) => {
17
+ "worklet";
18
+ runOnJS(updatePadding)(e.height);
19
+ }
20
+ });
21
+ const LegendListComponent = LegendListProp != null ? LegendListProp : LegendList;
22
+ return /* @__PURE__ */ React.createElement(LegendListComponent, { style: { paddingTop: padding }, ...rest, ref: forwardedRef });
23
+ });
24
+
25
+ export { KeyboardAvoidingLegendList };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@legendapp/list",
3
- "version": "1.0.0-beta.4",
4
- "description": "legend-list",
3
+ "version": "1.0.0-beta.40",
4
+ "description": "Legend List aims to be a drop-in replacement for FlatList with much better performance and supporting dynamically sized items.",
5
5
  "sideEffects": false,
6
6
  "private": false,
7
7
  "main": "./index.js",
@@ -20,10 +20,7 @@
20
20
  "react-native",
21
21
  "list"
22
22
  ],
23
- "repository": {
24
- "type": "git",
25
- "url": "git+https://github.com/LegendApp/legend-list.git"
26
- },
23
+ "repository": "github:LegendApp/legend-list",
27
24
  "license": "MIT",
28
25
  "bugs": {
29
26
  "url": "https://github.com/LegendApp/legend-list/issues"
package/reanimated.d.mts CHANGED
@@ -1,13 +1,17 @@
1
- import { LegendListRef, LegendListPropsBase } from '@legendapp/list';
2
- import react__default, { ComponentProps } from 'react';
3
- import Animated from 'react-native-reanimated';
1
+ import { LegendListPropsBase, LegendListRef } from '@legendapp/list';
2
+ import React__default, { ComponentProps } from 'react';
3
+ import react_native_reanimated__default from 'react-native-reanimated';
4
4
 
5
- type KeysToOmit = "getEstimatedItemSize" | "keyExtractor" | "animatedProps" | "renderItem" | "onItemSizeChanged";
6
- type PropsBase<ItemT> = LegendListPropsBase<ItemT, ComponentProps<typeof Animated.ScrollView>>;
7
- interface AnimatedLegendListProps<ItemT> extends Omit<PropsBase<ItemT>, KeysToOmit> {
8
- refScrollView?: react__default.Ref<Animated.ScrollView>;
5
+ type KeysToOmit = "getEstimatedItemSize" | "keyExtractor" | "animatedProps" | "renderItem" | "onItemSizeChanged" | "ItemSeparatorComponent";
6
+ type PropsBase<ItemT> = LegendListPropsBase<ItemT, ComponentProps<typeof react_native_reanimated__default.ScrollView>>;
7
+ interface AnimatedLegendListPropsBase<ItemT> extends Omit<PropsBase<ItemT>, KeysToOmit> {
8
+ refScrollView?: React__default.Ref<react_native_reanimated__default.ScrollView>;
9
9
  }
10
10
  type OtherAnimatedLegendListProps<ItemT> = Pick<PropsBase<ItemT>, KeysToOmit>;
11
- declare const AnimatedLegendList: react__default.ForwardRefExoticComponent<Omit<Omit<AnimatedLegendListProps<unknown>, "refLegendList"> & OtherAnimatedLegendListProps<unknown>, "ref"> & react__default.RefAttributes<LegendListRef>>;
11
+ type AnimatedLegendListProps<ItemT> = Omit<AnimatedLegendListPropsBase<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT>;
12
+ type AnimatedLegendListDefinition = <ItemT>(props: Omit<AnimatedLegendListPropsBase<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT> & {
13
+ ref?: React__default.Ref<LegendListRef>;
14
+ }) => React__default.ReactElement | null;
15
+ declare const AnimatedLegendList: AnimatedLegendListDefinition;
12
16
 
13
- export { AnimatedLegendList };
17
+ export { AnimatedLegendList, type AnimatedLegendListProps, type AnimatedLegendListPropsBase };
package/reanimated.d.ts CHANGED
@@ -1,13 +1,17 @@
1
- import { LegendListRef, LegendListPropsBase } from '@legendapp/list';
2
- import react__default, { ComponentProps } from 'react';
3
- import Animated from 'react-native-reanimated';
1
+ import { LegendListPropsBase, LegendListRef } from '@legendapp/list';
2
+ import React__default, { ComponentProps } from 'react';
3
+ import react_native_reanimated__default from 'react-native-reanimated';
4
4
 
5
- type KeysToOmit = "getEstimatedItemSize" | "keyExtractor" | "animatedProps" | "renderItem" | "onItemSizeChanged";
6
- type PropsBase<ItemT> = LegendListPropsBase<ItemT, ComponentProps<typeof Animated.ScrollView>>;
7
- interface AnimatedLegendListProps<ItemT> extends Omit<PropsBase<ItemT>, KeysToOmit> {
8
- refScrollView?: react__default.Ref<Animated.ScrollView>;
5
+ type KeysToOmit = "getEstimatedItemSize" | "keyExtractor" | "animatedProps" | "renderItem" | "onItemSizeChanged" | "ItemSeparatorComponent";
6
+ type PropsBase<ItemT> = LegendListPropsBase<ItemT, ComponentProps<typeof react_native_reanimated__default.ScrollView>>;
7
+ interface AnimatedLegendListPropsBase<ItemT> extends Omit<PropsBase<ItemT>, KeysToOmit> {
8
+ refScrollView?: React__default.Ref<react_native_reanimated__default.ScrollView>;
9
9
  }
10
10
  type OtherAnimatedLegendListProps<ItemT> = Pick<PropsBase<ItemT>, KeysToOmit>;
11
- declare const AnimatedLegendList: react__default.ForwardRefExoticComponent<Omit<Omit<AnimatedLegendListProps<unknown>, "refLegendList"> & OtherAnimatedLegendListProps<unknown>, "ref"> & react__default.RefAttributes<LegendListRef>>;
11
+ type AnimatedLegendListProps<ItemT> = Omit<AnimatedLegendListPropsBase<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT>;
12
+ type AnimatedLegendListDefinition = <ItemT>(props: Omit<AnimatedLegendListPropsBase<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT> & {
13
+ ref?: React__default.Ref<LegendListRef>;
14
+ }) => React__default.ReactElement | null;
15
+ declare const AnimatedLegendList: AnimatedLegendListDefinition;
12
16
 
13
- export { AnimatedLegendList };
17
+ export { AnimatedLegendList, type AnimatedLegendListProps, type AnimatedLegendListPropsBase };
package/reanimated.js CHANGED
@@ -9,6 +9,23 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var React__default = /*#__PURE__*/_interopDefault(React);
10
10
  var Animated__default = /*#__PURE__*/_interopDefault(Animated);
11
11
 
12
+ // src/reanimated.tsx
13
+ var useCombinedRef = (...refs) => {
14
+ const callback = React.useCallback((element) => {
15
+ for (const ref of refs) {
16
+ if (!ref) {
17
+ continue;
18
+ }
19
+ if (typeof ref === "function") {
20
+ ref(element);
21
+ } else {
22
+ ref.current = element;
23
+ }
24
+ }
25
+ }, refs);
26
+ return callback;
27
+ };
28
+
12
29
  // src/reanimated.tsx
13
30
  var LegendListForwardedRef = React__default.default.forwardRef(function LegendListForwardedRef2(props, ref) {
14
31
  const { refLegendList, ...rest } = props;
@@ -26,22 +43,9 @@ var LegendListForwardedRef = React__default.default.forwardRef(function LegendLi
26
43
  var AnimatedLegendListComponent = Animated__default.default.createAnimatedComponent(LegendListForwardedRef);
27
44
  var AnimatedLegendList = React__default.default.forwardRef(function AnimatedLegendList2(props, ref) {
28
45
  const { refScrollView, ...rest } = props;
29
- return /* @__PURE__ */ React__default.default.createElement(
30
- AnimatedLegendListComponent,
31
- {
32
- refLegendList: (r) => {
33
- if (ref) {
34
- if (typeof ref === "function") {
35
- ref(r);
36
- } else {
37
- ref.current = r;
38
- }
39
- }
40
- },
41
- ref: refScrollView,
42
- ...rest
43
- }
44
- );
46
+ const refLegendList = React__default.default.useRef(null);
47
+ const combinedRef = useCombinedRef(refLegendList, ref);
48
+ return /* @__PURE__ */ React__default.default.createElement(AnimatedLegendListComponent, { refLegendList: combinedRef, ref: refScrollView, ...rest });
45
49
  });
46
50
 
47
51
  exports.AnimatedLegendList = AnimatedLegendList;