@legendapp/list 2.0.0-next.2 → 2.0.0-next.21

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.
Files changed (264) hide show
  1. package/{dist/animated.d.mts → animated.d.mts} +10 -3
  2. package/{dist/animated.d.ts → animated.d.ts} +10 -3
  3. package/{dist/animated.js → animated.js} +2 -2
  4. package/{dist/animated.mjs → animated.mjs} +2 -2
  5. package/{dist/index.d.mts → index.d.mts} +86 -167
  6. package/{dist/index.d.ts → index.d.ts} +86 -167
  7. package/{dist/index.js → index.js} +1594 -1098
  8. package/{dist/index.mjs → index.mjs} +1596 -1100
  9. package/keyboard-controller.d.mts +148 -0
  10. package/keyboard-controller.d.ts +148 -0
  11. package/{dist/keyboard-controller.js → keyboard-controller.js} +4 -4
  12. package/{dist/keyboard-controller.mjs → keyboard-controller.mjs} +4 -4
  13. package/package.json +34 -88
  14. package/{dist/reanimated.d.mts → reanimated.d.mts} +2 -2
  15. package/{dist/reanimated.d.ts → reanimated.d.ts} +2 -2
  16. package/reanimated.js +60 -0
  17. package/reanimated.mjs +53 -0
  18. package/.claude/settings.local.json +0 -8
  19. package/.cursor/rules/changelog.mdc +0 -60
  20. package/.github/FUNDING.yml +0 -15
  21. package/.gitignore +0 -5
  22. package/.prettierrc.json +0 -5
  23. package/.vscode/settings.json +0 -14
  24. package/CLAUDE.md +0 -126
  25. package/biome.json +0 -46
  26. package/bun.lock +0 -1289
  27. package/bunfig.toml +0 -2
  28. package/dist/CHANGELOG.md +0 -119
  29. package/dist/LICENSE +0 -21
  30. package/dist/README.md +0 -139
  31. package/dist/keyboard-controller.d.mts +0 -261
  32. package/dist/keyboard-controller.d.ts +0 -261
  33. package/dist/package.json +0 -35
  34. package/dist/reanimated.js +0 -58
  35. package/dist/reanimated.mjs +0 -51
  36. package/example/README.md +0 -40
  37. package/example/api/data/genres.json +0 -23
  38. package/example/api/data/playlist/10402-10749.json +0 -1
  39. package/example/api/data/playlist/10402-10770.json +0 -1
  40. package/example/api/data/playlist/10402-37.json +0 -1
  41. package/example/api/data/playlist/10749-10752.json +0 -1
  42. package/example/api/data/playlist/10749-10770.json +0 -1
  43. package/example/api/data/playlist/10749-37.json +0 -1
  44. package/example/api/data/playlist/10749-878.json +0 -1
  45. package/example/api/data/playlist/10751-10402.json +0 -1
  46. package/example/api/data/playlist/10751-10752.json +0 -1
  47. package/example/api/data/playlist/10751-37.json +0 -1
  48. package/example/api/data/playlist/10751-53.json +0 -1
  49. package/example/api/data/playlist/10751-878.json +0 -1
  50. package/example/api/data/playlist/10751-9648.json +0 -1
  51. package/example/api/data/playlist/10752-37.json +0 -1
  52. package/example/api/data/playlist/12-10402.json +0 -1
  53. package/example/api/data/playlist/12-10749.json +0 -1
  54. package/example/api/data/playlist/12-18.json +0 -1
  55. package/example/api/data/playlist/12-27.json +0 -1
  56. package/example/api/data/playlist/12-35.json +0 -1
  57. package/example/api/data/playlist/14-36.json +0 -1
  58. package/example/api/data/playlist/14-878.json +0 -1
  59. package/example/api/data/playlist/16-10751.json +0 -1
  60. package/example/api/data/playlist/16-10770.json +0 -1
  61. package/example/api/data/playlist/16-35.json +0 -1
  62. package/example/api/data/playlist/16-36.json +0 -1
  63. package/example/api/data/playlist/16-53.json +0 -1
  64. package/example/api/data/playlist/18-10751.json +0 -1
  65. package/example/api/data/playlist/18-10752.json +0 -1
  66. package/example/api/data/playlist/18-37.json +0 -1
  67. package/example/api/data/playlist/18-53.json +0 -1
  68. package/example/api/data/playlist/18-878.json +0 -1
  69. package/example/api/data/playlist/27-10749.json +0 -1
  70. package/example/api/data/playlist/27-10770.json +0 -1
  71. package/example/api/data/playlist/28-10749.json +0 -1
  72. package/example/api/data/playlist/28-10751.json +0 -1
  73. package/example/api/data/playlist/28-10770.json +0 -1
  74. package/example/api/data/playlist/28-16.json +0 -1
  75. package/example/api/data/playlist/28-18.json +0 -1
  76. package/example/api/data/playlist/28-36.json +0 -1
  77. package/example/api/data/playlist/28-37.json +0 -1
  78. package/example/api/data/playlist/28-53.json +0 -1
  79. package/example/api/data/playlist/28-80.json +0 -1
  80. package/example/api/data/playlist/28-99.json +0 -1
  81. package/example/api/data/playlist/35-10749.json +0 -1
  82. package/example/api/data/playlist/35-10751.json +0 -1
  83. package/example/api/data/playlist/35-10752.json +0 -1
  84. package/example/api/data/playlist/35-27.json +0 -1
  85. package/example/api/data/playlist/35-36.json +0 -1
  86. package/example/api/data/playlist/35-53.json +0 -1
  87. package/example/api/data/playlist/35-80.json +0 -1
  88. package/example/api/data/playlist/36-37.json +0 -1
  89. package/example/api/data/playlist/36-878.json +0 -1
  90. package/example/api/data/playlist/36-9648.json +0 -1
  91. package/example/api/data/playlist/53-10752.json +0 -1
  92. package/example/api/data/playlist/80-10770.json +0 -1
  93. package/example/api/data/playlist/80-14.json +0 -1
  94. package/example/api/data/playlist/80-18.json +0 -1
  95. package/example/api/data/playlist/80-37.json +0 -1
  96. package/example/api/data/playlist/878-37.json +0 -1
  97. package/example/api/data/playlist/9648-10770.json +0 -1
  98. package/example/api/data/playlist/9648-37.json +0 -1
  99. package/example/api/data/playlist/9648-53.json +0 -1
  100. package/example/api/data/playlist/9648-878.json +0 -1
  101. package/example/api/data/playlist/99-10749.json +0 -1
  102. package/example/api/data/playlist/99-14.json +0 -1
  103. package/example/api/data/playlist/99-18.json +0 -1
  104. package/example/api/data/playlist/99-27.json +0 -1
  105. package/example/api/data/playlist/99-53.json +0 -1
  106. package/example/api/data/playlist/99-9648.json +0 -1
  107. package/example/api/data/playlist/index.ts +0 -73
  108. package/example/api/data/rows.json +0 -1
  109. package/example/api/index.ts +0 -36
  110. package/example/app/(tabs)/_layout.tsx +0 -60
  111. package/example/app/(tabs)/cards.tsx +0 -81
  112. package/example/app/(tabs)/index.tsx +0 -205
  113. package/example/app/(tabs)/moviesL.tsx +0 -7
  114. package/example/app/(tabs)/moviesLR.tsx +0 -7
  115. package/example/app/+not-found.tsx +0 -32
  116. package/example/app/_layout.tsx +0 -34
  117. package/example/app/accurate-scrollto/index.tsx +0 -125
  118. package/example/app/accurate-scrollto-2/index.tsx +0 -52
  119. package/example/app/accurate-scrollto-huge/index.tsx +0 -128
  120. package/example/app/add-to-end/index.tsx +0 -82
  121. package/example/app/ai-chat/index.tsx +0 -236
  122. package/example/app/bidirectional-infinite-list/index.tsx +0 -133
  123. package/example/app/cards-columns/index.tsx +0 -37
  124. package/example/app/cards-flashlist/index.tsx +0 -122
  125. package/example/app/cards-flatlist/index.tsx +0 -94
  126. package/example/app/cards-no-recycle/index.tsx +0 -110
  127. package/example/app/cards-renderItem.tsx +0 -354
  128. package/example/app/chat-example/index.tsx +0 -167
  129. package/example/app/chat-infinite/index.tsx +0 -239
  130. package/example/app/chat-keyboard/index.tsx +0 -248
  131. package/example/app/chat-resize-outer/index.tsx +0 -247
  132. package/example/app/columns/index.tsx +0 -78
  133. package/example/app/countries/index.tsx +0 -182
  134. package/example/app/countries-flashlist/index.tsx +0 -163
  135. package/example/app/countries-reorder/index.tsx +0 -187
  136. package/example/app/extra-data/index.tsx +0 -86
  137. package/example/app/filter-elements/filter-data-provider.tsx +0 -55
  138. package/example/app/filter-elements/index.tsx +0 -118
  139. package/example/app/initial-scroll-index/index.tsx +0 -106
  140. package/example/app/initial-scroll-index/renderFixedItem.tsx +0 -215
  141. package/example/app/initial-scroll-index-free-height/index.tsx +0 -70
  142. package/example/app/initial-scroll-index-keyed/index.tsx +0 -62
  143. package/example/app/lazy-list/index.tsx +0 -123
  144. package/example/app/movies-flashlist/index.tsx +0 -7
  145. package/example/app/mutable-cells/index.tsx +0 -104
  146. package/example/app/video-feed/index.tsx +0 -119
  147. package/example/app.config.js +0 -22
  148. package/example/app.json +0 -45
  149. package/example/assets/fonts/SpaceMono-Regular.ttf +0 -0
  150. package/example/assets/images/adaptive-icon.png +0 -0
  151. package/example/assets/images/favicon.png +0 -0
  152. package/example/assets/images/icon.png +0 -0
  153. package/example/assets/images/partial-react-logo.png +0 -0
  154. package/example/assets/images/react-logo.png +0 -0
  155. package/example/assets/images/react-logo@2x.png +0 -0
  156. package/example/assets/images/react-logo@3x.png +0 -0
  157. package/example/assets/images/splash-icon.png +0 -0
  158. package/example/autoscroll.sh +0 -101
  159. package/example/bun.lock +0 -2266
  160. package/example/bunfig.toml +0 -2
  161. package/example/components/Breathe.tsx +0 -54
  162. package/example/components/Circle.tsx +0 -69
  163. package/example/components/Collapsible.tsx +0 -44
  164. package/example/components/ExternalLink.tsx +0 -24
  165. package/example/components/HapticTab.tsx +0 -18
  166. package/example/components/HelloWave.tsx +0 -37
  167. package/example/components/Movies.tsx +0 -179
  168. package/example/components/ParallaxScrollView.tsx +0 -81
  169. package/example/components/ThemedText.tsx +0 -60
  170. package/example/components/ThemedView.tsx +0 -14
  171. package/example/components/__tests__/ThemedText-test.tsx +0 -10
  172. package/example/components/__tests__/__snapshots__/ThemedText-test.tsx.snap +0 -24
  173. package/example/components/ui/IconSymbol.ios.tsx +0 -32
  174. package/example/components/ui/IconSymbol.tsx +0 -43
  175. package/example/components/ui/TabBarBackground.ios.tsx +0 -22
  176. package/example/components/ui/TabBarBackground.tsx +0 -6
  177. package/example/constants/Colors.ts +0 -26
  178. package/example/constants/constants.ts +0 -5
  179. package/example/constants/useScrollTest.ts +0 -19
  180. package/example/hooks/useColorScheme.ts +0 -1
  181. package/example/hooks/useColorScheme.web.ts +0 -8
  182. package/example/hooks/useThemeColor.ts +0 -22
  183. package/example/ios/.xcode.env +0 -11
  184. package/example/ios/Podfile +0 -64
  185. package/example/ios/Podfile.lock +0 -2767
  186. package/example/ios/Podfile.properties.json +0 -5
  187. package/example/ios/listtest/AppDelegate.swift +0 -70
  188. package/example/ios/listtest/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png +0 -0
  189. package/example/ios/listtest/Images.xcassets/AppIcon.appiconset/Contents.json +0 -14
  190. package/example/ios/listtest/Images.xcassets/Contents.json +0 -6
  191. package/example/ios/listtest/Images.xcassets/SplashScreenBackground.colorset/Contents.json +0 -20
  192. package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/Contents.json +0 -23
  193. package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image.png +0 -0
  194. package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image@2x.png +0 -0
  195. package/example/ios/listtest/Images.xcassets/SplashScreenLogo.imageset/image@3x.png +0 -0
  196. package/example/ios/listtest/Info.plist +0 -85
  197. package/example/ios/listtest/PrivacyInfo.xcprivacy +0 -48
  198. package/example/ios/listtest/SplashScreen.storyboard +0 -42
  199. package/example/ios/listtest/Supporting/Expo.plist +0 -12
  200. package/example/ios/listtest/listtest-Bridging-Header.h +0 -3
  201. package/example/ios/listtest/listtest.entitlements +0 -5
  202. package/example/ios/listtest.xcodeproj/project.pbxproj +0 -547
  203. package/example/ios/listtest.xcodeproj/xcshareddata/xcschemes/listtest.xcscheme +0 -88
  204. package/example/ios/listtest.xcworkspace/contents.xcworkspacedata +0 -10
  205. package/example/metro.config.js +0 -16
  206. package/example/package.json +0 -73
  207. package/example/scripts/reset-project.js +0 -84
  208. package/example/tsconfig.json +0 -26
  209. package/posttsup.ts +0 -24
  210. package/src/Container.tsx +0 -176
  211. package/src/Containers.tsx +0 -85
  212. package/src/ContextContainer.ts +0 -145
  213. package/src/DebugView.tsx +0 -83
  214. package/src/LazyLegendList.tsx +0 -41
  215. package/src/LeanView.tsx +0 -18
  216. package/src/LegendList.tsx +0 -558
  217. package/src/ListComponent.tsx +0 -191
  218. package/src/ScrollAdjust.tsx +0 -24
  219. package/src/ScrollAdjustHandler.ts +0 -26
  220. package/src/Separator.tsx +0 -14
  221. package/src/animated.tsx +0 -6
  222. package/src/calculateItemsInView.ts +0 -363
  223. package/src/calculateOffsetForIndex.ts +0 -23
  224. package/src/calculateOffsetWithOffsetPosition.ts +0 -26
  225. package/src/checkAllSizesKnown.ts +0 -17
  226. package/src/checkAtBottom.ts +0 -36
  227. package/src/checkAtTop.ts +0 -27
  228. package/src/checkThreshold.ts +0 -30
  229. package/src/constants.ts +0 -11
  230. package/src/createColumnWrapperStyle.ts +0 -16
  231. package/src/doInitialAllocateContainers.ts +0 -40
  232. package/src/doMaintainScrollAtEnd.ts +0 -34
  233. package/src/findAvailableContainers.ts +0 -98
  234. package/src/finishScrollTo.ts +0 -8
  235. package/src/getId.ts +0 -21
  236. package/src/getItemSize.ts +0 -52
  237. package/src/getRenderedItem.ts +0 -34
  238. package/src/getScrollVelocity.ts +0 -47
  239. package/src/handleLayout.ts +0 -70
  240. package/src/helpers.ts +0 -39
  241. package/src/index.ts +0 -11
  242. package/src/keyboard-controller.tsx +0 -63
  243. package/src/onScroll.ts +0 -66
  244. package/src/prepareMVCP.ts +0 -50
  245. package/src/reanimated.tsx +0 -63
  246. package/src/requestAdjust.ts +0 -41
  247. package/src/scrollTo.ts +0 -40
  248. package/src/scrollToIndex.ts +0 -34
  249. package/src/setDidLayout.ts +0 -25
  250. package/src/setPaddingTop.ts +0 -28
  251. package/src/state.tsx +0 -304
  252. package/src/types.ts +0 -610
  253. package/src/updateAlignItemsPaddingTop.ts +0 -18
  254. package/src/updateAllPositions.ts +0 -130
  255. package/src/updateItemSize.ts +0 -203
  256. package/src/updateTotalSize.ts +0 -44
  257. package/src/useAnimatedValue.ts +0 -6
  258. package/src/useCombinedRef.ts +0 -22
  259. package/src/useInit.ts +0 -17
  260. package/src/useSyncLayout.tsx +0 -68
  261. package/src/useValue$.ts +0 -53
  262. package/src/viewability.ts +0 -279
  263. package/tsconfig.json +0 -59
  264. package/tsup.config.ts +0 -21
