@shopify/flash-list 2.0.3 → 2.1.0

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 (194) hide show
  1. package/dist/AnimatedFlashList.js +4 -6
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.js +1 -5
  4. package/dist/FlashList.js.map +1 -1
  5. package/dist/FlashListProps.d.ts +9 -1
  6. package/dist/FlashListProps.d.ts.map +1 -1
  7. package/dist/FlashListProps.js +1 -4
  8. package/dist/FlashListProps.js.map +1 -1
  9. package/dist/FlashListRef.js +1 -2
  10. package/dist/benchmark/AutoScrollHelper.js +22 -30
  11. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.js +27 -33
  13. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  14. package/dist/benchmark/roundToDecimalPlaces.js +2 -5
  15. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  16. package/dist/benchmark/useBenchmark.d.ts +9 -1
  17. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  18. package/dist/benchmark/useBenchmark.js +86 -95
  19. package/dist/benchmark/useBenchmark.js.map +1 -1
  20. package/dist/benchmark/useDataMultiplier.js +6 -10
  21. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  22. package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
  23. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +73 -81
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/errors/ErrorMessages.js +1 -4
  27. package/dist/errors/ErrorMessages.js.map +1 -1
  28. package/dist/errors/WarningMessages.d.ts +1 -0
  29. package/dist/errors/WarningMessages.d.ts.map +1 -1
  30. package/dist/errors/WarningMessages.js +2 -4
  31. package/dist/errors/WarningMessages.js.map +1 -1
  32. package/dist/index.js +17 -35
  33. package/dist/index.js.map +1 -1
  34. package/dist/isNewArch.js +6 -9
  35. package/dist/isNewArch.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.android.js +2 -5
  37. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.ios.js +2 -5
  39. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.js +2 -5
  41. package/dist/native/config/PlatformHelper.js.map +1 -1
  42. package/dist/native/config/PlatformHelper.web.js +2 -5
  43. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  44. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  45. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  46. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  47. package/dist/recyclerview/RecyclerView.js +117 -107
  48. package/dist/recyclerview/RecyclerView.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  50. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewManager.d.ts +2 -0
  52. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  53. package/dist/recyclerview/RecyclerViewManager.js +146 -164
  54. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  55. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  56. package/dist/recyclerview/RenderStackManager.js +97 -188
  57. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  58. package/dist/recyclerview/ViewHolder.js +16 -20
  59. package/dist/recyclerview/ViewHolder.js.map +1 -1
  60. package/dist/recyclerview/ViewHolderCollection.js +26 -30
  61. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  62. package/dist/recyclerview/components/CompatScroller.js +6 -7
  63. package/dist/recyclerview/components/CompatScroller.js.map +1 -1
  64. package/dist/recyclerview/components/CompatView.js +6 -7
  65. package/dist/recyclerview/components/CompatView.js.map +1 -1
  66. package/dist/recyclerview/components/ScrollAnchor.js +10 -15
  67. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  68. package/dist/recyclerview/components/StickyHeaders.js +34 -40
  69. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  70. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  71. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  72. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  73. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  74. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  75. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  77. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  78. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  79. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  80. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  81. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  82. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  83. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  84. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  85. package/dist/recyclerview/hooks/useOnLoad.js +17 -22
  86. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  87. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  90. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  92. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  93. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  94. package/dist/recyclerview/hooks/useSecondaryProps.js +24 -30
  95. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  96. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  97. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  98. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  99. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  100. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  101. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  102. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  103. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  104. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  105. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  106. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  107. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  108. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  109. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  110. package/dist/recyclerview/utils/componentUtils.js +4 -9
  111. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  112. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  113. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  114. package/dist/recyclerview/utils/measureLayout.js +12 -20
  115. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  116. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  117. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  118. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  119. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  120. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  122. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/utils/AverageWindow.js +28 -39
  125. package/dist/utils/AverageWindow.js.map +1 -1
  126. package/package.json +4 -6
  127. package/src/FlashListProps.ts +8 -1
  128. package/src/benchmark/useBenchmark.ts +47 -4
  129. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  130. package/src/errors/WarningMessages.ts +2 -0
  131. package/src/recyclerview/RecyclerView.tsx +18 -5
  132. package/src/recyclerview/RecyclerViewManager.ts +12 -0
  133. package/src/recyclerview/hooks/useOnLoad.ts +1 -0
  134. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  135. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  136. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  137. package/dist/__tests__/AverageWindow.test.js +0 -104
  138. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  139. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  140. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  141. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  142. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  143. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  144. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  145. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  146. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  147. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  148. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  149. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  150. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  151. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  152. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  153. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  154. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  155. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  158. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  160. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  161. package/dist/__tests__/RecyclerView.test.js +0 -103
  162. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  163. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  164. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  165. package/dist/__tests__/RenderStackManager.test.js +0 -485
  166. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  167. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  168. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  169. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  170. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  171. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  172. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  173. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  174. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  175. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  176. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  177. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  178. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  179. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  180. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  181. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  182. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  183. package/src/__tests__/AverageWindow.test.ts +0 -128
  184. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  185. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  186. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  187. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  188. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  189. package/src/__tests__/RecyclerView.test.tsx +0 -144
  190. package/src/__tests__/RenderStackManager.test.ts +0 -574
  191. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  192. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  193. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  194. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,18 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderStackManager = void 0;
