@shopify/flash-list 2.0.0-rc.1 → 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 (104) hide show
  1. package/README.md +1 -1
  2. package/android/src/main/kotlin/com/shopify/reactnative/flash_list/BlankAreaEvent.kt +2 -2
  3. package/dist/FlashListProps.d.ts +15 -2
  4. package/dist/FlashListProps.d.ts.map +1 -1
  5. package/dist/FlashListProps.js.map +1 -1
  6. package/dist/__tests__/RecyclerView.test.js +12 -3
  7. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  8. package/dist/__tests__/RenderStackManager.test.js +1 -2
  9. package/dist/__tests__/RenderStackManager.test.js.map +1 -1
  10. package/dist/benchmark/useBenchmark.js +0 -25
  11. package/dist/benchmark/useBenchmark.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +1 -1
  16. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  17. package/dist/recyclerview/RecyclerView.js +46 -17
  18. package/dist/recyclerview/RecyclerView.js.map +1 -1
  19. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +37 -3
  20. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  21. package/dist/recyclerview/RecyclerViewContextProvider.js +4 -0
  22. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  23. package/dist/recyclerview/RecyclerViewManager.d.ts +4 -1
  24. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  25. package/dist/recyclerview/RecyclerViewManager.js +17 -3
  26. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  27. package/dist/recyclerview/RenderStackManager.d.ts +1 -0
  28. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -1
  29. package/dist/recyclerview/RenderStackManager.js +26 -7
  30. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  31. package/dist/recyclerview/ViewHolderCollection.d.ts +6 -2
  32. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  33. package/dist/recyclerview/ViewHolderCollection.js +3 -1
  34. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  35. package/dist/recyclerview/components/StickyHeaders.js +2 -2
  36. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  37. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +1 -0
  38. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -1
  39. package/dist/recyclerview/helpers/RenderTimeTracker.js +3 -0
  40. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  41. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  42. package/dist/recyclerview/hooks/useBoundDetection.js +39 -8
  43. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  44. package/dist/recyclerview/hooks/useLayoutState.d.ts +3 -1
  45. package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -1
  46. package/dist/recyclerview/hooks/useLayoutState.js +5 -3
  47. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  48. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +2 -1
  49. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  50. package/dist/recyclerview/hooks/useRecyclerViewController.js +253 -193
  51. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  52. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  53. package/dist/recyclerview/hooks/useRecyclerViewManager.js +2 -1
  54. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  55. package/dist/recyclerview/hooks/useRecyclingState.d.ts +4 -2
  56. package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -1
  57. package/dist/recyclerview/hooks/useRecyclingState.js +2 -2
  58. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  59. package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -1
  60. package/dist/recyclerview/hooks/useUnmountFlag.js +1 -0
  61. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  62. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +14 -6
  63. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  64. package/dist/recyclerview/layout-managers/GridLayoutManager.js +40 -23
  65. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  66. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +26 -6
  67. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  68. package/dist/recyclerview/layout-managers/LayoutManager.js +89 -15
  69. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  70. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +9 -1
  71. package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -1
  72. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +28 -12
  73. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  74. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -1
  75. package/dist/recyclerview/utils/measureLayout.web.js +1 -3
  76. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  77. package/dist/tsconfig.tsbuildinfo +1 -1
  78. package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
  79. package/dist/viewability/ViewabilityManager.js +10 -3
  80. package/dist/viewability/ViewabilityManager.js.map +1 -1
  81. package/package.json +1 -1
  82. package/src/FlashListProps.ts +21 -2
  83. package/src/__tests__/RecyclerView.test.tsx +26 -5
  84. package/src/__tests__/RenderStackManager.test.ts +1 -2
  85. package/src/benchmark/useBenchmark.ts +0 -37
  86. package/src/index.ts +1 -1
  87. package/src/recyclerview/RecyclerView.tsx +66 -32
  88. package/src/recyclerview/RecyclerViewContextProvider.ts +42 -3
  89. package/src/recyclerview/RecyclerViewManager.ts +16 -4
  90. package/src/recyclerview/RenderStackManager.ts +32 -6
  91. package/src/recyclerview/ViewHolderCollection.tsx +9 -2
  92. package/src/recyclerview/components/StickyHeaders.tsx +2 -2
  93. package/src/recyclerview/helpers/RenderTimeTracker.ts +4 -0
  94. package/src/recyclerview/hooks/useBoundDetection.ts +49 -7
  95. package/src/recyclerview/hooks/useLayoutState.ts +15 -6
  96. package/src/recyclerview/hooks/useRecyclerViewController.tsx +259 -172
  97. package/src/recyclerview/hooks/useRecyclerViewManager.ts +3 -1
  98. package/src/recyclerview/hooks/useRecyclingState.ts +11 -7
  99. package/src/recyclerview/hooks/useUnmountFlag.ts +1 -0
  100. package/src/recyclerview/layout-managers/GridLayoutManager.ts +44 -23
  101. package/src/recyclerview/layout-managers/LayoutManager.ts +98 -20
  102. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +30 -8
  103. package/src/recyclerview/utils/measureLayout.web.ts +1 -3
  104. package/src/viewability/ViewabilityManager.ts +10 -6
