@shopify/flash-list 2.0.0-alpha.9 → 2.0.0-rc.10

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 (209) hide show
  1. package/README.md +37 -97
  2. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/BlankAreaEvent.kt +2 -2
  3. package/dist/AnimatedFlashList.d.ts.map +1 -1
  4. package/dist/AnimatedFlashList.js +3 -3
  5. package/dist/AnimatedFlashList.js.map +1 -1
  6. package/dist/FlashList.d.ts +9 -0
  7. package/dist/FlashList.d.ts.map +1 -1
  8. package/dist/FlashList.js +20 -0
  9. package/dist/FlashList.js.map +1 -1
  10. package/dist/FlashListProps.d.ts +30 -10
  11. package/dist/FlashListProps.d.ts.map +1 -1
  12. package/dist/FlashListProps.js.map +1 -1
  13. package/dist/FlashListRef.d.ts +305 -0
  14. package/dist/FlashListRef.d.ts.map +1 -0
  15. package/dist/FlashListRef.js +3 -0
  16. package/dist/FlashListRef.js.map +1 -0
  17. package/dist/MasonryFlashList.js.map +1 -1
  18. package/dist/__tests__/RecyclerView.test.js +72 -28
  19. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  20. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  21. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  22. package/dist/__tests__/RenderStackManager.test.js +485 -0
  23. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  24. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +1 -1
  25. package/dist/__tests__/helpers/createLayoutManager.js +3 -4
  26. package/dist/__tests__/helpers/createLayoutManager.js.map +1 -1
  27. package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
  28. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
  29. package/dist/benchmark/useBenchmark.js +0 -25
  30. package/dist/benchmark/useBenchmark.js.map +1 -1
  31. package/dist/benchmark/useFlatListBenchmark.js +8 -7
  32. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/native/config/PlatformHelper.android.d.ts +1 -0
  38. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  39. package/dist/native/config/PlatformHelper.android.js +1 -0
  40. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  41. package/dist/native/config/PlatformHelper.d.ts +1 -0
  42. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  43. package/dist/native/config/PlatformHelper.ios.d.ts +1 -0
  44. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  45. package/dist/native/config/PlatformHelper.ios.js +1 -0
  46. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  47. package/dist/native/config/PlatformHelper.js +1 -0
  48. package/dist/native/config/PlatformHelper.js.map +1 -1
  49. package/dist/native/config/PlatformHelper.web.d.ts +1 -0
  50. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  51. package/dist/native/config/PlatformHelper.web.js +1 -0
  52. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  53. package/dist/recyclerview/RecyclerView.d.ts +2 -1
  54. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  55. package/dist/recyclerview/RecyclerView.js +104 -57
  56. package/dist/recyclerview/RecyclerView.js.map +1 -1
  57. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +41 -6
  58. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  59. package/dist/recyclerview/RecyclerViewContextProvider.js +4 -0
  60. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  61. package/dist/recyclerview/RecyclerViewManager.d.ts +24 -7
  62. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  63. package/dist/recyclerview/RecyclerViewManager.js +119 -113
  64. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  65. package/dist/recyclerview/RenderStackManager.d.ts +86 -0
  66. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  67. package/dist/recyclerview/RenderStackManager.js +343 -0
  68. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  69. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  70. package/dist/recyclerview/ViewHolder.js +5 -3
  71. package/dist/recyclerview/ViewHolder.js.map +1 -1
  72. package/dist/recyclerview/ViewHolderCollection.d.ts +9 -3
  73. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  74. package/dist/recyclerview/ViewHolderCollection.js +26 -9
  75. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  76. package/dist/recyclerview/components/ScrollAnchor.d.ts +2 -2
  77. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  78. package/dist/recyclerview/components/ScrollAnchor.js +9 -5
  79. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  80. package/dist/recyclerview/components/StickyHeaders.d.ts +1 -1
  81. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  82. package/dist/recyclerview/components/StickyHeaders.js +40 -33
  83. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  84. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +45 -1
  85. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
  86. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +77 -20
  87. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  88. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +11 -0
  89. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
  90. package/dist/recyclerview/helpers/RenderTimeTracker.js +42 -0
  91. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
  92. package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
  93. package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
  94. package/dist/recyclerview/helpers/VelocityTracker.js +70 -0
  95. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
  96. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
  97. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  98. package/dist/recyclerview/hooks/useBoundDetection.js +56 -22
  99. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  100. package/dist/recyclerview/hooks/useLayoutState.d.ts +3 -1
  101. package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -1
  102. package/dist/recyclerview/hooks/useLayoutState.js +5 -3
  103. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  104. package/dist/recyclerview/hooks/useMappingHelper.d.ts +1 -1
  105. package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -1
  106. package/dist/recyclerview/hooks/useMappingHelper.js +1 -1
  107. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  108. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  109. package/dist/recyclerview/hooks/useOnLoad.js +4 -6
  110. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  111. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +5 -49
  112. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  113. package/dist/recyclerview/hooks/useRecyclerViewController.js +315 -204
  114. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  115. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +2 -0
  116. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  117. package/dist/recyclerview/hooks/useRecyclerViewManager.js +11 -1
  118. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  119. package/dist/recyclerview/hooks/useRecyclingState.d.ts +4 -2
  120. package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -1
  121. package/dist/recyclerview/hooks/useRecyclingState.js +2 -2
  122. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  123. package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
  124. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
  125. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
  126. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
  127. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  128. package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -1
  129. package/dist/recyclerview/hooks/useUnmountFlag.js +1 -0
  130. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  131. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +18 -4
  132. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  133. package/dist/recyclerview/layout-managers/GridLayoutManager.js +60 -21
  134. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  135. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +35 -21
  136. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  137. package/dist/recyclerview/layout-managers/LayoutManager.js +92 -28
  138. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  139. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +9 -1
  140. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -1
  141. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +28 -12
  142. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  143. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -1
  144. package/dist/recyclerview/utils/measureLayout.web.js +1 -3
  145. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/dist/viewability/ViewToken.d.ts +2 -2
  148. package/dist/viewability/ViewToken.d.ts.map +1 -1
  149. package/dist/viewability/ViewabilityHelper.js +1 -1
  150. package/dist/viewability/ViewabilityHelper.js.map +1 -1
  151. package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
  152. package/dist/viewability/ViewabilityManager.js +11 -5
  153. package/dist/viewability/ViewabilityManager.js.map +1 -1
  154. package/jestSetup.js +30 -11
  155. package/package.json +2 -1
  156. package/src/AnimatedFlashList.ts +3 -2
  157. package/src/FlashList.tsx +24 -0
  158. package/src/FlashListProps.ts +41 -10
  159. package/src/FlashListRef.ts +320 -0
  160. package/src/MasonryFlashList.tsx +2 -2
  161. package/src/__tests__/RecyclerView.test.tsx +106 -31
  162. package/src/__tests__/RenderStackManager.test.ts +574 -0
  163. package/src/__tests__/helpers/createLayoutManager.ts +2 -3
  164. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
  165. package/src/benchmark/useBenchmark.ts +0 -37
  166. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  167. package/src/index.ts +2 -1
  168. package/src/native/config/PlatformHelper.android.ts +1 -0
  169. package/src/native/config/PlatformHelper.ios.ts +1 -0
  170. package/src/native/config/PlatformHelper.ts +1 -0
  171. package/src/native/config/PlatformHelper.web.ts +1 -0
  172. package/src/recyclerview/RecyclerView.tsx +139 -75
  173. package/src/recyclerview/RecyclerViewContextProvider.ts +52 -7
  174. package/src/recyclerview/RecyclerViewManager.ts +135 -98
  175. package/src/recyclerview/RenderStackManager.ts +317 -0
  176. package/src/recyclerview/ViewHolder.tsx +5 -3
  177. package/src/recyclerview/ViewHolderCollection.tsx +42 -14
  178. package/src/recyclerview/components/ScrollAnchor.tsx +21 -9
  179. package/src/recyclerview/components/StickyHeaders.tsx +63 -45
  180. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +118 -23
  181. package/src/recyclerview/helpers/RenderTimeTracker.ts +42 -0
  182. package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
  183. package/src/recyclerview/hooks/useBoundDetection.ts +72 -23
  184. package/src/recyclerview/hooks/useLayoutState.ts +15 -6
  185. package/src/recyclerview/hooks/useMappingHelper.ts +1 -1
  186. package/src/recyclerview/hooks/useOnLoad.ts +4 -6
  187. package/src/recyclerview/hooks/useRecyclerViewController.tsx +364 -254
  188. package/src/recyclerview/hooks/useRecyclerViewManager.ts +13 -1
  189. package/src/recyclerview/hooks/useRecyclingState.ts +11 -7
  190. package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
  191. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
  192. package/src/recyclerview/hooks/useUnmountFlag.ts +1 -0
  193. package/src/recyclerview/layout-managers/GridLayoutManager.ts +67 -23
  194. package/src/recyclerview/layout-managers/LayoutManager.ts +110 -41
  195. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +30 -8
  196. package/src/recyclerview/utils/measureLayout.web.ts +1 -3
  197. package/src/viewability/ViewToken.ts +2 -2
  198. package/src/viewability/ViewabilityHelper.ts +1 -1
  199. package/src/viewability/ViewabilityManager.ts +16 -9
  200. package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
  201. package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
  202. package/dist/__tests__/RecycleKeyManager.test.js +0 -210
  203. package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
  204. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  205. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  206. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  207. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  208. package/src/__tests__/RecycleKeyManager.test.ts +0 -254
  209. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -21,6 +21,7 @@ var useSecondaryProps_1 = require("./hooks/useSecondaryProps");