4
- var tslib_1 = require("tslib");
5
1
  /**
6
2
  * Manages the recycling of rendered items in a virtualized list.
7
3
  * This class handles tracking, recycling, and reusing item keys to optimize
8
4
  * rendering performance by minimizing creation/destruction of components.
9
5
  */
10
- var RenderStackManager = /** @class */ (function () {
6
+ export class RenderStackManager {
11
7
  /**
12
8
  * @param maxItemsInRecyclePool - Maximum number of items that can be in the recycle pool
13
9
  */
14
- function RenderStackManager(maxItemsInRecyclePool) {
15
- if (maxItemsInRecyclePool === void 0) { maxItemsInRecyclePool = Number.MAX_SAFE_INTEGER; }
10
+ constructor(maxItemsInRecyclePool = Number.MAX_SAFE_INTEGER) {
16
11
  this.disableRecycling = false;
17
12
  this.maxItemsInRecyclePool = maxItemsInRecyclePool;
18
13
  this.recycleKeyPools = new Map();
@@ -34,186 +29,113 @@ var RenderStackManager = /** @class */ (function () {
34
29
  * @param engagedIndices - Collection of indices that are currently visible or engaged
35
30
  * @param dataLength - Total length of the data set
36
31
  */
37
- RenderStackManager.prototype.sync = function (getStableId, getItemType, engagedIndices, dataLength) {
38
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e;
39
- var _this = this;
32
+ sync(getStableId, getItemType, engagedIndices, dataLength) {
40
33
  this.clearRecyclePool();
41
34
  this.unProcessedIndices.clear();
42
35
  // Recycle keys for items that are no longer valid or visible
43
- this.keyMap.forEach(function (keyInfo, key) {
44
- var index = keyInfo.index, stableId = keyInfo.stableId, itemType = keyInfo.itemType;
36
+ this.keyMap.forEach((keyInfo, key) => {
37
+ const { index, stableId, itemType } = keyInfo;
45
38
  if (index >= dataLength) {
46
- _this.recycleKey(key);
39
+ this.recycleKey(key);
47
40
  return;
48
41
  }
49
- if (!_this.disableRecycling) {
50
- _this.unProcessedIndices.add(index);
42
+ if (!this.disableRecycling) {
43
+ this.unProcessedIndices.add(index);
51
44
  }
52
45
  if (!engagedIndices.includes(index)) {
53
- _this.recycleKey(key);
46
+ this.recycleKey(key);
54
47
  return;
55
48
  }
56
- var newStableId = getStableId(index);
57
- var newItemType = getItemType(index);
49
+ const newStableId = getStableId(index);
50
+ const newItemType = getItemType(index);
58
51
  if (stableId !== newStableId || itemType !== newItemType) {
59
- _this.recycleKey(key);
52
+ this.recycleKey(key);
60
53
  }
61
54
  });
62
- try {
63
- // First pass: process items that already have optimized keys
64
- for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
65
- var index = engagedIndices_1_1.value;
66
- if (this.hasOptimizedKey(getStableId(index))) {
67
- this.syncItem(index, getItemType(index), getStableId(index));
68
- }
69
- }
70
- }
71
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
72
- finally {
73
- try {
74
- if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_a = engagedIndices_1.return)) _a.call(engagedIndices_1);
75
- }
76
- finally { if (e_1) throw e_1.error; }
77
- }
78
- try {
79
- // Second pass: process remaining items that need new keys
80
- for (var engagedIndices_2 = tslib_1.__values(engagedIndices), engagedIndices_2_1 = engagedIndices_2.next(); !engagedIndices_2_1.done; engagedIndices_2_1 = engagedIndices_2.next()) {
81
- var index = engagedIndices_2_1.value;
82
- if (!this.hasOptimizedKey(getStableId(index))) {
83
- this.syncItem(index, getItemType(index), getStableId(index));
84
- }
55
+ // First pass: process items that already have optimized keys
56
+ for (const index of engagedIndices) {
57
+ if (this.hasOptimizedKey(getStableId(index))) {
58
+ this.syncItem(index, getItemType(index), getStableId(index));
85
59
  }
86
60
  }
87
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
88
- finally {
89
- try {
90
- if (engagedIndices_2_1 && !engagedIndices_2_1.done && (_b = engagedIndices_2.return)) _b.call(engagedIndices_2);
61
+ // Second pass: process remaining items that need new keys
62
+ for (const index of engagedIndices) {
63
+ if (!this.hasOptimizedKey(getStableId(index))) {
64
+ this.syncItem(index, getItemType(index), getStableId(index));
91
65
  }
92
- finally { if (e_2) throw e_2.error; }
93
66
  }
94
67
  // create indices that are not in the engagedIndices and less than dataLength
95
68
  // select only indices that are not in the engagedIndices
96
- var validIndicesInPool = [];
97
- try {
98
- for (var _f = tslib_1.__values(this.keyMap.values()), _g = _f.next(); !_g.done; _g = _f.next()) {
99
- var keyInfo = _g.value;
100
- var index = keyInfo.index;
101
- if (index < dataLength && !engagedIndices.includes(index)) {
102
- validIndicesInPool.push(index);
103
- }
69
+ const validIndicesInPool = [];
70
+ for (const keyInfo of this.keyMap.values()) {
71
+ const index = keyInfo.index;
72
+ if (index < dataLength && !engagedIndices.includes(index)) {
73
+ validIndicesInPool.push(index);
104
74
  }
105
75
  }
106
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
107
- finally {
108
- try {
109
- if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
110
- }
111
- finally { if (e_3) throw e_3.error; }
112
- }
113
- try {
114
- // First pass: process items that already have optimized keys
115
- for (var validIndicesInPool_1 = tslib_1.__values(validIndicesInPool), validIndicesInPool_1_1 = validIndicesInPool_1.next(); !validIndicesInPool_1_1.done; validIndicesInPool_1_1 = validIndicesInPool_1.next()) {
116
- var index = validIndicesInPool_1_1.value;
117
- if (this.hasOptimizedKey(getStableId(index))) {
118
- this.syncItem(index, getItemType(index), getStableId(index));
119
- }
76
+ // First pass: process items that already have optimized keys
77
+ for (const index of validIndicesInPool) {
78
+ if (this.hasOptimizedKey(getStableId(index))) {
79
+ this.syncItem(index, getItemType(index), getStableId(index));
120
80
  }
121
81
  }
122
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
123
- finally {
124
- try {
125
- if (validIndicesInPool_1_1 && !validIndicesInPool_1_1.done && (_d = validIndicesInPool_1.return)) _d.call(validIndicesInPool_1);
82
+ for (const index of validIndicesInPool) {
83
+ if (!this.hasOptimizedKey(getStableId(index))) {
84
+ this.syncItem(index, getItemType(index), getStableId(index));
126
85
  }
127
- finally { if (e_4) throw e_4.error; }
128
- }
129
- try {
130
- for (var validIndicesInPool_2 = tslib_1.__values(validIndicesInPool), validIndicesInPool_2_1 = validIndicesInPool_2.next(); !validIndicesInPool_2_1.done; validIndicesInPool_2_1 = validIndicesInPool_2.next()) {
131
- var index = validIndicesInPool_2_1.value;
132
- if (!this.hasOptimizedKey(getStableId(index))) {
133
- this.syncItem(index, getItemType(index), getStableId(index));
134
- }
135
- }
136
- }
137
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
138
- finally {
139
- try {
140
- if (validIndicesInPool_2_1 && !validIndicesInPool_2_1.done && (_e = validIndicesInPool_2.return)) _e.call(validIndicesInPool_2);
141
- }
142
- finally { if (e_5) throw e_5.error; }
143
86
  }
144
87
  // Clean up stale items and manage the recycle pool size
145
88
  this.cleanup(getStableId, getItemType, engagedIndices, dataLength);
146
- };
89
+ }
147
90
  /**
148
91
  * Checks if a stable ID already has an assigned key
149
92
  */
150
- RenderStackManager.prototype.hasOptimizedKey = function (stableId) {
93
+ hasOptimizedKey(stableId) {
151
94
  return this.stableIdMap.has(stableId);
152
- };
95
+ }
153
96
  /**
154
97
  * Cleans up stale keys and manages the recycle pool size.
155
98
  * This ensures we don't maintain references to items that are no longer in the dataset,
156
99
  * and limits the number of recycled items to avoid excessive memory usage.
157
100
  */
158
- RenderStackManager.prototype.cleanup = function (getStableId, getItemType, engagedIndices, dataLength) {
159
- var e_6, _a, e_7, _b;
160
- var itemsToDelete = new Array();
161
- try {
162
- // Remove items that are no longer in the dataset
163
- for (var _c = tslib_1.__values(this.keyMap.entries()), _d = _c.next(); !_d.done; _d = _c.next()) {
164
- var _e = tslib_1.__read(_d.value, 2), key = _e[0], keyInfo = _e[1];
165
- var index = keyInfo.index, itemType = keyInfo.itemType, stableId = keyInfo.stableId;
166
- var indexOutOfBounds = index >= dataLength;
167
- var hasStableIdChanged = !indexOutOfBounds && getStableId(index) !== stableId;
168
- if (indexOutOfBounds || hasStableIdChanged) {
169
- var nextIndex = this.unProcessedIndices.values().next().value;
170
- var shouldDeleteKey = true;
171
- if (nextIndex !== undefined) {
172
- var nextItemType = getItemType(nextIndex);
173
- var nextStableId = getStableId(nextIndex);
174
- if (itemType === nextItemType) {
175
- this.syncItem(nextIndex, nextItemType, nextStableId);
176
- shouldDeleteKey = false;
177
- }
178
- }
179
- if (shouldDeleteKey) {
180
- this.deleteKeyFromRecyclePool(itemType, key);
181
- this.stableIdMap.delete(stableId);
182
- itemsToDelete.push(key);
101
+ cleanup(getStableId, getItemType, engagedIndices, dataLength) {
102
+ const itemsToDelete = new Array();
103
+ // Remove items that are no longer in the dataset
104
+ for (const [key, keyInfo] of this.keyMap.entries()) {
105
+ const { index, itemType, stableId } = keyInfo;
106
+ const indexOutOfBounds = index >= dataLength;
107
+ const hasStableIdChanged = !indexOutOfBounds && getStableId(index) !== stableId;
108
+ if (indexOutOfBounds || hasStableIdChanged) {
109
+ const nextIndex = this.unProcessedIndices.values().next().value;
110
+ let shouldDeleteKey = true;
111
+ if (nextIndex !== undefined) {
112
+ const nextItemType = getItemType(nextIndex);
113
+ const nextStableId = getStableId(nextIndex);
114
+ if (itemType === nextItemType) {
115
+ this.syncItem(nextIndex, nextItemType, nextStableId);
116
+ shouldDeleteKey = false;
183
117
  }
184
118
  }
119
+ if (shouldDeleteKey) {
120
+ this.deleteKeyFromRecyclePool(itemType, key);
121
+ this.stableIdMap.delete(stableId);
122
+ itemsToDelete.push(key);
123
+ }
185
124
  }
186
125
  }
187
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
188
- finally {
189
- try {
190
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
191
- }
192
- finally { if (e_6) throw e_6.error; }
193
- }
194
- try {
195
- for (var itemsToDelete_1 = tslib_1.__values(itemsToDelete), itemsToDelete_1_1 = itemsToDelete_1.next(); !itemsToDelete_1_1.done; itemsToDelete_1_1 = itemsToDelete_1.next()) {
196
- var key = itemsToDelete_1_1.value;
197
- this.keyMap.delete(key);
198
- }
199
- }
200
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
201
- finally {
202
- try {
203
- if (itemsToDelete_1_1 && !itemsToDelete_1_1.done && (_b = itemsToDelete_1.return)) _b.call(itemsToDelete_1);
204
- }
205
- finally { if (e_7) throw e_7.error; }
126
+ for (const key of itemsToDelete) {
127
+ this.keyMap.delete(key);
206
128
  }
207
129
  // Limit the size of the recycle pool
208
- var itemsRenderedForRecycling = this.keyMap.size - engagedIndices.length;
130
+ const itemsRenderedForRecycling = this.keyMap.size - engagedIndices.length;
209
131
  if (itemsRenderedForRecycling > this.maxItemsInRecyclePool) {
210
- var deleteCount = itemsRenderedForRecycling - this.maxItemsInRecyclePool;
211
- var deleted = 0;
132
+ const deleteCount = itemsRenderedForRecycling - this.maxItemsInRecyclePool;
133
+ let deleted = 0;
212
134
  // Use a for loop so we can break early once we've deleted enough items
213
- var entries = Array.from(this.keyMap.entries()).reverse();
214
- for (var i = 0; i < entries.length && deleted < deleteCount; i++) {
215
- var _f = tslib_1.__read(entries[i], 2), key = _f[0], keyInfo = _f[1];
216
- var index = keyInfo.index, itemType = keyInfo.itemType, stableId = keyInfo.stableId;
135
+ const entries = Array.from(this.keyMap.entries()).reverse();
136
+ for (let i = 0; i < entries.length && deleted < deleteCount; i++) {
137
+ const [key, keyInfo] = entries[i];
138
+ const { index, itemType, stableId } = keyInfo;
217
139
  if (!engagedIndices.includes(index)) {
218
140
  this.deleteKeyFromRecyclePool(itemType, key);
219
141
  this.stableIdMap.delete(stableId);
@@ -222,42 +144,42 @@ var RenderStackManager = /** @class */ (function () {
222
144
  }
223
145
  }
224
146
  }
225
- };
147
+ }
226
148
  /**
227
149
  * Places a key back into its type-specific recycle pool for future reuse
228
150
  */
229
- RenderStackManager.prototype.recycleKey = function (key) {
151
+ recycleKey(key) {
230
152
  if (this.disableRecycling) {
231
153
  return;
232
154
  }
233
- var keyInfo = this.keyMap.get(key);
155
+ const keyInfo = this.keyMap.get(key);
234
156
  if (!keyInfo) {
235
157
  return;
236
158
  }
237
- var itemType = keyInfo.itemType;
159
+ const { itemType } = keyInfo;
238
160
  // Add key back to its type's pool
239
- var pool = this.getRecyclePoolForType(itemType);
161
+ const pool = this.getRecyclePoolForType(itemType);
240
162
  pool.add(key);
241
- };
163
+ }
242
164
  /**
243
165
  * Returns the current render stack containing all active keys and their metadata
244
166
  */
245
- RenderStackManager.prototype.getRenderStack = function () {
167
+ getRenderStack() {
246
168
  return this.keyMap;
247
- };
169
+ }
248
170
  /**
249
171
  * Syncs an individual item by assigning it an appropriate key.
250
172
  * Will use an existing key if available, or generate a new one.
251
173
  *
252
174
  * @returns The key assigned to the item
253
175
  */
254
- RenderStackManager.prototype.syncItem = function (index, itemType, stableId) {
176
+ syncItem(index, itemType, stableId) {
255
177
  // Try to reuse an existing key, or get one from the recycle pool, or generate a new one
256
- var newKey = this.stableIdMap.get(stableId) ||
178
+ const newKey = this.stableIdMap.get(stableId) ||
257
179
  this.getKeyFromRecyclePool(itemType) ||
258
180
  this.generateKey();
259
181
  this.unProcessedIndices.delete(index);
260
- var keyInfo = this.keyMap.get(newKey);
182
+ const keyInfo = this.keyMap.get(newKey);
261
183
  if (keyInfo) {
262
184
  // Update an existing key's metadata
263
185
  this.deleteKeyFromRecyclePool(itemType, newKey);
@@ -270,74 +192,61 @@ var RenderStackManager = /** @class */ (function () {
270
192
  else {
271
193
  // Create a new entry in the key map
272
194
  this.keyMap.set(newKey, {
273
- itemType: itemType,
274
- index: index,
275
- stableId: stableId,
195
+ itemType,
196
+ index,
197
+ stableId,
276
198
  });
277
199
  }
278
200
  this.stableIdMap.set(stableId, newKey);
279
201
  return newKey;
280
- };
202
+ }
281
203
  /**
282
204
  * Clears all recycled keys from the pool, effectively resetting the recycling system.
283
205
  * This operation does not affect currently active keys.
284
206
  */
285
- RenderStackManager.prototype.clearRecyclePool = function () {
286
- var e_8, _a;
287
- try {
288
- // iterate over all pools and clear them
289
- for (var _b = tslib_1.__values(this.recycleKeyPools.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
290
- var pool = _c.value;
291
- pool.clear();
292
- }
207
+ clearRecyclePool() {
208
+ // iterate over all pools and clear them
209
+ for (const pool of this.recycleKeyPools.values()) {
210
+ pool.clear();
293
211
  }
294
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
295
- finally {
296
- try {
297
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
298
- }
299
- finally { if (e_8) throw e_8.error; }
300
- }
301
- };
212
+ }
302
213
  /**
303
214
  * Generates a unique sequential key using an internal counter.
304
215
  * @returns A unique key as a string
305
216
  */
306
- RenderStackManager.prototype.generateKey = function () {
217
+ generateKey() {
307
218
  return (this.keyCounter++).toString();
308
- };
219
+ }
309
220
  /**
310
221
  * Removes a specific key from its type's recycle pool
311
222
  */
312
- RenderStackManager.prototype.deleteKeyFromRecyclePool = function (itemType, key) {
223
+ deleteKeyFromRecyclePool(itemType, key) {
313
224
  var _a;
314
225
  (_a = this.recycleKeyPools.get(itemType)) === null || _a === void 0 ? void 0 : _a.delete(key);
315
- };
226
+ }
316
227
  /**
317
228
  * Gets or creates a recycle pool for a specific item type
318
229
  */
319
- RenderStackManager.prototype.getRecyclePoolForType = function (itemType) {
320
- var pool = this.recycleKeyPools.get(itemType);
230
+ getRecyclePoolForType(itemType) {
231
+ let pool = this.recycleKeyPools.get(itemType);
321
232
  if (!pool) {
322
233
  pool = new Set();
323
234
  this.recycleKeyPools.set(itemType, pool);
324
235
  }
325
236
  return pool;
326
- };
237
+ }
327
238
  /**
328
239
  * Retrieves and removes a key from the type's recycle pool
329
240
  * @returns A recycled key or undefined if none available
330
241
  */
331
- RenderStackManager.prototype.getKeyFromRecyclePool = function (itemType) {
332
- var pool = this.getRecyclePoolForType(itemType);
242
+ getKeyFromRecyclePool(itemType) {
243
+ const pool = this.getRecyclePoolForType(itemType);
333
244
  if (pool.size > 0) {
334
- var key = pool.values().next().value;
245
+ const key = pool.values().next().value;
335
246
  pool.delete(key);
336
247
  return key;
337
248
  }
338
249
  return undefined;
339
- };
340
- return RenderStackManager;
341
- }());
342
- exports.RenderStackManager = RenderStackManager;
250
+ }
251
+ }
343
252
  //# sourceMappingURL=RenderStackManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderStackManager.js","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderStackManager.js","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,41 @@
1
- "use strict";
2
1
  /**
3
2
  * ViewHolder is a core component in FlashList that manages individual item rendering and layout.
4
3
  * It handles the rendering of list items, separators, and manages layout updates for each item.
5
4
  * The component is memoized to prevent unnecessary re-renders and includes layout comparison logic.
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ViewHolder = void 0;
9
- var tslib_1 = require("tslib");
10
- var react_1 = tslib_1.__importStar(require("react"));
11
- var CompatView_1 = require("./components/CompatView");
6
+ import React, { useCallback, useLayoutEffect, useMemo, useRef, } from "react";
7
+ import { CompatView } from "./components/CompatView";
12
8
  /**
13
9
  * Internal ViewHolder component that handles the actual rendering of list items
14
10
  * @template TItem - The type of item being rendered in the list
15
11
  */
16
- var ViewHolderInternal = function (props) {
12
+ const ViewHolderInternal = (props) => {
17
13
  // create ref for View
18
- var viewRef = (0, react_1.useRef)(null);
19
- var index = props.index, refHolder = props.refHolder, layout = props.layout, onSizeChanged = props.onSizeChanged, renderItem = props.renderItem, extraData = props.extraData, item = props.item, target = props.target, CellRendererComponent = props.CellRendererComponent, ItemSeparatorComponent = props.ItemSeparatorComponent, trailingItem = props.trailingItem, horizontal = props.horizontal;
20
- (0, react_1.useLayoutEffect)(function () {
14
+ const viewRef = useRef(null);
15
+ const { index, refHolder, layout, onSizeChanged, renderItem, extraData, item, target, CellRendererComponent, ItemSeparatorComponent, trailingItem, horizontal, } = props;
16
+ useLayoutEffect(() => {
21
17
  refHolder.set(index, viewRef);
22
- return function () {
18
+ return () => {
23
19
  if (refHolder.get(index) === viewRef) {
24
20
  refHolder.delete(index);
25
21
  }
26
22
  };
27
23
  }, [index, refHolder]);
28
- var onLayout = (0, react_1.useCallback)(function (event) {
24
+ const onLayout = useCallback((event) => {
29
25
  onSizeChanged === null || onSizeChanged === void 0 ? void 0 : onSizeChanged(index, event.nativeEvent.layout);
30
26
  }, [index, onSizeChanged]);
31
- var separator = (0, react_1.useMemo)(function () {
32
- return ItemSeparatorComponent && trailingItem !== undefined ? (react_1.default.createElement(ItemSeparatorComponent, { leadingItem: item, trailingItem: trailingItem })) : null;
27
+ const separator = useMemo(() => {
28
+ return ItemSeparatorComponent && trailingItem !== undefined ? (React.createElement(ItemSeparatorComponent, { leadingItem: item, trailingItem: trailingItem })) : null;
33
29
  }, [ItemSeparatorComponent, item, trailingItem]);
34
30
  // console.log("ViewHolder re-render", index);
35
- var children = (0, react_1.useMemo)(function () {
31
+ const children = useMemo(() => {
36
32
  var _a;
37
- return (_a = renderItem === null || renderItem === void 0 ? void 0 : renderItem({ item: item, index: index, extraData: extraData, target: target })) !== null && _a !== void 0 ? _a : null;
33
+ return (_a = renderItem === null || renderItem === void 0 ? void 0 : renderItem({ item, index, extraData, target })) !== null && _a !== void 0 ? _a : null;
38
34
  // TODO: Test more thoroughly
39
35
  // We don't really to re-render the children when the index changes
40
36
  // eslint-disable-next-line react-hooks/exhaustive-deps
41
37
  }, [item, extraData, target, renderItem]);
42
- var style = {
38
+ const style = {
43
39
  flexDirection: horizontal ? "row" : "column",
44
40
  position: target === "StickyHeader" ? "relative" : "absolute",
45
41
  width: layout.enforcedWidth ? layout.width : undefined,
@@ -52,8 +48,8 @@ var ViewHolderInternal = function (props) {
52
48
  top: layout.y,
53
49
  };
54
50
  // TODO: Fix this type issue
55
- var CompatContainer = (CellRendererComponent !== null && CellRendererComponent !== void 0 ? CellRendererComponent : CompatView_1.CompatView);
56
- return (react_1.default.createElement(CompatContainer, { ref: viewRef, onLayout: onLayout, style: style, index: index },
51
+ const CompatContainer = (CellRendererComponent !== null && CellRendererComponent !== void 0 ? CellRendererComponent : CompatView);
52
+ return (React.createElement(CompatContainer, { ref: viewRef, onLayout: onLayout, style: style, index: index },
57
53
  children,
58
54
  separator));
59
55
  };
@@ -61,7 +57,7 @@ var ViewHolderInternal = function (props) {
61
57
  * Memoized ViewHolder component that prevents unnecessary re-renders by comparing props
62
58
  * @template TItem - The type of item being rendered in the list
63
59
  */
64
- exports.ViewHolder = react_1.default.memo(ViewHolderInternal, function (prevProps, nextProps) {
60
+ export const ViewHolder = React.memo(ViewHolderInternal, (prevProps, nextProps) => {
65
61
  // compare all props and spread layout
66
62
  return (prevProps.index === nextProps.index &&
67
63
  areLayoutsEqual(prevProps.layout, nextProps.layout) &&
@@ -1 +1 @@
1
- {"version":3,"file":"ViewHolder.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewHolder.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"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"}