@@ -26,121 +26,135 @@ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
26
26
  */
27
27
  function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scrollAnchorRef) {
28
28
  var _this = this;
29
- var _a, _b;
30
29
  var isUnmounted = (0, useUnmountFlag_1.useUnmountFlag)();
31
- var _c = tslib_1.__read((0, react_1.useState)(0), 2), _ = _c[0], setRenderId = _c[1];
30
+ var _a = tslib_1.__read((0, react_1.useState)(0), 2), _ = _a[0], setRenderId = _a[1];
32
31
  var pauseOffsetCorrection = (0, react_1.useRef)(false);
33
32
  var initialScrollCompletedRef = (0, react_1.useRef)(false);
34
- var lastDataLengthRef = (0, react_1.useRef)((_b = (_a = recyclerViewManager.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
33
+ var lastDataLengthRef = (0, react_1.useRef)(recyclerViewManager.getDataLength());
35
34
  var setTimeout = (0, useUnmountAwareCallbacks_1.useUnmountAwareTimeout)().setTimeout;
36
35
  // Track the first visible item for maintaining scroll position
37
36
  var firstVisibleItemKey = (0, react_1.useRef)(undefined);
38
37
  var firstVisibleItemLayout = (0, react_1.useRef)(undefined);
39
- var pendingScrollResolves = (0, react_1.useRef)([]);
38
+ // Queue to store callbacks that should be executed after scroll offset updates
39
+ var pendingScrollCallbacks = (0, react_1.useRef)([]);
40
40
  // Handle initial scroll position when the list first loads
41
41
  // useOnLoad(recyclerViewManager, () => {
42
42
  // });
43
43
  /**
44
- * Updates the scroll offset and returns a Promise that resolves
45
- * when the update has been applied.
44
+ * Updates the scroll offset and calls the provided callback
45
+ * after the update has been applied and the component has re-rendered.
46
+ *
47
+ * @param offset - The new scroll offset to apply
48
+ * @param callback - Optional callback to execute after the update is applied
46
49
  */
47
- var updateScrollOffsetAsync = (0, react_1.useCallback)(function (offset) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
48
- return tslib_1.__generator(this, function (_a) {
49
- return [2 /*return*/, new Promise(function (resolve) {
50
- // TODO: Make sure we don't scroll beyond content size
51
- if (recyclerViewManager.updateScrollOffset(offset) !== undefined) {
52
- // Add the resolve function to the queue
53
- pendingScrollResolves.current.push(resolve);
54
- setRenderId(function (prev) { return prev + 1; });
55
- }
56
- else {
57
- resolve();
58
- }
59
- })];
60
- });
61
- }); }, [recyclerViewManager]);
50
+ var updateScrollOffsetWithCallback = (0, react_1.useCallback)(function (offset, callback) {
51
+ // Attempt to update the scroll offset in the RecyclerViewManager
52
+ // This returns undefined if no update is needed
53
+ if (recyclerViewManager.updateScrollOffset(offset) !== undefined) {
54
+ // It will be executed after the next render
55
+ pendingScrollCallbacks.current.push(callback);
56
+ // Trigger a re-render to apply the scroll offset update
57
+ setRenderId(function (prev) { return prev + 1; });
58
+ }
59
+ else {
60
+ // No update needed, execute callback immediately
61
+ callback();
62
+ }
63
+ }, [recyclerViewManager]);
64
+ var computeFirstVisibleIndexForOffsetCorrection = (0, react_1.useCallback)(function () {
65
+ var _a = recyclerViewManager.props, data = _a.data, keyExtractor = _a.keyExtractor;
66
+ if (recyclerViewManager.getIsFirstLayoutComplete() &&
67
+ keyExtractor &&
68
+ recyclerViewManager.getDataLength() > 0 &&
69
+ recyclerViewManager.shouldMaintainVisibleContentPosition()) {
70
+ // Update the tracked first visible item
71
+ var firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
72
+ if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
73
+ firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
74
+ firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
75
+ }
76
+ }
77
+ }, [recyclerViewManager]);
62
78
  /**
63
79
  * Maintains the visible content position when the list updates.
64
80
  * This is particularly useful for chat applications where we want to keep
65
81
  * the user's current view position when new messages are added.
66
82
  */