21
21
  var StickyHeaders_1 = require("./components/StickyHeaders");
22
22
  var ScrollAnchor_1 = require("./components/ScrollAnchor");
23
23
  var useRecyclerViewController_1 = require("./hooks/useRecyclerViewController");
24
+ var RenderTimeTracker_1 = require("./helpers/RenderTimeTracker");
24
25
  /**
25
26
  * Main RecyclerView component that handles list rendering, scrolling, and item recycling.
26
27
  * @template T - The type of items in the list
@@ -28,7 +29,9 @@ var useRecyclerViewController_1 = require("./hooks/useRecyclerViewController");
28
29
  var RecyclerViewComponent = function (props, ref) {
29
30
  var _a;
30
31
  // Destructure props and initialize refs
31
- var horizontal = props.horizontal, renderItem = props.renderItem, data = props.data, extraData = props.extraData, onLoad = props.onLoad, CellRendererComponent = props.CellRendererComponent, overrideProps = props.overrideProps, refreshing = props.refreshing, onRefresh = props.onRefresh, progressViewOffset = props.progressViewOffset, ListEmptyComponent = props.ListEmptyComponent, ListHeaderComponent = props.ListHeaderComponent, ListHeaderComponentStyle = props.ListHeaderComponentStyle, ListFooterComponent = props.ListFooterComponent, ListFooterComponentStyle = props.ListFooterComponentStyle, ItemSeparatorComponent = props.ItemSeparatorComponent, renderScrollComponent = props.renderScrollComponent, onScroll = props.onScroll, disableRecycling = props.disableRecycling, style = props.style, stickyHeaderIndices = props.stickyHeaderIndices, maintainVisibleContentPosition = props.maintainVisibleContentPosition, onCommitLayoutEffect = props.onCommitLayoutEffect, rest = tslib_1.__rest(props, ["horizontal", "renderItem", "data", "extraData", "onLoad", "CellRendererComponent", "overrideProps", "refreshing", "onRefresh", "progressViewOffset", "ListEmptyComponent", "ListHeaderComponent", "ListHeaderComponentStyle", "ListFooterComponent", "ListFooterComponentStyle", "ItemSeparatorComponent", "renderScrollComponent", "onScroll", "disableRecycling", "style", "stickyHeaderIndices", "maintainVisibleContentPosition", "onCommitLayoutEffect"]);
32
+ var horizontal = props.horizontal, renderItem = props.renderItem, data = props.data, extraData = props.extraData, onLoad = props.onLoad, CellRendererComponent = props.CellRendererComponent, overrideProps = props.overrideProps, refreshing = props.refreshing, onRefresh = props.onRefresh, progressViewOffset = props.progressViewOffset, ListEmptyComponent = props.ListEmptyComponent, ListHeaderComponent = props.ListHeaderComponent, ListHeaderComponentStyle = props.ListHeaderComponentStyle, ListFooterComponent = props.ListFooterComponent, ListFooterComponentStyle = props.ListFooterComponentStyle, ItemSeparatorComponent = props.ItemSeparatorComponent, renderScrollComponent = props.renderScrollComponent, style = props.style, stickyHeaderIndices = props.stickyHeaderIndices, maintainVisibleContentPosition = props.maintainVisibleContentPosition, onCommitLayoutEffect = props.onCommitLayoutEffect, rest = tslib_1.__rest(props, ["horizontal", "renderItem", "data", "extraData", "onLoad", "CellRendererComponent", "overrideProps", "refreshing", "onRefresh", "progressViewOffset", "ListEmptyComponent", "ListHeaderComponent", "ListHeaderComponentStyle", "ListFooterComponent", "ListFooterComponentStyle", "ItemSeparatorComponent", "renderScrollComponent", "style", "stickyHeaderIndices", "maintainVisibleContentPosition", "onCommitLayoutEffect"]);
33
+ var _b = tslib_1.__read((0, react_1.useState)(function () { return new RenderTimeTracker_1.RenderTimeTracker(); }), 1), renderTimeTracker = _b[0];
34
+ renderTimeTracker.startTracking();
32
35
  // Core refs for managing scroll view, internal view, and child container
33
36
  var scrollViewRef = (0, react_1.useRef)(null);
34
37
  var internalViewRef = (0, react_1.useRef)(null);
@@ -41,19 +44,19 @@ var RecyclerViewComponent = function (props, ref) {
41
44
  var stickyHeaderRef = (0, react_1.useRef)(null);
42
45
  var scrollAnchorRef = (0, react_1.useRef)(null);
43
46
  // State for managing layout and render updates
44
- var _b = tslib_1.__read((0, useLayoutState_1.useLayoutState)(0), 2), _ = _b[0], setLayoutTreeId = _b[1];
45
- var _c = tslib_1.__read((0, react_1.useState)(0), 2), __ = _c[0], setRenderId = _c[1];
47
+ var _c = tslib_1.__read((0, useLayoutState_1.useLayoutState)(0), 2), _ = _c[0], setLayoutTreeId = _c[1];
48
+ var _d = tslib_1.__read((0, react_1.useState)(0), 2), __ = _d[0], setRenderId = _d[1];
46
49
  // Map to store refs for each item in the list
47
50
  var refHolder = (0, react_1.useMemo)(function () { return new Map(); }, []);
48
51
  // Initialize core RecyclerView manager and content offset management
49
- var recyclerViewManager = (0, useRecyclerViewManager_1.useRecyclerViewManager)(props).recyclerViewManager;
50
- var _d = (0, useRecyclerViewController_1.useRecyclerViewController)(recyclerViewManager, ref, scrollViewRef, scrollAnchorRef, props), applyContentOffset = _d.applyContentOffset, applyInitialScrollIndex = _d.applyInitialScrollIndex;
52
+ var _e = (0, useRecyclerViewManager_1.useRecyclerViewManager)(props), recyclerViewManager = _e.recyclerViewManager, velocityTracker = _e.velocityTracker;
53
+ var _f = (0, useRecyclerViewController_1.useRecyclerViewController)(recyclerViewManager, ref, scrollViewRef, scrollAnchorRef), applyOffsetCorrection = _f.applyOffsetCorrection, computeFirstVisibleIndexForOffsetCorrection = _f.computeFirstVisibleIndexForOffsetCorrection, applyInitialScrollIndex = _f.applyInitialScrollIndex, handlerMethods = _f.handlerMethods;
51
54
  // Initialize view holder collection ref
52
55
  var viewHolderCollectionRef = (0, react_1.useRef)(null);
53
56
  // Hook to handle list loading
54
57
  (0, useOnLoad_1.useOnListLoad)(recyclerViewManager, onLoad);
55
58
  // Hook to detect when scrolling reaches list bounds
56
- var checkBounds = (0, useBoundDetection_1.useBoundDetection)(recyclerViewManager, props, scrollViewRef).checkBounds;
59
+ var checkBounds = (0, useBoundDetection_1.useBoundDetection)(recyclerViewManager, scrollViewRef).checkBounds;
57
60
  var isHorizontalRTL = react_native_1.I18nManager.isRTL && horizontal;
58
61
  /**
59
62
  * Initialize the RecyclerView by measuring and setting up the window size
@@ -87,6 +90,7 @@ var RecyclerViewComponent = function (props, ref) {
87
90
  * Effect to handle layout updates for list items
88
91
  * This ensures proper positioning and recycling of items
89
92
  */