@@ -1,261 +0,0 @@
1
- import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
2
- import * as _legendapp_list from '@legendapp/list';
3
- import { LegendListRef } from '@legendapp/list';
4
- import * as react_native from 'react-native';
5
- import * as React from 'react';
6
-
7
- declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
8
- alignItemsAtEnd?: boolean;
9
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
10
- data: readonly T[];
11
- drawDistance?: number;
12
- estimatedItemSize?: number;
13
- estimatedListSize?: {
14
- height: number;
15
- width: number;
16
- };
17
- extraData?: any;
18
- getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
19
- initialContainerPoolRatio?: number | undefined;
20
- initialScrollOffset?: number;
21
- initialScrollIndex?: number | {
22
- index: number;
23
- viewOffset?: number | undefined;
24
- viewPosition?: number | undefined;
25
- };
26
- ItemSeparatorComponent?: React.ComponentType<{
27
- leadingItem: T;
28
- }> | undefined;
29
- keyExtractor?: ((item: T, index: number) => string) | undefined;
30
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
31
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
32
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
33
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
34
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
35
- maintainScrollAtEnd?: boolean | _legendapp_list.MaintainScrollAtEndOptions;
36
- maintainScrollAtEndThreshold?: number;
37
- maintainVisibleContentPosition?: boolean;
38
- numColumns?: number;
39
- onEndReached?: ((info: {
40
- distanceFromEnd: number;
41
- }) => void) | null | undefined;
42
- onEndReachedThreshold?: number | null | undefined;
43
- onItemSizeChanged?: ((info: {
44
- size: number;
45
- previous: number;
46
- index: number;
47
- itemKey: string;
48
- itemData: T;
49
- }) => void) | undefined;
50
- onRefresh?: () => void;
51
- onStartReached?: ((info: {
52
- distanceFromStart: number;
53
- }) => void) | null | undefined;
54
- onStartReachedThreshold?: number | null | undefined;
55
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
56
- progressViewOffset?: number;
57
- recycleItems?: boolean;
58
- refScrollView?: React.Ref<react_native.ScrollView>;
59
- refreshing?: boolean;
60
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
61
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
62
- suggestEstimatedItemSize?: boolean;
63
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
64
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
65
- waitForInitialLayout?: boolean;
66
- onLoad?: (info: {
67
- elapsedTimeInMs: number;
68
- }) => void;
69
- } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
70
- alignItemsAtEnd?: boolean;
71
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
72
- data: readonly T[];
73
- drawDistance?: number;
74
- estimatedItemSize?: number;
75
- estimatedListSize?: {
76
- height: number;
77
- width: number;
78
- };
79
- extraData?: any;
80
- getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
81
- initialContainerPoolRatio?: number | undefined;
82
- initialScrollOffset?: number;
83
- initialScrollIndex?: number | {
84
- index: number;
85
- viewOffset?: number | undefined;
86
- viewPosition?: number | undefined;
87
- };
88
- ItemSeparatorComponent?: React.ComponentType<{
89
- leadingItem: T;
90
- }> | undefined;
91
- keyExtractor?: ((item: T, index: number) => string) | undefined;
92
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
93
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
94
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
95
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
96
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
97
- maintainScrollAtEnd?: boolean | _legendapp_list.MaintainScrollAtEndOptions;
98
- maintainScrollAtEndThreshold?: number;
99
- maintainVisibleContentPosition?: boolean;
100
- numColumns?: number;
101
- onEndReached?: ((info: {
102
- distanceFromEnd: number;
103
- }) => void) | null | undefined;
104
- onEndReachedThreshold?: number | null | undefined;
105
- onItemSizeChanged?: ((info: {
106
- size: number;
107
- previous: number;
108
- index: number;
109
- itemKey: string;
110
- itemData: T;
111
- }) => void) | undefined;
112
- onRefresh?: () => void;
113
- onStartReached?: ((info: {
114
- distanceFromStart: number;
115
- }) => void) | null | undefined;
116
- onStartReachedThreshold?: number | null | undefined;
117
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
118
- progressViewOffset?: number;
119
- recycleItems?: boolean;
120
- refScrollView?: React.Ref<react_native.ScrollView>;
121
- refreshing?: boolean;
122
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
123
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
124
- suggestEstimatedItemSize?: boolean;
125
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
126
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
127
- waitForInitialLayout?: boolean;
128
- onLoad?: (info: {
129
- elapsedTimeInMs: number;
130
- }) => void;
131
- } & React.RefAttributes<LegendListRef>) => React.ReactNode)> | (<ItemT_1>(props: _legendapp_list_reanimated.AnimatedLegendListProps<ItemT_1> & {
132
- ref?: React.Ref<LegendListRef>;
133
- }) => React.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
134
- alignItemsAtEnd?: boolean;
135
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
136
- data: readonly T[];
137
- drawDistance?: number;
138
- estimatedItemSize?: number;
139
- estimatedListSize?: {
140
- height: number;
141
- width: number;
142
- };
143
- extraData?: any;
144
- getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
145
- initialContainerPoolRatio?: number | undefined;
146
- initialScrollOffset?: number;
147
- initialScrollIndex?: number | {
148
- index: number;
149
- viewOffset?: number | undefined;
150
- viewPosition?: number | undefined;
151
- };
152
- ItemSeparatorComponent?: React.ComponentType<{
153
- leadingItem: T;
154
- }> | undefined;
155
- keyExtractor?: ((item: T, index: number) => string) | undefined;
156
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
157
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
158
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
159
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
160
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
161
- maintainScrollAtEnd?: boolean | _legendapp_list.MaintainScrollAtEndOptions;
162
- maintainScrollAtEndThreshold?: number;
163
- maintainVisibleContentPosition?: boolean;
164
- numColumns?: number;
165
- onEndReached?: ((info: {
166
- distanceFromEnd: number;
167
- }) => void) | null | undefined;
168
- onEndReachedThreshold?: number | null | undefined;
169
- onItemSizeChanged?: ((info: {
170
- size: number;
171
- previous: number;
172
- index: number;
173
- itemKey: string;
174
- itemData: T;
175
- }) => void) | undefined;
176
- onRefresh?: () => void;
177
- onStartReached?: ((info: {
178
- distanceFromStart: number;
179
- }) => void) | null | undefined;
180
- onStartReachedThreshold?: number | null | undefined;
181
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
182
- progressViewOffset?: number;
183
- recycleItems?: boolean;
184
- refScrollView?: React.Ref<react_native.ScrollView>;
185
- refreshing?: boolean;
186
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<T>> | undefined;
187
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
188
- suggestEstimatedItemSize?: boolean;
189
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
190
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
191
- waitForInitialLayout?: boolean;
192
- onLoad?: (info: {
193
- elapsedTimeInMs: number;
194
- }) => void;
195
- } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices" | "removeClippedSubviews" | "children"> & {
196
- alignItemsAtEnd?: boolean;
197
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
198
- data: readonly ItemT[];
199
- drawDistance?: number;
200
- estimatedItemSize?: number;
201
- estimatedListSize?: {
202
- height: number;
203
- width: number;
204
- };
205
- extraData?: any;
206
- getEstimatedItemSize?: ((index: number, item: ItemT) => number) | undefined;
207
- initialContainerPoolRatio?: number | undefined;
208
- initialScrollOffset?: number;
209
- initialScrollIndex?: number | {
210
- index: number;
211
- viewOffset?: number | undefined;
212
- viewPosition?: number | undefined;
213
- };
214
- ItemSeparatorComponent?: React.ComponentType<{
215
- leadingItem: ItemT;
216
- }> | undefined;
217
- keyExtractor?: ((item: ItemT, index: number) => string) | undefined;
218
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
219
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
220
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
221
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
222
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
223
- maintainScrollAtEnd?: boolean | _legendapp_list.MaintainScrollAtEndOptions;
224
- maintainScrollAtEndThreshold?: number;
225
- maintainVisibleContentPosition?: boolean;
226
- numColumns?: number;
227
- onEndReached?: ((info: {
228
- distanceFromEnd: number;
229
- }) => void) | null | undefined;
230
- onEndReachedThreshold?: number | null | undefined;
231
- onItemSizeChanged?: ((info: {
232
- size: number;
233
- previous: number;
234
- index: number;
235
- itemKey: string;
236
- itemData: ItemT;
237
- }) => void) | undefined;
238
- onRefresh?: () => void;
239
- onStartReached?: ((info: {
240
- distanceFromStart: number;
241
- }) => void) | null | undefined;
242
- onStartReachedThreshold?: number | null | undefined;
243
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
244
- progressViewOffset?: number;
245
- recycleItems?: boolean;
246
- refScrollView?: React.Ref<react_native.ScrollView>;
247
- refreshing?: boolean;
248
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT>) => React.ReactNode) | React.ComponentType<_legendapp_list.LegendListRenderItemProps<ItemT>> | undefined;
249
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
250
- suggestEstimatedItemSize?: boolean;
251
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
252
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
253
- waitForInitialLayout?: boolean;
254
- onLoad?: (info: {
255
- elapsedTimeInMs: number;
256
- }) => void;
257
- } & {
258
- LegendList?: ListT;
259
- } & React.RefAttributes<LegendListRef>) => React.ReactNode;
260
-
261
- export { LegendList };
package/dist/package.json DELETED
@@ -1,35 +0,0 @@
1
- {
2
- "name": "@legendapp/list",
3
- "version": "2.0.0-next.1",
4
- "description": "Legend List is a drop-in replacement for FlatList with much better performance and supporting dynamically sized items.",
5
- "sideEffects": false,
6
- "private": false,
7
- "main": "./index.js",
8
- "module": "./index.mjs",
9
- "types": "./index.d.ts",
10
- "files": [
11
- "**"
12
- ],
13
- "peerDependencies": {
14
- "react": "*",
15
- "react-native": "*"
16
- },
17
- "author": "Legend <contact@legendapp.com> (https://github.com/LegendApp)",
18
- "keywords": [
19
- "react",
20
- "react-native",
21
- "list"
22
- ],
23
- "repository": "github:LegendApp/legend-list",
24
- "license": "MIT",
25
- "bugs": {
26
- "url": "https://github.com/LegendApp/legend-list/issues"
27
- },
28
- "homepage": "https://github.com/LegendApp/legend-list#readme",
29
- "publishConfig": {
30
- "registry": "https://registry.npmjs.org/"
31
- },
32
- "dependencies": {
33
- "use-sync-external-store": "^1.5.0"
34
- }
35
- }
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- var list = require('@legendapp/list');
4
- var React = require('react');
5
- var Animated = require('react-native-reanimated');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefault(React);
10
- var Animated__default = /*#__PURE__*/_interopDefault(Animated);
11
-
12
- // src/reanimated.tsx
13
-
14
- // src/helpers.ts
15
- function isFunction(obj) {
16
- return typeof obj === "function";
17
- }
18
-
19
- // src/useCombinedRef.ts
20
- var useCombinedRef = (...refs) => {
21
- const callback = React.useCallback((element) => {
22
- for (const ref of refs) {
23
- if (!ref) {
24
- continue;
25
- }
26
- if (isFunction(ref)) {
27
- ref(element);
28
- } else {
29
- ref.current = element;
30
- }
31
- }
32
- }, refs);
33
- return callback;
34
- };
35
-
36
- // src/reanimated.tsx
37
- var LegendListForwardedRef = React__default.default.forwardRef(function LegendListForwardedRef2(props, ref) {
38
- const { refLegendList, ...rest } = props;
39
- return /* @__PURE__ */ React__default.default.createElement(
40
- list.LegendList,
41
- {
42
- refScrollView: ref,
43
- ref: (r) => {
44
- refLegendList(r);
45
- },
46
- ...rest
47
- }
48
- );
49
- });
50
- var AnimatedLegendListComponent = Animated__default.default.createAnimatedComponent(LegendListForwardedRef);
51
- var AnimatedLegendList = React__default.default.forwardRef(function AnimatedLegendList2(props, ref) {
52
- const { refScrollView, ...rest } = props;
53
- const refLegendList = React__default.default.useRef(null);
54
- const combinedRef = useCombinedRef(refLegendList, ref);
55
- return /* @__PURE__ */ React__default.default.createElement(AnimatedLegendListComponent, { refLegendList: combinedRef, ref: refScrollView, ...rest });
56
- });
57
-
58
- exports.AnimatedLegendList = AnimatedLegendList;
@@ -1,51 +0,0 @@
1
- import { LegendList } from '@legendapp/list';
2
- import React, { useCallback } from 'react';
3
- import Animated from 'react-native-reanimated';
4
-
5
- // src/reanimated.tsx
6
-
7
- // src/helpers.ts
8
- function isFunction(obj) {
9
- return typeof obj === "function";
10
- }
11
-
12
- // src/useCombinedRef.ts
13
- var useCombinedRef = (...refs) => {
14
- const callback = useCallback((element) => {
15
- for (const ref of refs) {
16
- if (!ref) {
17
- continue;
18
- }
19
- if (isFunction(ref)) {
20
- ref(element);
21
- } else {
22
- ref.current = element;
23
- }
24
- }
25
- }, refs);
26
- return callback;
27
- };
28
-
29
- // src/reanimated.tsx
30
- var LegendListForwardedRef = React.forwardRef(function LegendListForwardedRef2(props, ref) {
31
- const { refLegendList, ...rest } = props;
32
- return /* @__PURE__ */ React.createElement(
33
- LegendList,
34
- {
35
- refScrollView: ref,
36
- ref: (r) => {
37
- refLegendList(r);
38
- },
39
- ...rest
40
- }
41
- );
42
- });
43
- var AnimatedLegendListComponent = Animated.createAnimatedComponent(LegendListForwardedRef);
44
- var AnimatedLegendList = React.forwardRef(function AnimatedLegendList2(props, ref) {
45
- const { refScrollView, ...rest } = props;
46
- const refLegendList = React.useRef(null);
47
- const combinedRef = useCombinedRef(refLegendList, ref);
48
- return /* @__PURE__ */ React.createElement(AnimatedLegendListComponent, { refLegendList: combinedRef, ref: refScrollView, ...rest });
49
- });
50
-
51
- export { AnimatedLegendList };
package/example/README.md DELETED
@@ -1,40 +0,0 @@
1
- # Welcome to LegendList test application 👋
2
-
3
- This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
4
- This app is main development playground for testing LegendList features
5
-
6
- ## Get started
7
-
8
- 1. Install dependencies
9
-
10
- ```bash
11
- npm install
12
- ```
13
-
14
- 2. Start the app
15
-
16
- ```bash
17
- npx expo start
18
- ```
19
-
20
- In the output, you'll find options to open the app in a
21
-
22
- - [development build](https://docs.expo.dev/develop/development-builds/introduction/)
23
- - [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
24
- - [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
25
- - [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
26
-
27
- You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
28
-
29
- ## Testing on old arhitecture
30
-
31
- LegendList is by default ran on the react native new architecture. It's important to check compatibility with old architecture.
32
-
33
- To build version for old architecture:
34
- 1. delete your ios and anrdoid folders
35
- 2. build new versions
36
- ```
37
- OLD_ARCH=TRUE bun android
38
- OLD_ARCH=TRUE bun ios
39
- ```
40
- Those applications will have separate app name list-test-oldarch and different app id, so both old and new architectures can be tested on same device.
@@ -1,23 +0,0 @@
1
- {
2
- "genres": [
3
- {"id": 28, "name": "Action"},
4
- {"id": 12, "name": "Adventure"},
5
- {"id": 16, "name": "Animation"},
6
- {"id": 35, "name": "Comedy"},
7
- {"id": 80, "name": "Crime"},
8
- {"id": 99, "name": "Documentary"},
9
- {"id": 18, "name": "Drama"},
10
- {"id": 10751, "name": "Family"},
11
- {"id": 14, "name": "Fantasy"},
12
- {"id": 36, "name": "History"},
13
- {"id": 27, "name": "Horror"},
14
- {"id": 10402, "name": "Music"},
15
- {"id": 9648, "name": "Mystery"},
16
- {"id": 10749, "name": "Romance"},
17
- {"id": 878, "name": "Science Fiction"},
18
- {"id": 10770, "name": "TV Movie"},
19
- {"id": 53, "name": "Thriller"},
20
- {"id": 10752, "name": "War"},
21
- {"id": 37, "name": "Western"}
22
- ]
23
- }