67
- var applyContentOffset = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
68
- var _a, horizontal, data, keyExtractor, resolves, currentDataLength, hasDataChanged, currentIndexOfFirstVisibleItem, diff, scrollToParams, firstVisibleIndex;
69
- var _b, _c, _d, _e, _f;
70
- return tslib_1.__generator(this, function (_g) {
71
- _a = recyclerViewManager.props, horizontal = _a.horizontal, data = _a.data, keyExtractor = _a.keyExtractor;
72
- resolves = pendingScrollResolves.current;
73
- pendingScrollResolves.current = [];
74
- resolves.forEach(function (resolve) { return resolve(); });
75
- currentDataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
76
- if (recyclerViewManager.getIsFirstLayoutComplete() &&
77
- keyExtractor &&
78
- currentDataLength > 0 &&
79
- recyclerViewManager.shouldMaintainVisibleContentPosition()) {
80
- hasDataChanged = currentDataLength !== lastDataLengthRef.current;
81
- // If we have a tracked first visible item, maintain its position
82
- if (firstVisibleItemKey.current) {
83
- currentIndexOfFirstVisibleItem = (_c = recyclerViewManager
84
- .getEngagedIndices()
85
- .findValue(function (index) {
86
- return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(data[index], index)) ===
87
- firstVisibleItemKey.current;
88
- })) !== null && _c !== void 0 ? _c : (hasDataChanged
89
- ? data === null || data === void 0 ? void 0 : data.findIndex(function (item, index) {
90
- return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, index)) === firstVisibleItemKey.current;
91
- })
92
- : undefined);
93
- if (currentIndexOfFirstVisibleItem !== undefined &&
94
- currentIndexOfFirstVisibleItem >= 0) {
95
- diff = horizontal
96
- ? recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).x -
97
- firstVisibleItemLayout.current.x
98
- : recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).y -
99
- firstVisibleItemLayout.current.y;
100
- firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem));
101
- if (diff !== 0 && !pauseOffsetCorrection.current) {
102
- // console.log("diff", diff, firstVisibleItemKey.current);
103
- if (PlatformHelper_1.PlatformConfig.supportsOffsetCorrection) {
104
- // console.log("scrollBy", diff);
105
- (_d = scrollAnchorRef.current) === null || _d === void 0 ? void 0 : _d.scrollBy(diff);
106
- }
107
- else {
108
- scrollToParams = horizontal
109
- ? {
110
- x: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
111
- animated: false,
112
- }
113
- : {
114
- y: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
115
- animated: false,
116
- };
117
- (_e = scrollViewRef.current) === null || _e === void 0 ? void 0 : _e.scrollTo(scrollToParams);
118
- }
119
- if (hasDataChanged) {
120
- updateScrollOffsetAsync(recyclerViewManager.getAbsoluteLastScrollOffset() + diff);
121
- recyclerViewManager.ignoreScrollEvents = true;
122
- setTimeout(function () {
123
- recyclerViewManager.ignoreScrollEvents = false;
124
- }, 100);
125
- }
83
+ var applyOffsetCorrection = (0, react_1.useCallback)(function () {
84
+ var _a, _b, _c;
85
+ var _d = recyclerViewManager.props, horizontal = _d.horizontal, data = _d.data, keyExtractor = _d.keyExtractor;
86
+ // Execute all pending callbacks from previous scroll offset updates
87
+ // This ensures any scroll operations that were waiting for render are completed
88
+ var callbacks = pendingScrollCallbacks.current;
89
+ pendingScrollCallbacks.current = [];
90
+ callbacks.forEach(function (callback) { return callback(); });
91
+ var currentDataLength = recyclerViewManager.getDataLength();
92
+ if (recyclerViewManager.getIsFirstLayoutComplete() &&
93
+ keyExtractor &&
94
+ currentDataLength > 0 &&
95
+ recyclerViewManager.shouldMaintainVisibleContentPosition()) {
96
+ var hasDataChanged = currentDataLength !== lastDataLengthRef.current;
97
+ // If we have a tracked first visible item, maintain its position
98
+ if (firstVisibleItemKey.current) {
99
+ var currentIndexOfFirstVisibleItem = (_a = recyclerViewManager
100
+ .getEngagedIndices()
101
+ .findValue(function (index) {
102
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(data[index], index)) ===
103
+ firstVisibleItemKey.current;
104
+ })) !== null && _a !== void 0 ? _a : (hasDataChanged
105
+ ? data === null || data === void 0 ? void 0 : data.findIndex(function (item, index) {
106
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, index)) === firstVisibleItemKey.current;
107
+ })
108
+ : undefined);
109
+ if (currentIndexOfFirstVisibleItem !== undefined &&
110
+ currentIndexOfFirstVisibleItem >= 0) {
111
+ // Calculate the difference in position and apply the offset
112
+ var diff = horizontal
113
+ ? recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).x -
114
+ firstVisibleItemLayout.current.x
115
+ : recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).y -
116
+ firstVisibleItemLayout.current.y;
117
+ firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem));
118
+ if (diff !== 0 &&
119
+ !pauseOffsetCorrection.current &&
120
+ !recyclerViewManager.animationOptimizationsEnabled) {
121
+ // console.log("diff", diff, firstVisibleItemKey.current);
122
+ if (PlatformHelper_1.PlatformConfig.supportsOffsetCorrection) {
123
+ // console.log("scrollBy", diff);
124
+ (_b = scrollAnchorRef.current) === null || _b === void 0 ? void 0 : _b.scrollBy(diff);
125
+ }
126
+ else {
127
+ var scrollToParams = horizontal
128
+ ? {
129
+ x: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
130
+ animated: false,
131
+ }
132
+ : {
133
+ y: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
134
+ animated: false,
135
+ };
136
+ (_c = scrollViewRef.current) === null || _c === void 0 ? void 0 : _c.scrollTo(scrollToParams);
137
+ }
138
+ if (hasDataChanged) {
139
+ updateScrollOffsetWithCallback(recyclerViewManager.getAbsoluteLastScrollOffset() + diff, function () { });
140
+ recyclerViewManager.ignoreScrollEvents = true;
141
+ setTimeout(function () {
142
+ recyclerViewManager.ignoreScrollEvents = false;
143
+ }, 100);
126
144
  }
127
145
  }