93
+ // eslint-disable-next-line react-hooks/exhaustive-deps
90
94
  (0, react_1.useLayoutEffect)(function () {
91
95
  var _a, _b;
92
96
  if (pendingChildIds.size > 0) {
@@ -94,7 +98,7 @@ var RecyclerViewComponent = function (props, ref) {
94
98
  }
95
99
  var layoutInfo = Array.from(refHolder, function (_a) {
96
100
  var _b = tslib_1.__read(_a, 2), index = _b[0], viewHolderRef = _b[1];
97
- var layout = (0, measureLayout_1.measureItemLayout)(viewHolderRef.current, recyclerViewManager.getLayout(index));
101
+ var layout = (0, measureLayout_1.measureItemLayout)(viewHolderRef.current, recyclerViewManager.tryGetLayout(index));
98
102
  // comapre height with stored layout
99
103
  // const storedLayout = recyclerViewManager.getLayout(index);
100
104
  // if (
@@ -116,44 +120,40 @@ var RecyclerViewComponent = function (props, ref) {
116
120
  }
117
121
  else {
118
122
  (_b = viewHolderCollectionRef.current) === null || _b === void 0 ? void 0 : _b.commitLayout();
119
- applyContentOffset();
123
+ applyOffsetCorrection();
120
124
  }
121
125
  });
122
126
  /**
123
127
  * Scroll event handler that manages scroll position, velocity, and RTL support
124
128
  */
125
129
  var onScrollHandler = (0, react_1.useCallback)(function (event) {
126
- var _a;
130
+ var _a, _b, _c;
127
131
  if (recyclerViewManager.ignoreScrollEvents) {
128
132
  return;
129
133
  }
130
- var velocity = event.nativeEvent.velocity;
131
134
  var scrollOffset = horizontal
132
135
  ? event.nativeEvent.contentOffset.x
133
136
  : event.nativeEvent.contentOffset.y;
134
- if (!velocity) {
135
- var velocityValue = recyclerViewManager.getAbsoluteLastScrollOffset() < scrollOffset
136
- ? 1
137
- : -1;
138
- velocity = {
139
- x: horizontal ? velocityValue : 0,
140
- y: horizontal ? 0 : velocityValue,
141
- };
142
- }
143
137
  // Handle RTL (Right-to-Left) layout adjustments
144
138
  if (isHorizontalRTL) {
145
139
  scrollOffset = (0, adjustOffsetForRTL_1.adjustOffsetForRTL)(scrollOffset, event.nativeEvent.contentSize.width, event.nativeEvent.layoutMeasurement.width);
146
- if (velocity) {
147
- velocity = {
148
- x: -velocity.x,
149
- y: velocity.y,
150
- };
151
- }
152
- }
153
- // Update scroll position and trigger re-render if needed
154
- if (recyclerViewManager.updateScrollOffset(scrollOffset, velocity)) {
155
- setRenderId(function (prev) { return prev + 1; });
156
140
  }
141
+ velocityTracker.computeVelocity(scrollOffset, recyclerViewManager.getAbsoluteLastScrollOffset(), Boolean(horizontal), function (velocity, isMomentumEnd) {
142
+ if (recyclerViewManager.ignoreScrollEvents) {
143
+ return;
144
+ }
145
+ if (isMomentumEnd) {
146
+ computeFirstVisibleIndexForOffsetCorrection();
147
+ if (!recyclerViewManager.isOffsetProjectionEnabled) {
148
+ return;
149
+ }
150
+ recyclerViewManager.resetVelocityCompute();
151
+ }
152
+ // Update scroll position and trigger re-render if needed
153
+ if (recyclerViewManager.updateScrollOffset(scrollOffset, velocity)) {
154
+ setRenderId(function (prev) { return prev + 1; });
155
+ }
156
+ });
157
157
  // Update sticky headers and check bounds
158
158
  (_a = stickyHeaderRef.current) === null || _a === void 0 ? void 0 : _a.reportScrollEvent(event.nativeEvent);
159
159
  checkBounds();
@@ -161,8 +161,17 @@ var RecyclerViewComponent = function (props, ref) {
161
161
  recyclerViewManager.recordInteraction();
162
162
  recyclerViewManager.computeItemViewability();
163
163
  // Call user-provided onScroll handler
164
- onScroll === null || onScroll === void 0 ? void 0 : onScroll(event);
165
- }, [horizontal, isHorizontalRTL, recyclerViewManager]);
164
+ (_c = (_b = recyclerViewManager.props).onScroll) === null || _c === void 0 ? void 0 : _c.call(_b, event);
165
+ }, [
166
+ checkBounds,
167
+ computeFirstVisibleIndexForOffsetCorrection,
168
+ horizontal,
169
+ isHorizontalRTL,
170
+ recyclerViewManager,
171
+ velocityTracker,
172
+ ]);
173
+ var parentRecyclerViewContext = (0, RecyclerViewContextProvider_1.useRecyclerViewContext)();
174
+ var recyclerViewId = (0, react_1.useId)();
166
175
  // Create context for child components
167
176
  var recyclerViewContext = (0, react_1.useMemo)(function () {
168
177
  return {
@@ -170,10 +179,21 @@ var RecyclerViewComponent = function (props, ref) {
170
179
  setLayoutTreeId(function (prev) { return prev + 1; });
171
180
  },
172
181
  getRef: function () {
173
- return ref;
182
+ if (recyclerViewManager.isDisposed) {
183
+ return null;
184
+ }
185
+ return handlerMethods;
186
+ },
187
+ getParentRef: function () {
188
+ var _a;
189
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getRef()) !== null && _a !== void 0 ? _a : null;
190
+ },
191
+ getParentScrollViewRef: function () {
192
+ var _a;
193
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getScrollViewRef()) !== null && _a !== void 0 ? _a : null;
174
194
  },
175
195
  getScrollViewRef: function () {
176
- return scrollViewRef;
196
+ return scrollViewRef.current;
177
197
  },
178
198
  markChildLayoutAsPending: function (id) {
179
199
  pendingChildIds.add(id);
@@ -185,9 +205,13 @@ var RecyclerViewComponent = function (props, ref) {
185
205
  }
186
206
  },
187
207
  };
188
- }, [setLayoutTreeId]);
189
- var parentRecyclerViewContext = (0, RecyclerViewContextProvider_1.useRecyclerViewContext)();
190
- var recyclerViewId = (0, react_1.useId)();
208
+ }, [
209
+ handlerMethods,
210
+ parentRecyclerViewContext,
211
+ pendingChildIds,
212
+ recyclerViewManager.isDisposed,
213
+ setLayoutTreeId,
214
+ ]);
191
215
  /**
192
216
  * Validates that item dimensions match the expected layout
193
217
  */
