@shopify/flash-list 2.0.0-alpha.10 → 2.0.0-alpha.11
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.
- package/README.md +6 -2
- package/dist/AnimatedFlashList.d.ts.map +1 -1
- package/dist/AnimatedFlashList.js +3 -3
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.d.ts +9 -0
- package/dist/FlashList.d.ts.map +1 -1
- package/dist/FlashList.js +20 -0
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +13 -6
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.d.ts +295 -0
- package/dist/FlashListRef.d.ts.map +1 -0
- package/dist/FlashListRef.js +3 -0
- package/dist/FlashListRef.js.map +1 -0
- package/dist/__tests__/RecyclerView.test.js +62 -27
- package/dist/__tests__/RecyclerView.test.js.map +1 -1
- package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
- package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
- package/dist/__tests__/RenderStackManager.test.js +405 -0
- package/dist/__tests__/RenderStackManager.test.js.map +1 -0
- package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +8 -7
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/recyclerview/RecyclerView.d.ts +2 -1
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +33 -14
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.d.ts +11 -7
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +57 -102
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RenderStackManager.d.ts +85 -0
- package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
- package/dist/recyclerview/RenderStackManager.js +261 -0
- package/dist/recyclerview/RenderStackManager.js.map +1 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolder.js +5 -3
- package/dist/recyclerview/ViewHolder.js.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.js +19 -3
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +44 -17
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
- package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.js +4 -6
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +93 -71
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +6 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +2 -2
- package/dist/recyclerview/layout-managers/LayoutManager.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/jestSetup.js +30 -11
- package/package.json +1 -1
- package/src/AnimatedFlashList.ts +3 -2
- package/src/FlashList.tsx +24 -0
- package/src/FlashListProps.ts +16 -7
- package/src/FlashListRef.ts +309 -0
- package/src/__tests__/RecyclerView.test.tsx +83 -29
- package/src/__tests__/RenderStackManager.test.ts +488 -0
- package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
- package/src/benchmark/useFlatListBenchmark.ts +2 -2
- package/src/index.ts +1 -0
- package/src/recyclerview/RecyclerView.tsx +38 -23
- package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
- package/src/recyclerview/RecyclerViewManager.ts +73 -88
- package/src/recyclerview/RenderStackManager.ts +265 -0
- package/src/recyclerview/ViewHolder.tsx +5 -3
- package/src/recyclerview/ViewHolderCollection.tsx +29 -8
- package/src/recyclerview/components/ScrollAnchor.tsx +9 -5
- package/src/recyclerview/components/StickyHeaders.tsx +57 -19
- package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
- package/src/recyclerview/hooks/useOnLoad.ts +4 -6
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +104 -125
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +6 -0
- package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
- package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
- package/src/recyclerview/layout-managers/LayoutManager.ts +2 -2
- package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
- package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
- package/dist/__tests__/RecycleKeyManager.test.js +0 -210
- package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
- package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
- package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
- package/dist/recyclerview/RecycleKeyManager.js +0 -135
- package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
- package/src/__tests__/RecycleKeyManager.test.ts +0 -254
- package/src/recyclerview/RecycleKeyManager.ts +0 -185
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderStackManager = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
/**
|
|
6
|
+
* Manages the recycling of rendered items in a virtualized list.
|
|
7
|
+
* This class handles tracking, recycling, and reusing item keys to optimize
|
|
8
|
+
* rendering performance by minimizing creation/destruction of components.
|
|
9
|
+
*/
|
|
10
|
+
var RenderStackManager = /** @class */ (function () {
|
|
11
|
+
/**
|
|
12
|
+
* @param maxItemsInRecyclePool - Maximum number of items that can be in the recycle pool
|
|
13
|
+
*/
|
|
14
|
+
function RenderStackManager(maxItemsInRecyclePool) {
|
|
15
|
+
if (maxItemsInRecyclePool === void 0) { maxItemsInRecyclePool = Number.MAX_SAFE_INTEGER; }
|
|
16
|
+
this.disableRecycling = false;
|
|
17
|
+
this.maxItemsInRecyclePool = maxItemsInRecyclePool;
|
|
18
|
+
this.recycleKeyPools = new Map();
|
|
19
|
+
this.keyMap = new Map();
|
|
20
|
+
this.stableIdMap = new Map();
|
|
21
|
+
this.keyCounter = 0;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Synchronizes the render stack with the current state of data.
|
|
25
|
+
* This method is the core orchestrator that:
|
|
26
|
+
* 1. Recycles keys for items that are no longer valid
|
|
27
|
+
* 2. Updates existing keys for items that remain visible
|
|
28
|
+
* 3. Assigns new keys for newly visible items
|
|
29
|
+
* 4. Cleans up excess items to maintain the recycling pool size
|
|
30
|
+
*
|
|
31
|
+
* @param getStableId - Function to get a stable identifier for an item at a specific index
|
|
32
|
+
* @param getItemType - Function to get the type of an item at a specific index
|
|
33
|
+
* @param engagedIndices - Collection of indices that are currently visible or engaged
|
|
34
|
+
* @param dataLength - Total length of the data set
|
|
35
|
+
*/
|
|
36
|
+
RenderStackManager.prototype.sync = function (getStableId, getItemType, engagedIndices, dataLength) {
|
|
37
|
+
var e_1, _a, e_2, _b;
|
|
38
|
+
var _this = this;
|
|
39
|
+
if (this.disableRecycling) {
|
|
40
|
+
this.clearRecyclePool();
|
|
41
|
+
}
|
|
42
|
+
// 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;
|
|
45
|
+
if (index >= dataLength) {
|
|
46
|
+
_this.recycleKey(key);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
var newStableId = getStableId(index);
|
|
50
|
+
var newItemType = getItemType(index);
|
|
51
|
+
if (stableId !== newStableId || itemType !== newItemType) {
|
|
52
|
+
_this.recycleKey(key);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!engagedIndices.includes(index)) {
|
|
56
|
+
_this.recycleKey(key);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
try {
|
|
60
|
+
// First pass: process items that already have optimized keys
|
|
61
|
+
for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
|
|
62
|
+
var index = engagedIndices_1_1.value;
|
|
63
|
+
if (this.hasOptimizedKey(getStableId(index))) {
|
|
64
|
+
this.syncItem(index, getItemType(index), getStableId(index));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
69
|
+
finally {
|
|
70
|
+
try {
|
|
71
|
+
if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_a = engagedIndices_1.return)) _a.call(engagedIndices_1);
|
|
72
|
+
}
|
|
73
|
+
finally { if (e_1) throw e_1.error; }
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
// Second pass: process remaining items that need new keys
|
|
77
|
+
for (var engagedIndices_2 = tslib_1.__values(engagedIndices), engagedIndices_2_1 = engagedIndices_2.next(); !engagedIndices_2_1.done; engagedIndices_2_1 = engagedIndices_2.next()) {
|
|
78
|
+
var index = engagedIndices_2_1.value;
|
|
79
|
+
if (!this.hasOptimizedKey(getStableId(index))) {
|
|
80
|
+
this.syncItem(index, getItemType(index), getStableId(index));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
85
|
+
finally {
|
|
86
|
+
try {
|
|
87
|
+
if (engagedIndices_2_1 && !engagedIndices_2_1.done && (_b = engagedIndices_2.return)) _b.call(engagedIndices_2);
|
|
88
|
+
}
|
|
89
|
+
finally { if (e_2) throw e_2.error; }
|
|
90
|
+
}
|
|
91
|
+
// Clean up stale items and manage the recycle pool size
|
|
92
|
+
this.cleanup(getStableId, engagedIndices, dataLength);
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Checks if a stable ID already has an assigned key
|
|
96
|
+
*/
|
|
97
|
+
RenderStackManager.prototype.hasOptimizedKey = function (stableId) {
|
|
98
|
+
return this.stableIdMap.has(stableId);
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Cleans up stale keys and manages the recycle pool size.
|
|
102
|
+
* This ensures we don't maintain references to items that are no longer in the dataset,
|
|
103
|
+
* and limits the number of recycled items to avoid excessive memory usage.
|
|
104
|
+
*/
|
|
105
|
+
RenderStackManager.prototype.cleanup = function (getStableId, engagedIndices, dataLength) {
|
|
106
|
+
var e_3, _a, e_4, _b;
|
|
107
|
+
var itemsToDelete = new Array();
|
|
108
|
+
try {
|
|
109
|
+
// Remove items that are no longer in the dataset
|
|
110
|
+
for (var _c = tslib_1.__values(this.keyMap.entries()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
111
|
+
var _e = tslib_1.__read(_d.value, 2), key = _e[0], keyInfo = _e[1];
|
|
112
|
+
var index = keyInfo.index, itemType = keyInfo.itemType, stableId = keyInfo.stableId;
|
|
113
|
+
if (index >= dataLength || getStableId(index) !== stableId) {
|
|
114
|
+
this.deleteKeyFromRecyclePool(itemType, key);
|
|
115
|
+
this.stableIdMap.delete(stableId);
|
|
116
|
+
itemsToDelete.push(key);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
121
|
+
finally {
|
|
122
|
+
try {
|
|
123
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
124
|
+
}
|
|
125
|
+
finally { if (e_3) throw e_3.error; }
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
for (var itemsToDelete_1 = tslib_1.__values(itemsToDelete), itemsToDelete_1_1 = itemsToDelete_1.next(); !itemsToDelete_1_1.done; itemsToDelete_1_1 = itemsToDelete_1.next()) {
|
|
129
|
+
var key = itemsToDelete_1_1.value;
|
|
130
|
+
this.keyMap.delete(key);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
134
|
+
finally {
|
|
135
|
+
try {
|
|
136
|
+
if (itemsToDelete_1_1 && !itemsToDelete_1_1.done && (_b = itemsToDelete_1.return)) _b.call(itemsToDelete_1);
|
|
137
|
+
}
|
|
138
|
+
finally { if (e_4) throw e_4.error; }
|
|
139
|
+
}
|
|
140
|
+
// Limit the size of the recycle pool
|
|
141
|
+
var itemsRenderedForRecycling = this.keyMap.size - engagedIndices.length;
|
|
142
|
+
if (itemsRenderedForRecycling > this.maxItemsInRecyclePool) {
|
|
143
|
+
var deleteCount = itemsRenderedForRecycling - this.maxItemsInRecyclePool;
|
|
144
|
+
var deleted = 0;
|
|
145
|
+
// Use a for loop so we can break early once we've deleted enough items
|
|
146
|
+
var entries = Array.from(this.keyMap.entries()).reverse();
|
|
147
|
+
for (var i = 0; i < entries.length && deleted < deleteCount; i++) {
|
|
148
|
+
var _f = tslib_1.__read(entries[i], 2), key = _f[0], keyInfo = _f[1];
|
|
149
|
+
var index = keyInfo.index, itemType = keyInfo.itemType, stableId = keyInfo.stableId;
|
|
150
|
+
if (!engagedIndices.includes(index)) {
|
|
151
|
+
this.deleteKeyFromRecyclePool(itemType, key);
|
|
152
|
+
this.stableIdMap.delete(stableId);
|
|
153
|
+
this.keyMap.delete(key);
|
|
154
|
+
deleted++;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Places a key back into its type-specific recycle pool for future reuse
|
|
161
|
+
*/
|
|
162
|
+
RenderStackManager.prototype.recycleKey = function (key) {
|
|
163
|
+
if (this.disableRecycling) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
var keyInfo = this.keyMap.get(key);
|
|
167
|
+
if (!keyInfo) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
var itemType = keyInfo.itemType;
|
|
171
|
+
// Add key back to its type's pool
|
|
172
|
+
var pool = this.getRecyclePoolForType(itemType);
|
|
173
|
+
pool.add(key);
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Returns the current render stack containing all active keys and their metadata
|
|
177
|
+
*/
|
|
178
|
+
RenderStackManager.prototype.getRenderStack = function () {
|
|
179
|
+
return this.keyMap;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Syncs an individual item by assigning it an appropriate key.
|
|
183
|
+
* Will use an existing key if available, or generate a new one.
|
|
184
|
+
*
|
|
185
|
+
* @returns The key assigned to the item
|
|
186
|
+
*/
|
|
187
|
+
RenderStackManager.prototype.syncItem = function (index, itemType, stableId) {
|
|
188
|
+
// Try to reuse an existing key, or get one from the recycle pool, or generate a new one
|
|
189
|
+
var newKey = this.stableIdMap.get(stableId) ||
|
|
190
|
+
this.getKeyFromRecyclePool(itemType) ||
|
|
191
|
+
this.generateKey();
|
|
192
|
+
var keyInfo = this.keyMap.get(newKey);
|
|
193
|
+
if (keyInfo) {
|
|
194
|
+
// Update an existing key's metadata
|
|
195
|
+
this.deleteKeyFromRecyclePool(itemType, newKey);
|
|
196
|
+
this.deleteKeyFromRecyclePool(keyInfo.itemType, newKey);
|
|
197
|
+
this.stableIdMap.delete(keyInfo.stableId);
|
|
198
|
+
keyInfo.index = index;
|
|
199
|
+
keyInfo.itemType = itemType;
|
|
200
|
+
keyInfo.stableId = stableId;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// Create a new entry in the key map
|
|
204
|
+
this.keyMap.set(newKey, {
|
|
205
|
+
itemType: itemType,
|
|
206
|
+
index: index,
|
|
207
|
+
stableId: stableId,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
this.stableIdMap.set(stableId, newKey);
|
|
211
|
+
return newKey;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Clears all recycled keys from the pool, effectively resetting the recycling system.
|
|
215
|
+
* This operation does not affect currently active keys.
|
|
216
|
+
*/
|
|
217
|
+
RenderStackManager.prototype.clearRecyclePool = function () {
|
|
218
|
+
this.recycleKeyPools.clear();
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Generates a unique sequential key using an internal counter.
|
|
222
|
+
* @returns A unique key as a string
|
|
223
|
+
*/
|
|
224
|
+
RenderStackManager.prototype.generateKey = function () {
|
|
225
|
+
return (this.keyCounter++).toString();
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Removes a specific key from its type's recycle pool
|
|
229
|
+
*/
|
|
230
|
+
RenderStackManager.prototype.deleteKeyFromRecyclePool = function (itemType, key) {
|
|
231
|
+
var _a;
|
|
232
|
+
(_a = this.recycleKeyPools.get(itemType)) === null || _a === void 0 ? void 0 : _a.delete(key);
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Gets or creates a recycle pool for a specific item type
|
|
236
|
+
*/
|
|
237
|
+
RenderStackManager.prototype.getRecyclePoolForType = function (itemType) {
|
|
238
|
+
var pool = this.recycleKeyPools.get(itemType);
|
|
239
|
+
if (!pool) {
|
|
240
|
+
pool = new Set();
|
|
241
|
+
this.recycleKeyPools.set(itemType, pool);
|
|
242
|
+
}
|
|
243
|
+
return pool;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Retrieves and removes a key from the type's recycle pool
|
|
247
|
+
* @returns A recycled key or undefined if none available
|
|
248
|
+
*/
|
|
249
|
+
RenderStackManager.prototype.getKeyFromRecyclePool = function (itemType) {
|
|
250
|
+
var pool = this.getRecyclePoolForType(itemType);
|
|
251
|
+
if (pool.size > 0) {
|
|
252
|
+
var key = pool.values().next().value;
|
|
253
|
+
pool.delete(key);
|
|
254
|
+
return key;
|
|
255
|
+
}
|
|
256
|
+
return undefined;
|
|
257
|
+
};
|
|
258
|
+
return RenderStackManager;
|
|
259
|
+
}());
|
|
260
|
+
exports.RenderStackManager = RenderStackManager;
|
|
261
|
+
//# sourceMappingURL=RenderStackManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderStackManager.js","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHolder.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,QAAQ,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,uEAAuE;IACvE,SAAS,EAAE,GAAG,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,YAAY,CAAC;IACrB,0CAA0C;IAC1C,IAAI,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,0CAA0C;IAC1C,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,kDAAkD;IAClD,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACvE,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACzE,iDAAiD;IACjD,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,4CAA4C;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5D;
|
|
1
|
+
{"version":3,"file":"ViewHolder.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,QAAQ,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,uEAAuE;IACvE,SAAS,EAAE,GAAG,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,YAAY,CAAC;IACrB,0CAA0C;IAC1C,IAAI,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,0CAA0C;IAC1C,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,kDAAkD;IAClD,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACvE,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACzE,iDAAiD;IACjD,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,4CAA4C;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5D;AAqFD;;;GAGG;AACH,eAAO,MAAM,UAAU,8BAnFK,KAAK,SAAU,eAAe,CAAC,KAAK,CAAC,wBAsGhE,CAAC"}
|
|
@@ -29,13 +29,16 @@ var ViewHolderInternal = function (props) {
|
|
|
29
29
|
onSizeChanged === null || onSizeChanged === void 0 ? void 0 : onSizeChanged(index, event.nativeEvent.layout);
|
|
30
30
|
}, [index, onSizeChanged]);
|
|
31
31
|
var separator = (0, react_1.useMemo)(function () {
|
|
32
|
-
return ItemSeparatorComponent ? (react_1.default.createElement(ItemSeparatorComponent, { leadingItem: item, trailingItem: trailingItem })) : null;
|
|
32
|
+
return ItemSeparatorComponent && trailingItem !== undefined ? (react_1.default.createElement(ItemSeparatorComponent, { leadingItem: item, trailingItem: trailingItem })) : null;
|
|
33
33
|
}, [ItemSeparatorComponent, item, trailingItem]);
|
|
34
34
|
// console.log("ViewHolder re-render", index);
|
|
35
35
|
var children = (0, react_1.useMemo)(function () {
|
|
36
36
|
var _a;
|
|
37
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;
|
|
38
|
-
|
|
38
|
+
// TODO: Test more thoroughly
|
|
39
|
+
// We don't really to re-render the children when the index changes
|
|
40
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
|
+
}, [item, extraData, target, renderItem]);
|
|
39
42
|
var style = {
|
|
40
43
|
flexDirection: horizontal ? "row" : "column",
|
|
41
44
|
position: target === "StickyHeader" ? "relative" : "absolute",
|
|
@@ -47,7 +50,6 @@ var ViewHolderInternal = function (props) {
|
|
|
47
50
|
maxWidth: layout.maxWidth,
|
|
48
51
|
left: layout.x,
|
|
49
52
|
top: layout.y,
|
|
50
|
-
zIndex: 0,
|
|
51
53
|
};
|
|
52
54
|
// TODO: Fix this type issue
|
|
53
55
|
var CompatContainer = (CellRendererComponent !== null && CellRendererComponent !== void 0 ? CellRendererComponent : CompatView_1.CompatView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHolder.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAGH,qDAMe;AAKf,sDAAqD;AAiCrD;;;GAGG;AACH,IAAM,kBAAkB,GAAG,UAAS,KAA6B;IAC/D,sBAAsB;IACtB,IAAM,OAAO,GAAG,IAAA,cAAM,EAAa,IAAI,CAAC,CAAC;IAEvC,IAAA,KAAK,GAYH,KAAK,MAZF,EACL,SAAS,GAWP,KAAK,UAXE,EACT,MAAM,GAUJ,KAAK,OAVD,EACN,aAAa,GASX,KAAK,cATM,EACb,UAAU,GAQR,KAAK,WARG,EACV,SAAS,GAOP,KAAK,UAPE,EACT,IAAI,GAMF,KAAK,KANH,EACJ,MAAM,GAKJ,KAAK,OALD,EACN,qBAAqB,GAInB,KAAK,sBAJc,EACrB,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,YAAY,GAEV,KAAK,aAFK,EACZ,UAAU,GACR,KAAK,WADG,CACF;IAEV,IAAA,uBAAe,EAAC;QACd,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO;YACL,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC;gBACrC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvB,IAAM,QAAQ,GAAG,IAAA,mBAAW,EAC1B,UAAC,KAAwB;QACvB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,KAAK,EAAE,aAAa,CAAC,CACvB,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,eAAO,EAAC;QACxB,OAAO,sBAAsB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ViewHolder.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,9 @@ export interface ViewHolderCollectionProps<TItem> {
|
|
|
15
15
|
/** The data array to be rendered */
|
|
16
16
|
data: FlashListProps<TItem>["data"];
|
|
17
17
|
/** Map of indices to React keys for each rendered item */
|
|
18
|
-
renderStack: Map<
|
|
18
|
+
renderStack: Map<string, {
|
|
19
|
+
index: number;
|
|
20
|
+
}>;
|
|
19
21
|
/** Function to get layout information for a specific index */
|
|
20
22
|
getLayout: (index: number) => RVLayout;
|
|
21
23
|
/** Ref to control layout updates from parent components */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHolderCollection.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAIxE;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,0DAA0D;IAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewHolderCollection.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAIxE;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,0DAA0D;IAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8DAA8D;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACvC,2DAA2D;IAC3D,uBAAuB,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC5D,qDAAqD;IACrD,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IAC/C,4CAA4C;IAC5C,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;IACvD,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,uEAAuE;IACvE,SAAS,EAAE,GAAG,CAAC;IACf,wDAAwD;IACxD,uBAAuB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACvD,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,kDAAkD;IAClD,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACvE,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACzE,iDAAiD;IACjD,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,EACxC,OAAO,yBAAyB,CAAC,KAAK,CAAC,sBAyHxC,CAAC"}
|
|
@@ -32,16 +32,22 @@ var ViewHolderCollection = function (props) {
|
|
|
32
32
|
// );
|
|
33
33
|
recyclerViewContext === null || recyclerViewContext === void 0 ? void 0 : recyclerViewContext.layout();
|
|
34
34
|
}
|
|
35
|
+
// we need to run this callback on when fixedContainerSize changes
|
|
36
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
37
|
}, [fixedContainerSize]);
|
|
36
38
|
(0, react_1.useLayoutEffect)(function () {
|
|
37
39
|
if (renderId > 0) {
|
|
38
40
|
onCommitLayoutEffect === null || onCommitLayoutEffect === void 0 ? void 0 : onCommitLayoutEffect();
|
|
39
41
|
}
|
|
42
|
+
// we need to run this callback on when renderId changes
|
|
43
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
44
|
}, [renderId]);
|
|
41
45
|
(0, react_1.useEffect)(function () {
|
|
42
46
|
if (renderId > 0) {
|
|
43
47
|
onCommitEffect === null || onCommitEffect === void 0 ? void 0 : onCommitEffect();
|
|
44
48
|
}
|
|
49
|
+
// we need to run this callback on when renderId changes
|
|
50
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
51
|
}, [renderId]);
|
|
46
52
|
// Expose forceUpdate through ref
|
|
47
53
|
(0, react_1.useImperativeHandle)(viewHolderCollectionRef, function () { return ({
|
|
@@ -49,20 +55,30 @@ var ViewHolderCollection = function (props) {
|
|
|
49
55
|
// This will trigger a re-render of the component
|
|
50
56
|
setRenderId(function (prev) { return prev + 1; });
|
|
51
57
|
},
|
|
52
|
-
}); });
|
|
58
|
+
}); }, [setRenderId]);
|
|
53
59
|
var hasData = data && data.length > 0;
|
|
54
60
|
var containerStyle = {
|
|
55
61
|
width: horizontal ? containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.width : undefined,
|
|
56
62
|
height: containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.height,
|
|
57
63
|
};
|
|
64
|
+
// sort by index and log
|
|
65
|
+
// const sortedRenderStack = Array.from(renderStack.entries()).sort(
|
|
66
|
+
// ([, a], [, b]) => a.index - b.index
|
|
67
|
+
// );
|
|
68
|
+
// console.log(
|
|
69
|
+
// "sortedRenderStack",
|
|
70
|
+
// sortedRenderStack.map(([reactKey, { index }]) => {
|
|
71
|
+
// return `${index} => ${reactKey}`;
|
|
72
|
+
// })
|
|
73
|
+
// );
|
|
58
74
|
return (react_1.default.createElement(CompatView_1.CompatView
|
|
59
75
|
// TODO: Take care of web scroll bar here
|
|
60
76
|
, {
|
|
61
77
|
// TODO: Take care of web scroll bar here
|
|
62
78
|
style: hasData && containerStyle }, containerLayout &&
|
|
63
79
|
hasData &&
|
|
64
|
-
Array.from(renderStack, function (_a) {
|
|
65
|
-
var _b = tslib_1.__read(_a, 2),
|
|
80
|
+
Array.from(renderStack.entries(), function (_a) {
|
|
81
|
+
var _b = tslib_1.__read(_a, 2), reactKey = _b[0], index = _b[1].index;
|
|
66
82
|
var item = data[index];
|
|
67
83
|
var trailingItem = ItemSeparatorComponent
|
|
68
84
|
? data[index + 1]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHolderCollection.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,qDAA+E;AAI/E,2CAA2D;AAE3D,sDAAqD;AACrD,6EAAuE;AA6CvE;;;;GAIG;AACI,IAAM,oBAAoB,GAAG,UAClC,KAAuC;IAGrC,IAAA,IAAI,GAcF,KAAK,KAdH,EACJ,WAAW,GAaT,KAAK,YAbI,EACX,SAAS,GAYP,KAAK,UAZE,EACT,SAAS,GAWP,KAAK,UAXE,EACT,aAAa,GAUX,KAAK,cAVM,EACb,UAAU,GASR,KAAK,WATG,EACV,SAAS,GAQP,KAAK,UARE,EACT,uBAAuB,GAOrB,KAAK,wBAPgB,EACvB,uBAAuB,GAMrB,KAAK,wBANgB,EACvB,oBAAoB,GAKlB,KAAK,qBALa,EACpB,qBAAqB,GAInB,KAAK,sBAJc,EACrB,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,cAAc,GAEZ,KAAK,eAFO,EACd,UAAU,GACR,KAAK,WADG,CACF;IAEJ,IAAA,KAAA,eAA0B,eAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,EAA1C,QAAQ,QAAA,EAAE,WAAW,QAAqB,CAAC;IAElD,IAAM,eAAe,GAAG,uBAAuB,EAAE,CAAC;IAElD,IAAM,kBAAkB,GAAG,UAAU;QACnC,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM;QACzB,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAC;IAE3B,IAAM,mBAAmB,GAAG,IAAA,oDAAsB,GAAE,CAAC;IAErD,IAAA,uBAAe,EAAC;QACd,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,eAAe;YACf,gEAAgE;YAChE,uBAAuB;YACvB,KAAK;YACL,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,EAAE,CAAC;QAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewHolderCollection.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,qDAA+E;AAI/E,2CAA2D;AAE3D,sDAAqD;AACrD,6EAAuE;AA6CvE;;;;GAIG;AACI,IAAM,oBAAoB,GAAG,UAClC,KAAuC;IAGrC,IAAA,IAAI,GAcF,KAAK,KAdH,EACJ,WAAW,GAaT,KAAK,YAbI,EACX,SAAS,GAYP,KAAK,UAZE,EACT,SAAS,GAWP,KAAK,UAXE,EACT,aAAa,GAUX,KAAK,cAVM,EACb,UAAU,GASR,KAAK,WATG,EACV,SAAS,GAQP,KAAK,UARE,EACT,uBAAuB,GAOrB,KAAK,wBAPgB,EACvB,uBAAuB,GAMrB,KAAK,wBANgB,EACvB,oBAAoB,GAKlB,KAAK,qBALa,EACpB,qBAAqB,GAInB,KAAK,sBAJc,EACrB,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,cAAc,GAEZ,KAAK,eAFO,EACd,UAAU,GACR,KAAK,WADG,CACF;IAEJ,IAAA,KAAA,eAA0B,eAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,EAA1C,QAAQ,QAAA,EAAE,WAAW,QAAqB,CAAC;IAElD,IAAM,eAAe,GAAG,uBAAuB,EAAE,CAAC;IAElD,IAAM,kBAAkB,GAAG,UAAU;QACnC,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM;QACzB,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAC;IAE3B,IAAM,mBAAmB,GAAG,IAAA,oDAAsB,GAAE,CAAC;IAErD,IAAA,uBAAe,EAAC;QACd,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,eAAe;YACf,gEAAgE;YAChE,uBAAuB;YACvB,KAAK;YACL,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,EAAE,CAAC;QAChC,CAAC;QACD,kEAAkE;QAClE,uDAAuD;IACzD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAA,uBAAe,EAAC;QACd,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,EAAI,CAAC;QAC3B,CAAC;QACD,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,IAAA,iBAAS,EAAC;QACR,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,cAAc,aAAd,cAAc,uBAAd,cAAc,EAAI,CAAC;QACrB,CAAC;QACD,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,iCAAiC;IACjC,IAAA,2BAAmB,EACjB,uBAAuB,EACvB,cAAM,OAAA,CAAC;QACL,YAAY,EAAE;YACZ,iDAAiD;YACjD,WAAW,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;QAClC,CAAC;KACF,CAAC,EALI,CAKJ,EACF,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAExC,IAAM,cAAc,GAAG;QACrB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAC,CAAC,CAAC,SAAS;QACtD,MAAM,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM;KAChC,CAAC;IAEF,wBAAwB;IACxB,oEAAoE;IACpE,wCAAwC;IACxC,KAAK;IACL,eAAe;IACf,yBAAyB;IACzB,uDAAuD;IACvD,wCAAwC;IACxC,OAAO;IACP,KAAK;IAEL,OAAO,CACL,8BAAC,uBAAU;IACT,yCAAyC;;QAAzC,yCAAyC;QACzC,KAAK,EAAE,OAAO,IAAI,cAAc,IAE/B,eAAe;QACd,OAAO;QACP,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,UAAC,EAAqB;gBAArB,KAAA,qBAAqB,EAApB,QAAQ,QAAA,EAAI,KAAK,cAAA;YACnD,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAM,YAAY,GAAG,sBAAsB;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACjB,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,CACL,8BAAC,uBAAU,IACT,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,MAAM,uBACD,SAAS,CAAC,KAAK,CAAC,GAErB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAC,MAAM,EACb,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;QACJ,CAAC,CAAC,CACO,CACd,CAAC;AACJ,CAAC,CAAC;AA1HW,QAAA,oBAAoB,wBA0H/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAnchor.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,eAAe,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ScrollAnchor.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,eAAe,EAAE,EAAE,iBAAiB,qBAwBlE"}
|
|
@@ -24,7 +24,7 @@ function ScrollAnchor(_a) {
|
|
|
24
24
|
scrollBy: function (offset) {
|
|
25
25
|
setScrollOffset(function (prev) { return prev + offset; });
|
|
26
26
|
},
|
|
27
|
-
}); });
|
|
27
|
+
}); }, []);
|
|
28
28
|
// Create an invisible anchor element that can be positioned
|
|
29
29
|
var anchor = (0, react_1.useMemo)(function () {
|
|
30
30
|
return (react_1.default.createElement(CompatView_1.CompatView, { style: { position: "absolute", height: 0, top: scrollOffset } }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAnchor.js","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4BH,
|
|
1
|
+
{"version":3,"file":"ScrollAnchor.js","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4BH,oCAwBC;;AAlDD,qDAAsE;AAEtE,2CAA0C;AAkB1C;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,EAAsC;QAApC,eAAe,qBAAA;IACtC,IAAA,KAAA,eAAkC,IAAA,gBAAQ,EAAC,OAAO,CAAC,IAAA,EAAlD,YAAY,QAAA,EAAE,eAAe,QAAqB,CAAC,CAAC,uBAAuB;IAElF,qCAAqC;IACrC,IAAA,2BAAmB,EACjB,eAAe,EACf,cAAM,OAAA,CAAC;QACL,QAAQ,EAAE,UAAC,MAAc;YACvB,eAAe,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,MAAM,EAAb,CAAa,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,EAJI,CAIJ,EACF,EAAE,CACH,CAAC;IAEF,4DAA4D;IAC5D,IAAM,MAAM,GAAG,IAAA,eAAO,EAAC;QACrB,OAAO,CACL,8BAAC,uBAAU,IACT,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAC7D,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyHeaders.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oCAAoC;IACpC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClD,2CAA2C;IAC3C,mBAAmB,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,4CAA4C;IAC5C,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,EAAG,sGAQnC,iBAAiB,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"StickyHeaders.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oCAAoC;IACpC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClD,2CAA2C;IAC3C,mBAAmB,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,4CAA4C;IAC5C,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,EAAG,sGAQnC,iBAAiB,CAAC,KAAK,CAAC,6BAuJ1B,CAAC"}
|
|
@@ -12,30 +12,56 @@ var ViewHolder_1 = require("../ViewHolder");
|
|
|
12
12
|
var CompatView_1 = require("./CompatView");
|
|
13
13
|
var StickyHeaders = function (_a) {
|
|
14
14
|
var stickyHeaderIndices = _a.stickyHeaderIndices, renderItem = _a.renderItem, stickyHeaderRef = _a.stickyHeaderRef, recyclerViewManager = _a.recyclerViewManager, scrollY = _a.scrollY, data = _a.data, extraData = _a.extraData;
|
|
15
|
-
var _b = tslib_1.__read((0, react_1.useState)({
|
|
16
|
-
|
|
15
|
+
var _b = tslib_1.__read((0, react_1.useState)({
|
|
16
|
+
currentStickyIndex: -1,
|
|
17
|
+
nextStickyIndex: -1,
|
|
18
|
+
currentStickyHeight: 0,
|
|
19
|
+
nextStickyY: 0,
|
|
20
|
+
}), 2), stickyHeaderState = _b[0], setStickyHeaderState = _b[1];
|
|
21
|
+
var currentStickyIndex = stickyHeaderState.currentStickyIndex, nextStickyIndex = stickyHeaderState.nextStickyIndex, nextStickyY = stickyHeaderState.nextStickyY, currentStickyHeight = stickyHeaderState.currentStickyHeight;
|
|
17
22
|
// Memoize sorted indices based on their Y positions
|
|
18
23
|
var sortedIndices = (0, react_1.useMemo)(function () {
|
|
19
24
|
return stickyHeaderIndices.sort(function (first, second) { return first - second; });
|
|
20
25
|
}, [stickyHeaderIndices]);
|
|
26
|
+
var legthInvalid = sortedIndices.length === 0 ||
|
|
27
|
+
recyclerViewManager.getDataLength() <=
|
|
28
|
+
sortedIndices[sortedIndices.length - 1];
|
|
21
29
|
var compute = (0, react_1.useCallback)(function () {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
|
|
30
|
+
var _a, _b, _c, _d, _e, _f;
|
|
31
|
+
if (legthInvalid) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
var adjustedScrollOffset = recyclerViewManager.getLastScrollOffset();
|
|
24
35
|
// Binary search for current sticky index
|
|
25
|
-
var currentIndexInArray = findCurrentStickyIndex(sortedIndices,
|
|
36
|
+
var currentIndexInArray = findCurrentStickyIndex(sortedIndices, adjustedScrollOffset, function (index) { return recyclerViewManager.getLayout(index).y; });
|
|
26
37
|
var newStickyIndex = (_a = sortedIndices[currentIndexInArray]) !== null && _a !== void 0 ? _a : -1;
|
|
27
38
|
var newNextStickyIndex = (_b = sortedIndices[currentIndexInArray + 1]) !== null && _b !== void 0 ? _b : -1;
|
|
28
39
|
if (newNextStickyIndex > recyclerViewManager.getEngagedIndices().endIndex) {
|
|
29
40
|
newNextStickyIndex = -1;
|
|
30
41
|
}
|
|
42
|
+
var newNextStickyY = ((_d = (_c = recyclerViewManager.tryGetLayout(newNextStickyIndex)) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) +
|
|
43
|
+
recyclerViewManager.firstItemOffset;
|
|
44
|
+
var newCurrentStickyHeight = (_f = (_e = recyclerViewManager.tryGetLayout(newStickyIndex)) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : 0;
|
|
31
45
|
if (newStickyIndex !== currentStickyIndex ||
|
|
32
|
-
newNextStickyIndex !== nextStickyIndex
|
|
33
|
-
|
|
46
|
+
newNextStickyIndex !== nextStickyIndex ||
|
|
47
|
+
newNextStickyY !== nextStickyY ||
|
|
48
|
+
newCurrentStickyHeight !== currentStickyHeight) {
|
|
49
|
+
setStickyHeaderState({
|
|
34
50
|
currentStickyIndex: newStickyIndex,
|
|
35
51
|
nextStickyIndex: newNextStickyIndex,
|
|
52
|
+
nextStickyY: newNextStickyY,
|
|
53
|
+
currentStickyHeight: newCurrentStickyHeight,
|
|
36
54
|
});
|
|
37
55
|
}
|
|
38
|
-
}, [
|
|
56
|
+
}, [
|
|
57
|
+
currentStickyIndex,
|
|
58
|
+
nextStickyIndex,
|
|
59
|
+
recyclerViewManager,
|
|
60
|
+
sortedIndices,
|
|
61
|
+
legthInvalid,
|
|
62
|
+
nextStickyY,
|
|
63
|
+
currentStickyHeight,
|
|
64
|
+
]);
|
|
39
65
|
(0, react_1.useEffect)(function () {
|
|
40
66
|
compute();
|
|
41
67
|
}, [compute]);
|
|
@@ -55,18 +81,19 @@ var StickyHeaders = function (_a) {
|
|
|
55
81
|
extrapolate: "clamp",
|
|
56
82
|
});
|
|
57
83
|
}
|
|
58
|
-
var
|
|
59
|
-
var nextLayout = recyclerViewManager.getLayout(nextStickyIndex);
|
|
60
|
-
var pushStartsAt = nextLayout.y - currentLayout.height;
|
|
84
|
+
var pushStartsAt = nextStickyY - currentStickyHeight;
|
|
61
85
|
return scrollY.interpolate({
|
|
62
|
-
inputRange: [
|
|
63
|
-
|
|
64
|
-
nextLayout.y + recyclerViewManager.firstItemOffset,
|
|
65
|
-
],
|
|
66
|
-
outputRange: [0, -currentLayout.height],
|
|
86
|
+
inputRange: [pushStartsAt, nextStickyY],
|
|
87
|
+
outputRange: [0, -currentStickyHeight],
|
|
67
88
|
extrapolate: "clamp",
|
|
68
89
|
});
|
|
69
|
-
}, [
|
|
90
|
+
}, [
|
|
91
|
+
currentStickyHeight,
|
|
92
|
+
currentStickyIndex,
|
|
93
|
+
nextStickyIndex,
|
|
94
|
+
nextStickyY,
|
|
95
|
+
scrollY,
|
|
96
|
+
]);
|
|
70
97
|
// Memoize header content
|
|
71
98
|
var headerContent = (0, react_1.useMemo)(function () {
|
|
72
99
|
if (currentStickyIndex === -1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyHeaders.js","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,qDAOe;AAKf,4CAA2C;AAE3C,2CAAkD;AA+B3C,IAAM,aAAa,GAAG,UAAS,EAQX;QAPzB,mBAAmB,yBAAA,EACnB,UAAU,gBAAA,EACV,eAAe,qBAAA,EACf,mBAAmB,yBAAA,EACnB,OAAO,aAAA,EACP,IAAI,UAAA,EACJ,SAAS,eAAA;IAEH,IAAA,KAAA,
|
|
1
|
+
{"version":3,"file":"StickyHeaders.js","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RecyclerViewManager } from "../RecyclerViewManager";
|
|
2
|
-
import { RecyclerViewProps } from "../RecyclerViewProps";
|
|
3
2
|
import { CompatScroller } from "../components/CompatScroller";
|
|
4
3
|
/**
|
|
5
4
|
* Hook to detect when the scroll position reaches near the start or end of the list
|
|
@@ -12,7 +11,7 @@ import { CompatScroller } from "../components/CompatScroller";
|
|
|
12
11
|
* @param props - The RecyclerViewProps containing configuration and callbacks
|
|
13
12
|
* @param scrollViewRef - Reference to the scrollable container component
|
|
14
13
|
*/
|
|
15
|
-
export declare function useBoundDetection<T>(recyclerViewManager: RecyclerViewManager<T>,
|
|
14
|
+
export declare function useBoundDetection<T>(recyclerViewManager: RecyclerViewManager<T>, scrollViewRef: React.RefObject<CompatScroller>): {
|
|
16
15
|
checkBounds: () => void;
|
|
17
16
|
};
|
|
18
17
|
//# sourceMappingURL=useBoundDetection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBoundDetection.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useBoundDetection.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;;EAiH/C"}
|