128
146
  }
129
- firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
130
- if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
131
- firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
132
- firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
133
- }
134
147
  }
135
- lastDataLengthRef.current = (_f = data === null || data === void 0 ? void 0 : data.length) !== null && _f !== void 0 ? _f : 0;
136
- return [2 /*return*/];
137
- });
138
- }); }, [
148
+ computeFirstVisibleIndexForOffsetCorrection();
149
+ }
150
+ lastDataLengthRef.current = recyclerViewManager.getDataLength();
151
+ }, [
139
152
  recyclerViewManager,
140
153
  scrollAnchorRef,
141
154
  scrollViewRef,
142
155
  setTimeout,
143
- updateScrollOffsetAsync,
156
+ updateScrollOffsetWithCallback,
157
+ computeFirstVisibleIndexForOffsetCorrection,
144
158
  ]);
145
159
  var handlerMethods = (0, react_1.useMemo)(function () {
146
160
  return {
@@ -234,128 +248,159 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
234
248
  /**
235
249
  * Scrolls to a specific index in the list.
236
250
  * Supports viewPosition and viewOffset for precise positioning.
251
+ * Returns a Promise that resolves when the scroll is complete.
237
252
  */
238
- scrollToIndex: function (_a) { return tslib_1.__awaiter(_this, [_a], void 0, function (_b) {
239
- var horizontal, getFinalOffset_1, lastAbsoluteScrollOffset_1, bufferForScroll, bufferForCompute_1, getStartScrollOffset, initialTargetOffset, initialStartScrollOffset, finalOffset, startScrollOffset, steps, i, nextOffset, newFinalOffset, maxOffset;
240
- var index = _b.index, animated = _b.animated, viewPosition = _b.viewPosition, viewOffset = _b.viewOffset;
241
- return tslib_1.__generator(this, function (_c) {
242
- switch (_c.label) {
243
- case 0:
244
- horizontal = recyclerViewManager.props.horizontal;
245
- if (!(scrollViewRef.current &&
246
- index >= 0 &&
247
- index < recyclerViewManager.getDataLength())) return [3 /*break*/, 5];
248
- // Pause the scroll offset adjustments
249
- pauseOffsetCorrection.current = true;
250
- recyclerViewManager.setOffsetProjectionEnabled(false);
251
- getFinalOffset_1 = function () {
252
- var layout = recyclerViewManager.getLayout(index);
253
- var offset = horizontal ? layout.x : layout.y;
254
- var finalOffset = offset;
255
- // take viewPosition etc into account
256
- if (viewPosition !== undefined || viewOffset !== undefined) {
257
- var containerSize = horizontal
258
- ? recyclerViewManager.getWindowSize().width
259
- : recyclerViewManager.getWindowSize().height;
260
- var itemSize = horizontal ? layout.width : layout.height;
261
- if (viewPosition !== undefined) {
262
- // viewPosition: 0 = top, 0.5 = center, 1 = bottom
263
- finalOffset =
264
- offset - (containerSize - itemSize) * viewPosition;
265
- }
266
- if (viewOffset !== undefined) {
267
- finalOffset += viewOffset;
268
- }
269
- }
270
- return finalOffset + recyclerViewManager.firstItemOffset;
271
- };
272
- lastAbsoluteScrollOffset_1 = recyclerViewManager.getAbsoluteLastScrollOffset();
273
- bufferForScroll = horizontal
274
- ? recyclerViewManager.getWindowSize().width
275
- : recyclerViewManager.getWindowSize().height;
276
- bufferForCompute_1 = bufferForScroll * 2;
277
- getStartScrollOffset = function () {
278
- var lastScrollOffset = lastAbsoluteScrollOffset_1;
279
- var finalOffset = getFinalOffset_1();
280
- if (finalOffset > lastScrollOffset) {
281
- lastScrollOffset = Math.max(finalOffset - bufferForCompute_1, lastScrollOffset);
282
- recyclerViewManager.setScrollDirection("forward");
253
+ scrollToIndex: function (_a) {
254
+ var index = _a.index, animated = _a.animated, viewPosition = _a.viewPosition, viewOffset = _a.viewOffset;
255
+ return new Promise(function (resolve) {
256
+ var horizontal = recyclerViewManager.props.horizontal;
257
+ if (scrollViewRef.current &&
258
+ index >= 0 &&
259
+ index < recyclerViewManager.getDataLength()) {
260
+ // Pause the scroll offset adjustments
261
+ pauseOffsetCorrection.current = true;
262
+ recyclerViewManager.setOffsetProjectionEnabled(false);
263
+ var getFinalOffset_1 = function () {
264
+ var layout = recyclerViewManager.getLayout(index);
265
+ var offset = horizontal ? layout.x : layout.y;
266
+ var finalOffset = offset;
267
+ // take viewPosition etc into account
268
+ if (viewPosition !== undefined || viewOffset !== undefined) {
269
+ var containerSize = horizontal
270
+ ? recyclerViewManager.getWindowSize().width
271
+ : recyclerViewManager.getWindowSize().height;
272
+ var itemSize = horizontal ? layout.width : layout.height;
273
+ if (viewPosition !== undefined) {
274
+ // viewPosition: 0 = top, 0.5 = center, 1 = bottom
275
+ finalOffset =
276
+ offset - (containerSize - itemSize) * viewPosition;
283
277
  }
284
- else {
285
- lastScrollOffset = Math.min(finalOffset + bufferForCompute_1, lastScrollOffset);
286
- recyclerViewManager.setScrollDirection("backward");
278
+ if (viewOffset !== undefined) {
279
+ finalOffset += viewOffset;
287
280
  }
288
- return lastScrollOffset;
289
- };
290
- initialTargetOffset = getFinalOffset_1();
291
- initialStartScrollOffset = getStartScrollOffset();
292
- finalOffset = initialTargetOffset;
293
- startScrollOffset = initialStartScrollOffset;
294
- steps = 5;
295
- i = 0;
296
- _c.label = 1;
297
- case 1:
298
- if (!(i < steps)) return [3 /*break*/, 4];
299
- if (isUnmounted.current) {
300
- return [2 /*return*/];
301
281
  }
302
- nextOffset = animated
303
- ? finalOffset +
304
- (startScrollOffset - finalOffset) * (i / (steps - 1))
305
- : startScrollOffset +
306
- (finalOffset - startScrollOffset) * (i / (steps - 1));
307
- return [4 /*yield*/, updateScrollOffsetAsync(nextOffset)];
308
- case 2:
309
- _c.sent();
310
- // In case some change happens in the middle of this operation
311
- // and the index is out of bounds, scroll to the end
312
- if (index >= recyclerViewManager.getDataLength()) {
313
- handlerMethods.scrollToEnd({ animated: animated });
314
- return [2 /*return*/];
282
+ return finalOffset + recyclerViewManager.firstItemOffset;
283
+ };
284
+ var lastAbsoluteScrollOffset_1 = recyclerViewManager.getAbsoluteLastScrollOffset();
285
+ var bufferForScroll = horizontal
286
+ ? recyclerViewManager.getWindowSize().width
287
+ : recyclerViewManager.getWindowSize().height;
288
+ var bufferForCompute_1 = bufferForScroll * 2;
289
+ var getStartScrollOffset_1 = function () {
290
+ var lastScrollOffset = lastAbsoluteScrollOffset_1;
291
+ var finalOffset = getFinalOffset_1();
292
+ if (finalOffset > lastScrollOffset) {
293
+ lastScrollOffset = Math.max(finalOffset - bufferForCompute_1, lastScrollOffset);
294
+ recyclerViewManager.setScrollDirection("forward");
315
295
  }
316
- newFinalOffset = getFinalOffset_1();
317
- if ((newFinalOffset < initialTargetOffset &&
318
- newFinalOffset < initialStartScrollOffset) ||
319
- (newFinalOffset > initialTargetOffset &&
320
- newFinalOffset > initialStartScrollOffset)) {
321
- finalOffset = newFinalOffset;
322
- startScrollOffset = getStartScrollOffset();
323
- initialTargetOffset = newFinalOffset;
324
- initialStartScrollOffset = startScrollOffset;
325
- i = -1; // Restart compute loop
296
+ else {
297
+ lastScrollOffset = Math.min(finalOffset + bufferForCompute_1, lastScrollOffset);
298
+ recyclerViewManager.setScrollDirection("backward");
299
+ }
300
+ return lastScrollOffset;
301
+ };
302
+ var initialTargetOffset_1 = getFinalOffset_1();
303
+ var initialStartScrollOffset_1 = getStartScrollOffset_1();
304
+ var finalOffset_1 = initialTargetOffset_1;
305
+ var startScrollOffset_1 = initialStartScrollOffset_1;
306
+ var steps_1 = 5;
307
+ /**
308
+ * Recursively performs the scroll animation steps.
309
+ * This function replaces the async/await loop with callback-based execution.
310
+ *
311
+ * @param currentStep - The current step in the animation (0 to steps-1)
312
+ */
313
+ var performScrollStep_1 = function (currentStep) {
314
+ // Check if component is unmounted or we've completed all steps
315
+ if (isUnmounted.current) {
316
+ resolve();
317
+ return;
326
318
  }
327
- _c.label = 3;
328
- case 3:
329
- i++;
330
- return [3 /*break*/, 1];
331
- case 4:
332
- finalOffset = getFinalOffset_1();
333
- maxOffset = recyclerViewManager.getMaxScrollOffset();
334
- if (finalOffset > maxOffset) {
335
- finalOffset = maxOffset;
319
+ else if (currentStep >= steps_1) {
320
+ // All steps completed, perform final scroll
321
+ finishScrollToIndex_1();
322
+ return;
323
+ }
324
+ // Calculate the offset for this step
325
+ // For animated scrolls: interpolate from finalOffset to startScrollOffset
326
+ // For non-animated: interpolate from startScrollOffset to finalOffset
327
+ var nextOffset = animated
328
+ ? finalOffset_1 +
329
+ (startScrollOffset_1 - finalOffset_1) *
330
+ (currentStep / (steps_1 - 1))
331
+ : startScrollOffset_1 +
332
+ (finalOffset_1 - startScrollOffset_1) *
333
+ (currentStep / (steps_1 - 1));
334
+ // Update scroll offset with a callback to continue to the next step
335
+ updateScrollOffsetWithCallback(nextOffset, function () {
336
+ // Check if the index is still valid after the update
337
+ if (index >= recyclerViewManager.getDataLength()) {
338
+ // Index out of bounds, scroll to end instead
339
+ handlerMethods.scrollToEnd({ animated: animated });
340
+ resolve(); // Resolve the promise as we're done
341
+ return;
342
+ }
343
+ // Check if the target position has changed significantly
344
+ var newFinalOffset = getFinalOffset_1();
345
+ if ((newFinalOffset < initialTargetOffset_1 &&
346
+ newFinalOffset < initialStartScrollOffset_1) ||
347
+ (newFinalOffset > initialTargetOffset_1 &&
348
+ newFinalOffset > initialStartScrollOffset_1)) {
349
+ // Target has moved, recalculate and restart from beginning
350
+ finalOffset_1 = newFinalOffset;
351
+ startScrollOffset_1 = getStartScrollOffset_1();
352
+ initialTargetOffset_1 = newFinalOffset;
353
+ initialStartScrollOffset_1 = startScrollOffset_1;
354
+ performScrollStep_1(0); // Restart from step 0
355
+ }
356
+ else {
357
+ // Continue to next step
358
+ performScrollStep_1(currentStep + 1);
359
+ }
360
+ });
361
+ };
362
+ /**
363
+ * Completes the scroll to index operation by performing the final scroll
364
+ * and re-enabling offset correction after a delay.
365
+ */
366
+ var finishScrollToIndex_1 = function () {
367
+ finalOffset_1 = getFinalOffset_1();
368
+ var maxOffset = recyclerViewManager.getMaxScrollOffset();
369
+ if (finalOffset_1 > maxOffset) {
370
+ finalOffset_1 = maxOffset;
336
371
  }
337
372
  if (animated) {
373
+ // For animated scrolls, first jump to the start position
338
374
  // We don't need to add firstItemOffset here as it's already added
339
375
  handlerMethods.scrollToOffset({
340
- offset: startScrollOffset,
376
+ offset: startScrollOffset_1,
341
377
  animated: false,
342
378
  skipFirstItemOffset: true,
343
379
  });
344
380
  }
381
+ // Perform the final scroll to the target position
345
382
  handlerMethods.scrollToOffset({
346
- offset: finalOffset,
383
+ offset: finalOffset_1,
347
384
  animated: animated,
348
385
  skipFirstItemOffset: true,
349
386
  });
387
+ // Re-enable offset correction after a delay
388
+ // Longer delay for animated scrolls to allow animation to complete
350
389
  setTimeout(function () {
351
390
  pauseOffsetCorrection.current = false;
352
391
  recyclerViewManager.setOffsetProjectionEnabled(true);
392
+ resolve(); // Resolve the promise after re-enabling corrections
353
393
  }, animated ? 300 : 200);
354
- _c.label = 5;
355
- case 5: return [2 /*return*/];
394
+ };
395
+ // Start the scroll animation process
396
+ performScrollStep_1(0);
397
+ }
398
+ else {
399
+ // Invalid parameters, resolve immediately
400
+ resolve();
356
401
  }
357
402
  });
358
- }); },
403
+ },
359
404
  /**
360
405
  * Scrolls to a specific item in the list.
361
406
  * Finds the item's index and uses scrollToIndex internally.
@@ -408,7 +453,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
408
453
  * Disables item recycling in preparation for layout animations.
409
454
  */
410
455
  prepareForLayoutAnimationRender: function () {
411
- recyclerViewManager.disableRecycling(true);
456
+ recyclerViewManager.animationOptimizationsEnabled = true;
412
457
  },
413
458
  };
414
459
  }, [
@@ -416,7 +461,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
416
461
  scrollViewRef,
417
462
  setTimeout,
418
463
  isUnmounted,
419
- updateScrollOffsetAsync,
464
+ updateScrollOffsetWithCallback,
420
465
  ]);
421
466
  var applyInitialScrollIndex = (0, react_1.useCallback)(function () {
422
467
  var _a, _b;
@@ -452,8 +497,23 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
452
497
  }, [handlerMethods, recyclerViewManager, setTimeout]);
453
498
  // Expose imperative methods through the ref
454
499
  (0, react_1.useImperativeHandle)(ref, function () {
455
- return tslib_1.__assign(tslib_1.__assign({}, scrollViewRef.current), handlerMethods);
456
- }, [handlerMethods, scrollViewRef]);
457
- return { applyContentOffset: applyContentOffset, applyInitialScrollIndex: applyInitialScrollIndex, handlerMethods: handlerMethods };
500
+ var imperativeApi = tslib_1.__assign(tslib_1.__assign({}, scrollViewRef.current), handlerMethods);
501
+ // Without this the props getter from handlerMethods is evaluated during spread and
502
+ // future updates to props are not reflected in the ref
503
+ Object.defineProperty(imperativeApi, "props", {
504
+ get: function () {
505
+ return recyclerViewManager.props;
506
+ },
507
+ enumerable: true,
508
+ configurable: true,
509
+ });
510
+ return imperativeApi;
511
+ }, [handlerMethods, scrollViewRef, recyclerViewManager]);
512
+ return {
513
+ applyOffsetCorrection: applyOffsetCorrection,
514
+ computeFirstVisibleIndexForOffsetCorrection: computeFirstVisibleIndexForOffsetCorrection,
515
+ applyInitialScrollIndex: applyInitialScrollIndex,
516
+ handlerMethods: handlerMethods,
517
+ };
458
518
  }
459
519
  //# sourceMappingURL=useRecyclerViewController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;;;CAiCpE,CAAC"}
1
+ {"version":3,"file":"useRecyclerViewManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;;;CAmCpE,CAAC"}
@@ -23,11 +23,12 @@ var useRecyclerViewManager = function (props) {
23
23
  // eslint-disable-next-line react-hooks/exhaustive-deps
24
24
  }, [data]);
25
25
  (0, react_1.useEffect)(function () {
26
+ recyclerViewManager.restoreIfNeeded();
26
27
  return function () {
27
28
  recyclerViewManager.dispose();
28
29
  velocityTracker.cleanUp();
29
30
  };
30
- // needs to run only on unmount
31
+ // Used to perform cleanup on unmount
31
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
32
33
  }, []);
33
34
  return { recyclerViewManager: recyclerViewManager, velocityTracker: velocityTracker };