@@ -209,9 +233,9 @@ var RecyclerViewComponent = function (props, ref) {
209
233
  // TODO: Add a warning for missing useLayoutState
210
234
  recyclerViewContext.layout();
211
235
  }
212
- }, [recyclerViewManager]);
236
+ }, [recyclerViewContext, recyclerViewManager]);
213
237
  // Get secondary props and components
214
- var _e = (0, useSecondaryProps_1.useSecondaryProps)(props), refreshControl = _e.refreshControl, renderHeader = _e.renderHeader, renderFooter = _e.renderFooter, renderEmpty = _e.renderEmpty, CompatScrollView = _e.CompatScrollView;
238
+ var _g = (0, useSecondaryProps_1.useSecondaryProps)(props), refreshControl = _g.refreshControl, renderHeader = _g.renderHeader, renderFooter = _g.renderFooter, renderEmpty = _g.renderEmpty, CompatScrollView = _g.CompatScrollView;
215
239
  if (!recyclerViewManager.getIsFirstLayoutComplete() &&
216
240
  recyclerViewManager.getDataLength() > 0) {
217
241
  parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.markChildLayoutAsPending(recyclerViewId);
@@ -225,37 +249,43 @@ var RecyclerViewComponent = function (props, ref) {
225
249
  return (react_1.default.createElement(StickyHeaders_1.StickyHeaders, { stickyHeaderIndices: stickyHeaderIndices, data: data, renderItem: renderItem, scrollY: scrollY, stickyHeaderRef: stickyHeaderRef, recyclerViewManager: recyclerViewManager, extraData: extraData }));
226
250
  }
227
251
  return null;
228
- }, [data, stickyHeaderIndices, renderItem, extraData]);
252
+ }, [
253
+ data,
254
+ stickyHeaderIndices,
255
+ renderItem,
256
+ scrollY,
257
+ recyclerViewManager,
258
+ extraData,
259
+ ]);
229
260
  // Set up scroll event handling with animation support for sticky headers
230
261
  var animatedEvent = (0, react_1.useMemo)(function () {
231
262
  if (stickyHeaders) {
232
263
  return react_native_1.Animated.event([{ nativeEvent: { contentOffset: { y: scrollY } } }], { useNativeDriver: true, listener: onScrollHandler });
233
264
  }
234
265
  return onScrollHandler;
235
- }, [onScrollHandler, stickyHeaders]);
266
+ }, [onScrollHandler, scrollY, stickyHeaders]);
267
+ var shouldMaintainVisibleContentPosition = recyclerViewManager.shouldMaintainVisibleContentPosition();
236
268
  var maintainVisibleContentPositionInternal = (0, react_1.useMemo)(function () {
237
- if ((maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.disabled) || horizontal) {
238
- return undefined;
239
- }
240
- else {
269
+ if (shouldMaintainVisibleContentPosition) {
241
270
  return tslib_1.__assign(tslib_1.__assign({}, maintainVisibleContentPosition), { minIndexForVisible: 0 });
242
271
  }
243
- }, [maintainVisibleContentPosition]);
244
- var shouldRenderFromBottom = (_a = maintainVisibleContentPositionInternal === null || maintainVisibleContentPositionInternal === void 0 ? void 0 : maintainVisibleContentPositionInternal.startRenderingFromBottom) !== null && _a !== void 0 ? _a : false;
245
- // Calculate minimum height adjustment for bottom rendering
246
- var adjustmentMinHeight = recyclerViewManager.hasLayout()
247
- ? Math.max(0, recyclerViewManager.getWindowSize().height -
248
- recyclerViewManager.getChildContainerDimensions().height -
249
- recyclerViewManager.firstItemOffset)
250
- : 0;
272
+ return undefined;
273
+ }, [maintainVisibleContentPosition, shouldMaintainVisibleContentPosition]);
274
+ var shouldRenderFromBottom = recyclerViewManager.getDataLength() > 0 &&
275
+ ((_a = maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.startRenderingFromBottom) !== null && _a !== void 0 ? _a : false);
251
276
  // Create view for measuring bounded size
252
277
  var viewToMeasureBoundedSize = (0, react_1.useMemo)(function () {
253
278
  return (react_1.default.createElement(CompatView_1.CompatView, { style: {
254
279
  height: horizontal ? undefined : 0,
255
280
  width: horizontal ? 0 : undefined,
256
- minHeight: shouldRenderFromBottom ? adjustmentMinHeight : undefined,
257
281
  }, ref: firstChildViewRef }));
258
- }, [horizontal, shouldRenderFromBottom, adjustmentMinHeight]);
282
+ }, [horizontal]);
283
+ var scrollAnchor = (0, react_1.useMemo)(function () {
284
+ if (shouldMaintainVisibleContentPosition) {
285
+ return (react_1.default.createElement(ScrollAnchor_1.ScrollAnchor, { horizontal: Boolean(horizontal), scrollAnchorRef: scrollAnchorRef }));
286
+ }
287
+ return null;
288
+ }, [horizontal, shouldMaintainVisibleContentPosition]);
259
289
  // console.log("render", recyclerViewManager.getRenderStack());
260
290
  // Render the main RecyclerView structure
261
291
  return (react_1.default.createElement(RecyclerViewContextProvider_1.RecyclerViewContextProvider, { value: recyclerViewContext },
@@ -272,19 +302,34 @@ var RecyclerViewComponent = function (props, ref) {
272
302
  }
273
303
  } },
274
304
  react_1.default.createElement(CompatScrollView, tslib_1.__assign({}, rest, { horizontal: horizontal, ref: scrollViewRef, onScroll: animatedEvent, maintainVisibleContentPosition: maintainVisibleContentPositionInternal, refreshControl: refreshControl }, overrideProps),
275
- maintainVisibleContentPositionInternal && (react_1.default.createElement(ScrollAnchor_1.ScrollAnchor, { scrollAnchorRef: scrollAnchorRef })),
305
+ scrollAnchor,
276
306
  isHorizontalRTL && viewToMeasureBoundedSize,
277
307
  renderHeader,
278
308
  !isHorizontalRTL && viewToMeasureBoundedSize,
279
- react_1.default.createElement(ViewHolderCollection_1.ViewHolderCollection, { viewHolderCollectionRef: viewHolderCollectionRef, data: data, horizontal: horizontal, renderStack: recyclerViewManager.getRenderStack(), getLayout: function (index) { return recyclerViewManager.getLayout(index); }, refHolder: refHolder, onSizeChanged: validateItemSize, renderItem: renderItem, extraData: extraData, onCommitLayoutEffect: function () {
309
+ react_1.default.createElement(ViewHolderCollection_1.ViewHolderCollection, { viewHolderCollectionRef: viewHolderCollectionRef, data: data, horizontal: horizontal, renderStack: recyclerViewManager.getRenderStack(), getLayout: function (index) { return recyclerViewManager.getLayout(index); }, getAdjustmentMargin: function () {
310
+ if (!shouldRenderFromBottom || !recyclerViewManager.hasLayout()) {
311
+ return 0;
312
+ }
313
+ var windowSize = horizontal
314
+ ? recyclerViewManager.getWindowSize().width
315
+ : recyclerViewManager.getWindowSize().height;
316
+ var childContainerSize = horizontal
317
+ ? recyclerViewManager.getChildContainerDimensions().width
318
+ : recyclerViewManager.getChildContainerDimensions().height;
319
+ return Math.max(0, windowSize -
320
+ childContainerSize -
321
+ recyclerViewManager.firstItemOffset);
322
+ }, refHolder: refHolder, onSizeChanged: validateItemSize, renderItem: renderItem, extraData: extraData, onCommitLayoutEffect: function () {
280
323
  applyInitialScrollIndex();
281
324
  parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.unmarkChildLayoutAsPending(recyclerViewId);
282
325
  onCommitLayoutEffect === null || onCommitLayoutEffect === void 0 ? void 0 : onCommitLayoutEffect();
283
326
  }, onCommitEffect: function () {
327
+ renderTimeTracker.markRenderComplete();
328
+ recyclerViewManager.updateAverageRenderTime(renderTimeTracker.getAverageRenderTime());
284
329
  applyInitialScrollIndex();
285
330
  checkBounds();
286
331
  recyclerViewManager.computeItemViewability();
287
- recyclerViewManager.disableRecycling = Boolean(disableRecycling);
332
+ recyclerViewManager.animationOptimizationsEnabled = false;
288
333
  }, CellRendererComponent: CellRendererComponent, ItemSeparatorComponent: ItemSeparatorComponent, getChildContainerLayout: function () {
289
334
  return recyclerViewManager.hasLayout()
290
335
  ? recyclerViewManager.getChildContainerDimensions()
@@ -294,6 +339,8 @@ var RecyclerViewComponent = function (props, ref) {
294
339
  renderFooter),
295
340
  stickyHeaders)));
296
341
  };
342
+ // Set displayName for the inner component
343
+ RecyclerViewComponent.displayName = "FlashList";
297
344
  // Create and export the memoized, forwarded ref component
298
345
  var RecyclerView = react_1.default.memo((0, react_1.forwardRef)(RecyclerViewComponent));
299
346
  exports.RecyclerView = RecyclerView;
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerView.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecyclerView.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerView.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,46 @@
1
+ import { FlashListRef } from "../FlashListRef";
1
2
  import { CompatScroller } from "./components/CompatScroller";
2
- export interface RecyclerViewContext {
3
- layout: () => void;
4
- getRef: () => React.Ref<any>;
5
- getScrollViewRef: () => React.RefObject<CompatScroller | null>;
3
+ export interface RecyclerViewContext<T> extends FlashListContext<T> {
4
+ /**
5
+ * Mark the children FlashLists as pending for layout
6
+ * This will force parent FlashList to wait for children to be laid out before
7
+ * rendering the next batch of items.
8
+ * @param id - The id of the child FlashList
9
+ * @returns void
10
+ */
6
11
  markChildLayoutAsPending: (id: string) => void;
12
+ /**
13
+ * Unmark the child FlashList as pending for layout
14
+ * This will allow parent FlashList to render the next batch of items.
15
+ * @param id - The id of the child FlashList
16
+ * @returns void
17
+ */
7
18
  unmarkChildLayoutAsPending: (id: string) => void;
8
19
  }
9
- export declare const RecyclerViewContextProvider: import("react").Provider<RecyclerViewContext | undefined>;
10
- export declare function useRecyclerViewContext(): RecyclerViewContext | undefined;
20
+ export interface FlashListContext<T> {
21
+ /**
22
+ * Layout the current FlashList
23
+ * @returns void
24
+ */
25
+ layout: () => void;
26
+ /**
27
+ * Get the ref for the current FlashList
28
+ */
29
+ getRef: () => FlashListRef<T> | null;
30
+ /**
31
+ * Get the ref for the parent FlashList if present
32
+ */
33
+ getParentRef: () => FlashListRef<unknown> | null;
34
+ /**
35
+ * Get the scrollView ref for the current FlashList if present
36
+ */
37
+ getScrollViewRef: () => CompatScroller | null;
38
+ /**
39
+ * Get the scrollView ref for the parent FlashList if present
40
+ */
41
+ getParentScrollViewRef: () => CompatScroller | null;
42
+ }
43
+ export declare const RecyclerViewContextProvider: import("react").Provider<RecyclerViewContext<unknown> | undefined>;
44
+ export declare function useRecyclerViewContext<T>(): RecyclerViewContext<T> | undefined;
45
+ export declare function useFlashListContext<T>(): FlashListContext<T> | undefined;
11
46
  //# sourceMappingURL=RecyclerViewContextProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewContextProvider.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewContextProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,gBAAgB,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/D,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,0BAA0B,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAMD,eAAO,MAAM,2BAA2B,2DAAuC,CAAC;AAChF,wBAAgB,sBAAsB,oCAErC"}
1
+ {"version":3,"file":"RecyclerViewContextProvider.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewContextProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACjE;;;;;;OAMG;IACH,wBAAwB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,0BAA0B,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,YAAY,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD;;OAEG;IACH,gBAAgB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAC9C;;OAEG;IACH,sBAAsB,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;CACrD;AAMD,eAAO,MAAM,2BAA2B,oEAAuC,CAAC;AAChF,wBAAgB,sBAAsB,CAAC,CAAC,KACpC,mBAAmB,CAAC,CAAC,CAAC,GACtB,SAAS,CAIZ;AACD,wBAAgB,mBAAmB,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAIxE"}
@@ -2,10 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RecyclerViewContextProvider = void 0;
4
4
  exports.useRecyclerViewContext = useRecyclerViewContext;
5
+ exports.useFlashListContext = useFlashListContext;
5
6
  var react_1 = require("react");
6
7
  var RecyclerViewContextInstance = (0, react_1.createContext)(undefined);
7
8
  exports.RecyclerViewContextProvider = RecyclerViewContextInstance.Provider;
8
9
  function useRecyclerViewContext() {
9
10
  return (0, react_1.useContext)(RecyclerViewContextInstance);
10
11
  }
12
+ function useFlashListContext() {
13
+ return (0, react_1.useContext)(RecyclerViewContextInstance);
14
+ }
11
15
  //# sourceMappingURL=RecyclerViewContextProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewContextProvider.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewContextProvider.ts"],"names":[],"mappings":";;;AAiBA,wDAEC;AAnBD,+BAAkD;AAYlD,IAAM,2BAA2B,GAAG,IAAA,qBAAa,EAE/C,SAAS,CAAC,CAAC;AAEA,QAAA,2BAA2B,GAAG,2BAA2B,CAAC,QAAQ,CAAC;AAChF,SAAgB,sBAAsB;IACpC,OAAO,IAAA,kBAAU,EAAC,2BAA2B,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"RecyclerViewContextProvider.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewContextProvider.ts"],"names":[],"mappings":";;;AAqDA,wDAMC;AACD,kDAIC;AAhED,+BAAkD;AAgDlD,IAAM,2BAA2B,GAAG,IAAA,qBAAa,EAE/C,SAAS,CAAC,CAAC;AAEA,QAAA,2BAA2B,GAAG,2BAA2B,CAAC,QAAQ,CAAC;AAChF,SAAgB,sBAAsB;IAGpC,OAAO,IAAA,kBAAU,EAAC,2BAA2B,CAEhC,CAAC;AAChB,CAAC;AACD,SAAgB,mBAAmB;IACjC,OAAO,IAAA,kBAAU,EAAC,2BAA2B,CAEhC,CAAC;AAChB,CAAC"}
@@ -5,19 +5,25 @@ import { Velocity } from "./helpers/EngagedIndicesTracker";
5
5
  export declare class RecyclerViewManager<T> {
6
6
  private initialDrawBatchSize;
7
7
  private engagedIndicesTracker;
8
- private recycleKeyManager;
8
+ private renderStackManager;
9
9
  private layoutManager?;
10
- private renderStack;
11
10
  private isFirstLayoutComplete;
12
11
  private hasRenderedProgressively;
13
- private props;
12
+ private propsRef;
14
13
  private itemViewabilityManager;
15
- private allocatedKeyTracker;
16
- disableRecycling: boolean;
14
+ private _isDisposed;
15
+ private _isLayoutManagerDirty;
16
+ private _animationOptimizationsEnabled;
17
17
  firstItemOffset: number;
18
18
  ignoreScrollEvents: boolean;
19
+ get animationOptimizationsEnabled(): boolean;
20
+ set animationOptimizationsEnabled(value: boolean);
21
+ get isOffsetProjectionEnabled(): boolean;
22
+ get isDisposed(): boolean;
19
23
  constructor(props: RecyclerViewProps<T>);
20
24
  private updateRenderStack;
25
+ get props(): RecyclerViewProps<T>;
26
+ setOffsetProjectionEnabled(value: boolean): void;
21
27
  updateProps(props: RecyclerViewProps<T>): void;
22
28
  /**
23
29
  * Updates the scroll offset and returns the engaged indices if any
@@ -25,18 +31,25 @@ export declare class RecyclerViewManager<T> {
25
31
  * @param velocity
26
32
  */
27
33
  updateScrollOffset(offset: number, velocity?: Velocity): ConsecutiveNumbers | undefined;
34
+ updateAverageRenderTime(time: number): void;
28
35
  getIsFirstLayoutComplete(): boolean;
29
36
  getLayout(index: number): import("./layout-managers/LayoutManager").RVLayout;
37
+ tryGetLayout(index: number): import("./layout-managers/LayoutManager").RVLayout | undefined;
30
38
  getChildContainerDimensions(): RVDimension;
31
- getRenderStack(): Map<number, string>;
39
+ getRenderStack(): Map<string, {
40
+ itemType: string;
41
+ index: number;
42
+ stableId: string;
43
+ }>;
32
44
  getWindowSize(): RVDimension;
33
45
  getLastScrollOffset(): number;
34
46
  getMaxScrollOffset(): number;
35
47
  getAbsoluteLastScrollOffset(): number;
36
48
  setScrollDirection(scrollDirection: "forward" | "backward"): void;
49
+ resetVelocityCompute(): void;
37
50
  updateLayoutParams(windowSize: RVDimension, firstItemOffset: number): void;
38
51
  hasLayout(): boolean;
39
- getVisibleIndices(): ConsecutiveNumbers;
52
+ computeVisibleIndices(): ConsecutiveNumbers;
40
53
  getEngagedIndices(): ConsecutiveNumbers;
41
54
  modifyChildrenLayout(layoutInfo: RVLayoutInfo[], dataLength: number): boolean;
42
55
  computeItemViewability(): void;
@@ -44,13 +57,17 @@ export declare class RecyclerViewManager<T> {
44
57
  recomputeViewableItems(): void;
45
58
  processDataUpdate(): void;
46
59
  recomputeEngagedIndices(): ConsecutiveNumbers | undefined;
60
+ restoreIfNeeded(): void;
47
61
  dispose(): void;
62
+ markLayoutManagerDirty(): void;
48
63
  getInitialScrollIndex(): number | undefined;
64
+ shouldMaintainVisibleContentPosition(): boolean;
49
65
  getDataLength(): number;
50
66
  private getLayoutManagerClass;
51
67
  private applyInitialScrollAdjustment;
52
68
  private renderProgressively;
53
69
  private getItemType;
54
70
  private getStableId;
71
+ private overrideItemLayout;
55
72
  }
56
73
  //# sourceMappingURL=RecyclerViewManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EACL,WAAW,EACX,YAAY,EAEb,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,mBAAmB,CAA0B;IAE9C,gBAAgB,UAAS;IACzB,eAAe,SAAK;IACpB,kBAAkB,UAAS;gBAEtB,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IASvC,OAAO,CAAC,iBAAiB,CA6CvB;IAEF,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAWvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,wBAAwB;IAIxB,SAAS,CAAC,KAAK,EAAE,MAAM;IAUvB,2BAA2B;IAS3B,cAAc;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IA2CnE,SAAS;IAIT,iBAAiB;IASjB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,OAAO;IAIP,qBAAqB;IASrB,aAAa;IAIb,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAEL,WAAW,EACX,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,8BAA8B,CAAS;IAExC,eAAe,SAAK;IACpB,kBAAkB,UAAS;IAElC,IAAW,6BAA6B,IAIQ,OAAO,CAFtD;IAED,IAAW,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAGtD;IAED,IAAW,yBAAyB,YAEnC;IAED,IAAW,UAAU,YAEpB;gBAEW,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAavC,OAAO,CAAC,iBAAiB,CAOvB;IAEF,IAAI,KAAK,yBAER;IAED,0BAA0B,CAAC,KAAK,EAAE,OAAO;IAIzC,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAcvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,wBAAwB;IAIxB,SAAS,CAAC,KAAK,EAAE,MAAM;IASvB,YAAY,CAAC,KAAK,EAAE,MAAM;IAY1B,2BAA2B;IAS3B,cAAc;;;;;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,oBAAoB;IAIpB,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAoCnE,SAAS;IAIT,qBAAqB;IASrB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,eAAe;IAMf,OAAO;IAKP,sBAAsB;IAItB,qBAAqB;IASrB,oCAAoC;IAQpC,aAAa;IAIb,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;CAS3B"}