@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
|
@@ -6,93 +6,28 @@ var ViewabilityManager_1 = tslib_1.__importDefault(require("../viewability/Viewa
|
|
|
6
6
|
var GridLayoutManager_1 = require("./layout-managers/GridLayoutManager");
|
|
7
7
|
var LinearLayoutManager_1 = require("./layout-managers/LinearLayoutManager");
|
|
8
8
|
var MasonryLayoutManager_1 = require("./layout-managers/MasonryLayoutManager");
|
|
9
|
-
var RecycleKeyManager_1 = require("./RecycleKeyManager");
|
|
10
9
|
var EngagedIndicesTracker_1 = require("./helpers/EngagedIndicesTracker");
|
|
11
|
-
|
|
10
|
+
var RenderStackManager_1 = require("./RenderStackManager");
|
|
11
|
+
// Abstracts layout manager, render stack manager and viewability manager and generates render stack (progressively on load)
|
|
12
12
|
var RecyclerViewManager = /** @class */ (function () {
|
|
13
13
|
function RecyclerViewManager(props) {
|
|
14
14
|
var _this = this;
|
|
15
15
|
this.initialDrawBatchSize = 1;
|
|
16
16
|
// Map of index to key
|
|
17
|
-
this.renderStack = new Map();
|
|
18
17
|
this.isFirstLayoutComplete = false;
|
|
19
18
|
this.hasRenderedProgressively = false;
|
|
20
|
-
this.allocatedKeyTracker = new Set();
|
|
21
19
|
this._isDisposed = false;
|
|
22
|
-
this.disableRecycling = false;
|
|
23
20
|
this.firstItemOffset = 0;
|
|
24
21
|
this.ignoreScrollEvents = false;
|
|
25
22
|
// updates render stack based on the engaged indices which are sorted. Recycles unused keys.
|
|
26
|
-
// TODO: Write comprehensive tests for this function
|
|
27
23
|
this.updateRenderStack = function (engagedIndices) {
|
|
28
|
-
|
|
29
|
-
var e_1, _a, e_2, _b, e_3, _c;
|
|
30
|
-
var _d, _e;
|
|
31
|
-
_this.allocatedKeyTracker.clear();
|
|
32
|
-
var newRenderStack = new Map();
|
|
33
|
-
try {
|
|
34
|
-
for (var _f = tslib_1.__values(_this.renderStack), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
35
|
-
var _h = tslib_1.__read(_g.value, 2), index = _h[0], key = _h[1];
|
|
36
|
-
if (!engagedIndices.includes(index)) {
|
|
37
|
-
_this.recycleKeyManager.recycleKey(key);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
42
|
-
finally {
|
|
43
|
-
try {
|
|
44
|
-
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
45
|
-
}
|
|
46
|
-
finally { if (e_1) throw e_1.error; }
|
|
47
|
-
}
|
|
48
|
-
if (_this.disableRecycling) {
|
|
49
|
-
_this.recycleKeyManager.clearPool();
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
|
|
53
|
-
var index = engagedIndices_1_1.value;
|
|
54
|
-
var currentKey = _this.renderStack.get(index);
|
|
55
|
-
if (currentKey &&
|
|
56
|
-
!_this.disableRecycling &&
|
|
57
|
-
!_this.allocatedKeyTracker.has(currentKey)) {
|
|
58
|
-
_this.recycleKeyManager.recycleKey(currentKey);
|
|
59
|
-
}
|
|
60
|
-
var newKey = _this.recycleKeyManager.getKey(_this.getItemType(index), _this.getStableId(index), currentKey);
|
|
61
|
-
_this.allocatedKeyTracker.add(newKey);
|
|
62
|
-
newRenderStack.set(index, newKey);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
66
|
-
finally {
|
|
67
|
-
try {
|
|
68
|
-
if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_b = engagedIndices_1.return)) _b.call(engagedIndices_1);
|
|
69
|
-
}
|
|
70
|
-
finally { if (e_2) throw e_2.error; }
|
|
71
|
-
}
|
|
72
|
-
try {
|
|
73
|
-
// DANGER
|
|
74
|
-
for (var _j = tslib_1.__values(_this.renderStack), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
75
|
-
var _l = tslib_1.__read(_k.value, 2), index = _l[0], key = _l[1];
|
|
76
|
-
if (_this.recycleKeyManager.hasKeyInPool(key) &&
|
|
77
|
-
!newRenderStack.has(index) &&
|
|
78
|
-
index < ((_e = (_d = _this.props.data) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0)) {
|
|
79
|
-
_this.allocatedKeyTracker.add(key);
|
|
80
|
-
newRenderStack.set(index, key);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
85
|
-
finally {
|
|
86
|
-
try {
|
|
87
|
-
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
88
|
-
}
|
|
89
|
-
finally { if (e_3) throw e_3.error; }
|
|
90
|
-
}
|
|
91
|
-
_this.renderStack = newRenderStack;
|
|
24
|
+
_this.renderStackManager.sync(_this.getStableId, _this.getItemType, engagedIndices, _this.getDataLength());
|
|
92
25
|
};
|
|
93
|
-
this.
|
|
26
|
+
this.getStableId = this.getStableId.bind(this);
|
|
27
|
+
this.getItemType = this.getItemType.bind(this);
|
|
28
|
+
this.propsRef = props;
|
|
94
29
|
this.engagedIndicesTracker = new EngagedIndicesTracker_1.RVEngagedIndicesTrackerImpl();
|
|
95
|
-
this.
|
|
30
|
+
this.renderStackManager = new RenderStackManager_1.RenderStackManager(props.maxItemsInRecyclePool);
|
|
96
31
|
this.itemViewabilityManager = new ViewabilityManager_1.default(this);
|
|
97
32
|
}
|
|
98
33
|
Object.defineProperty(RecyclerViewManager.prototype, "isOffsetProjectionEnabled", {
|
|
@@ -109,20 +44,29 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
109
44
|
enumerable: false,
|
|
110
45
|
configurable: true
|
|
111
46
|
});
|
|
47
|
+
Object.defineProperty(RecyclerViewManager.prototype, "props", {
|
|
48
|
+
get: function () {
|
|
49
|
+
return this.propsRef;
|
|
50
|
+
},
|
|
51
|
+
enumerable: false,
|
|
52
|
+
configurable: true
|
|
53
|
+
});
|
|
112
54
|
RecyclerViewManager.prototype.setOffsetProjectionEnabled = function (value) {
|
|
113
55
|
this.engagedIndicesTracker.enableOffsetProjection = value;
|
|
114
56
|
};
|
|
115
57
|
RecyclerViewManager.prototype.updateProps = function (props) {
|
|
116
|
-
var _a, _b;
|
|
117
|
-
this.
|
|
58
|
+
var _a, _b, _c, _d;
|
|
59
|
+
this.propsRef = props;
|
|
118
60
|
this.engagedIndicesTracker.drawDistance =
|
|
119
61
|
(_a = props.drawDistance) !== null && _a !== void 0 ? _a : this.engagedIndicesTracker.drawDistance;
|
|
120
|
-
if (this.
|
|
62
|
+
if (this.propsRef.drawDistance === 0) {
|
|
121
63
|
this.initialDrawBatchSize = 1;
|
|
122
64
|
}
|
|
123
65
|
else {
|
|
124
66
|
this.initialDrawBatchSize = ((_b = props.numColumns) !== null && _b !== void 0 ? _b : 1) * 2;
|
|
125
67
|
}
|
|
68
|
+
this.initialDrawBatchSize =
|
|
69
|
+
(_d = (_c = this.propsRef.overrideProps) === null || _c === void 0 ? void 0 : _c.initialDrawBatchSize) !== null && _d !== void 0 ? _d : this.initialDrawBatchSize;
|
|
126
70
|
};
|
|
127
71
|
/**
|
|
128
72
|
* Updates the scroll offset and returns the engaged indices if any
|
|
@@ -130,7 +74,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
130
74
|
* @param velocity
|
|
131
75
|
*/
|
|
132
76
|
RecyclerViewManager.prototype.updateScrollOffset = function (offset, velocity) {
|
|
133
|
-
if (this.layoutManager && !this.
|
|
77
|
+
if (this.layoutManager && !this._isDisposed) {
|
|
134
78
|
var engagedIndices = this.engagedIndicesTracker.updateScrollOffset(offset - this.firstItemOffset, velocity, this.layoutManager);
|
|
135
79
|
if (engagedIndices) {
|
|
136
80
|
this.updateRenderStack(engagedIndices);
|
|
@@ -145,12 +89,23 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
145
89
|
RecyclerViewManager.prototype.getIsFirstLayoutComplete = function () {
|
|
146
90
|
return this.isFirstLayoutComplete;
|
|
147
91
|
};
|
|
92
|
+
RecyclerViewManager.prototype.disableRecycling = function (disable) {
|
|
93
|
+
this.renderStackManager.disableRecycling = disable;
|
|
94
|
+
};
|
|
148
95
|
RecyclerViewManager.prototype.getLayout = function (index) {
|
|
149
96
|
if (!this.layoutManager) {
|
|
150
97
|
throw new Error("LayoutManager is not initialized, layout info is unavailable");
|
|
151
98
|
}
|
|
152
99
|
return this.layoutManager.getLayout(index);
|
|
153
100
|
};
|
|
101
|
+
RecyclerViewManager.prototype.tryGetLayout = function (index) {
|
|
102
|
+
if (this.layoutManager &&
|
|
103
|
+
index >= 0 &&
|
|
104
|
+
index < this.layoutManager.getLayoutCount()) {
|
|
105
|
+
return this.layoutManager.getLayout(index);
|
|
106
|
+
}
|
|
107
|
+
return undefined;
|
|
108
|
+
};
|
|
154
109
|
// Doesn't include header / foot etc
|
|
155
110
|
RecyclerViewManager.prototype.getChildContainerDimensions = function () {
|
|
156
111
|
if (!this.layoutManager) {
|
|
@@ -159,7 +114,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
159
114
|
return this.layoutManager.getLayoutSize();
|
|
160
115
|
};
|
|
161
116
|
RecyclerViewManager.prototype.getRenderStack = function () {
|
|
162
|
-
return this.
|
|
117
|
+
return this.renderStackManager.getRenderStack();
|
|
163
118
|
};
|
|
164
119
|
RecyclerViewManager.prototype.getWindowSize = function () {
|
|
165
120
|
if (!this.layoutManager) {
|
|
@@ -172,10 +127,10 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
172
127
|
return this.engagedIndicesTracker.scrollOffset;
|
|
173
128
|
};
|
|
174
129
|
RecyclerViewManager.prototype.getMaxScrollOffset = function () {
|
|
175
|
-
return Math.max(0, (this.
|
|
130
|
+
return Math.max(0, (this.propsRef.horizontal
|
|
176
131
|
? this.getChildContainerDimensions().width
|
|
177
132
|
: this.getChildContainerDimensions().height) -
|
|
178
|
-
(this.
|
|
133
|
+
(this.propsRef.horizontal
|
|
179
134
|
? this.getWindowSize().width
|
|
180
135
|
: this.getWindowSize().height) +
|
|
181
136
|
this.firstItemOffset);
|
|
@@ -197,35 +152,35 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
197
152
|
var LayoutManagerClass = this.getLayoutManagerClass();
|
|
198
153
|
if (this.layoutManager &&
|
|
199
154
|
Boolean((_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.isHorizontal()) !==
|
|
200
|
-
Boolean(this.
|
|
155
|
+
Boolean(this.propsRef.horizontal)) {
|
|
201
156
|
throw new Error("Horizontal prop cannot be toggled, you can use a key on FlashList to recreate it.");
|
|
202
157
|
}
|
|
203
158
|
if (!(this.layoutManager instanceof LayoutManagerClass)) {
|
|
204
159
|
// console.log("-----> new LayoutManagerClass");
|
|
205
160
|
this.layoutManager = new LayoutManagerClass({
|
|
206
161
|
windowSize: windowSize,
|
|
207
|
-
maxColumns: (_b = this.
|
|
208
|
-
horizontal: Boolean(this.
|
|
209
|
-
optimizeItemArrangement: (_c = this.
|
|
162
|
+
maxColumns: (_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1,
|
|
163
|
+
horizontal: Boolean(this.propsRef.horizontal),
|
|
164
|
+
optimizeItemArrangement: (_c = this.propsRef.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
|
|
210
165
|
overrideItemLayout: function (index, layout) {
|
|
211
166
|
var _a, _b, _c;
|
|
212
|
-
(_b = (_a = _this.
|
|
167
|
+
(_b = (_a = _this.propsRef) === null || _a === void 0 ? void 0 : _a.overrideItemLayout) === null || _b === void 0 ? void 0 : _b.call(_a, layout, _this.propsRef.data[index], index, (_c = _this.propsRef.numColumns) !== null && _c !== void 0 ? _c : 1, _this.propsRef.extraData);
|
|
213
168
|
},
|
|
214
169
|
}, this.layoutManager);
|
|
215
170
|
}
|
|
216
171
|
else {
|
|
217
172
|
this.layoutManager.updateLayoutParams({
|
|
218
173
|
windowSize: windowSize,
|
|
219
|
-
maxColumns: (_d = this.
|
|
220
|
-
horizontal: Boolean(this.
|
|
221
|
-
optimizeItemArrangement: (_e = this.
|
|
174
|
+
maxColumns: (_d = this.propsRef.numColumns) !== null && _d !== void 0 ? _d : 1,
|
|
175
|
+
horizontal: Boolean(this.propsRef.horizontal),
|
|
176
|
+
optimizeItemArrangement: (_e = this.propsRef.optimizeItemArrangement) !== null && _e !== void 0 ? _e : true,
|
|
222
177
|
});
|
|
223
178
|
}
|
|
224
179
|
};
|
|
225
180
|
RecyclerViewManager.prototype.hasLayout = function () {
|
|
226
181
|
return this.layoutManager !== undefined;
|
|
227
182
|
};
|
|
228
|
-
RecyclerViewManager.prototype.
|
|
183
|
+
RecyclerViewManager.prototype.computeVisibleIndices = function () {
|
|
229
184
|
if (!this.layoutManager) {
|
|
230
185
|
throw new Error("LayoutManager is not initialized, visible indices are not unavailable");
|
|
231
186
|
}
|
|
@@ -256,9 +211,9 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
256
211
|
RecyclerViewManager.prototype.computeItemViewability = function () {
|
|
257
212
|
// Using higher buffer for masonry to avoid missing items
|
|
258
213
|
this.itemViewabilityManager.shouldListenToVisibleIndices &&
|
|
259
|
-
this.itemViewabilityManager.updateViewableItems(this.
|
|
214
|
+
this.itemViewabilityManager.updateViewableItems(this.propsRef.masonry
|
|
260
215
|
? this.engagedIndicesTracker.getEngagedIndices().toArray()
|
|
261
|
-
: this.
|
|
216
|
+
: this.computeVisibleIndices().toArray());
|
|
262
217
|
};
|
|
263
218
|
RecyclerViewManager.prototype.recordInteraction = function () {
|
|
264
219
|
this.itemViewabilityManager.recordInteraction();
|
|
@@ -269,7 +224,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
269
224
|
RecyclerViewManager.prototype.processDataUpdate = function () {
|
|
270
225
|
var _a, _b;
|
|
271
226
|
if (this.hasLayout()) {
|
|
272
|
-
this.modifyChildrenLayout([], (_b = (_a = this.
|
|
227
|
+
this.modifyChildrenLayout([], (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
273
228
|
if (!this.recomputeEngagedIndices()) {
|
|
274
229
|
// recomputeEngagedIndices will update the render stack if there are any changes in the engaged indices.
|
|
275
230
|
// It's important to update render stack so that elements are assgined right keys incase items were deleted.
|
|
@@ -286,26 +241,26 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
286
241
|
};
|
|
287
242
|
RecyclerViewManager.prototype.getInitialScrollIndex = function () {
|
|
288
243
|
var _a, _b;
|
|
289
|
-
return ((_a = this.
|
|
244
|
+
return ((_a = this.propsRef.initialScrollIndex) !== null && _a !== void 0 ? _a : (((_b = this.propsRef.maintainVisibleContentPosition) === null || _b === void 0 ? void 0 : _b.startRenderingFromBottom)
|
|
290
245
|
? this.getDataLength() - 1
|
|
291
246
|
: undefined));
|
|
292
247
|
};
|
|
293
248
|
RecyclerViewManager.prototype.getDataLength = function () {
|
|
294
249
|
var _a, _b;
|
|
295
|
-
return (_b = (_a = this.
|
|
250
|
+
return (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
296
251
|
};
|
|
297
252
|
RecyclerViewManager.prototype.getLayoutManagerClass = function () {
|
|
298
253
|
var _a, _b;
|
|
299
254
|
// throw errors for incompatible props
|
|
300
|
-
if (this.
|
|
255
|
+
if (this.propsRef.masonry && this.propsRef.horizontal) {
|
|
301
256
|
throw new Error("Masonry and horizontal props are incompatible");
|
|
302
257
|
}
|
|
303
|
-
if (((_a = this.
|
|
258
|
+
if (((_a = this.propsRef.numColumns) !== null && _a !== void 0 ? _a : 1) > 1 && this.propsRef.horizontal) {
|
|
304
259
|
throw new Error("numColumns and horizontal props are incompatible");
|
|
305
260
|
}
|
|
306
|
-
return this.
|
|
261
|
+
return this.propsRef.masonry
|
|
307
262
|
? MasonryLayoutManager_1.RVMasonryLayoutManagerImpl
|
|
308
|
-
: ((_b = this.
|
|
263
|
+
: ((_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1) > 1 && !this.propsRef.horizontal
|
|
309
264
|
? GridLayoutManager_1.RVGridLayoutManagerImpl
|
|
310
265
|
: LinearLayoutManager_1.RVLinearLayoutManagerImpl;
|
|
311
266
|
};
|
|
@@ -316,7 +271,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
316
271
|
}
|
|
317
272
|
var initialScrollIndex = this.getInitialScrollIndex();
|
|
318
273
|
var initialItemLayout = (_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.getLayout(initialScrollIndex !== null && initialScrollIndex !== void 0 ? initialScrollIndex : 0);
|
|
319
|
-
var initialItemOffset = this.
|
|
274
|
+
var initialItemOffset = this.propsRef.horizontal
|
|
320
275
|
? initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.x
|
|
321
276
|
: initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.y;
|
|
322
277
|
if (initialScrollIndex !== undefined) {
|
|
@@ -340,7 +295,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
340
295
|
var layoutManager = this.layoutManager;
|
|
341
296
|
if (layoutManager) {
|
|
342
297
|
this.applyInitialScrollAdjustment();
|
|
343
|
-
var visibleIndices = this.
|
|
298
|
+
var visibleIndices = this.computeVisibleIndices();
|
|
344
299
|
// console.log("---------> visibleIndices", visibleIndices);
|
|
345
300
|
this.hasRenderedProgressively = visibleIndices.every(function (index) {
|
|
346
301
|
return layoutManager.getLayout(index).isHeightMeasured &&
|
|
@@ -354,16 +309,16 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
354
309
|
!this.hasRenderedProgressively &&
|
|
355
310
|
this.updateRenderStack(
|
|
356
311
|
// pick first n indices from visible ones and n is size of renderStack
|
|
357
|
-
visibleIndices.slice(0, Math.min(visibleIndices.length, this.
|
|
312
|
+
visibleIndices.slice(0, Math.min(visibleIndices.length, this.getRenderStack().size + this.initialDrawBatchSize)));
|
|
358
313
|
}
|
|
359
314
|
};
|
|
360
315
|
RecyclerViewManager.prototype.getItemType = function (index) {
|
|
361
316
|
var _a, _b, _c;
|
|
362
|
-
return ((_c = (_b = (_a = this.
|
|
317
|
+
return ((_c = (_b = (_a = this.propsRef).getItemType) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : "default").toString();
|
|
363
318
|
};
|
|
364
319
|
RecyclerViewManager.prototype.getStableId = function (index) {
|
|
365
320
|
var _a, _b, _c;
|
|
366
|
-
return ((_c = (_b = (_a = this.
|
|
321
|
+
return ((_c = (_b = (_a = this.propsRef).keyExtractor) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : index.toString());
|
|
367
322
|
};
|
|
368
323
|
return RecyclerViewManager;
|
|
369
324
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ConsecutiveNumbers } from "./helpers/ConsecutiveNumbers";
|
|
2
|
+
/**
|
|
3
|
+
* Manages the recycling of rendered items in a virtualized list.
|
|
4
|
+
* This class handles tracking, recycling, and reusing item keys to optimize
|
|
5
|
+
* rendering performance by minimizing creation/destruction of components.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RenderStackManager {
|
|
8
|
+
disableRecycling: boolean;
|
|
9
|
+
private maxItemsInRecyclePool;
|
|
10
|
+
private recycleKeyPools;
|
|
11
|
+
private keyMap;
|
|
12
|
+
private stableIdMap;
|
|
13
|
+
private keyCounter;
|
|
14
|
+
/**
|
|
15
|
+
* @param maxItemsInRecyclePool - Maximum number of items that can be in the recycle pool
|
|
16
|
+
*/
|
|
17
|
+
constructor(maxItemsInRecyclePool?: number);
|
|
18
|
+
/**
|
|
19
|
+
* Synchronizes the render stack with the current state of data.
|
|
20
|
+
* This method is the core orchestrator that:
|
|
21
|
+
* 1. Recycles keys for items that are no longer valid
|
|
22
|
+
* 2. Updates existing keys for items that remain visible
|
|
23
|
+
* 3. Assigns new keys for newly visible items
|
|
24
|
+
* 4. Cleans up excess items to maintain the recycling pool size
|
|
25
|
+
*
|
|
26
|
+
* @param getStableId - Function to get a stable identifier for an item at a specific index
|
|
27
|
+
* @param getItemType - Function to get the type of an item at a specific index
|
|
28
|
+
* @param engagedIndices - Collection of indices that are currently visible or engaged
|
|
29
|
+
* @param dataLength - Total length of the data set
|
|
30
|
+
*/
|
|
31
|
+
sync(getStableId: (index: number) => string, getItemType: (index: number) => string, engagedIndices: ConsecutiveNumbers, dataLength: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Checks if a stable ID already has an assigned key
|
|
34
|
+
*/
|
|
35
|
+
private hasOptimizedKey;
|
|
36
|
+
/**
|
|
37
|
+
* Cleans up stale keys and manages the recycle pool size.
|
|
38
|
+
* This ensures we don't maintain references to items that are no longer in the dataset,
|
|
39
|
+
* and limits the number of recycled items to avoid excessive memory usage.
|
|
40
|
+
*/
|
|
41
|
+
private cleanup;
|
|
42
|
+
/**
|
|
43
|
+
* Places a key back into its type-specific recycle pool for future reuse
|
|
44
|
+
*/
|
|
45
|
+
private recycleKey;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the current render stack containing all active keys and their metadata
|
|
48
|
+
*/
|
|
49
|
+
getRenderStack(): Map<string, {
|
|
50
|
+
itemType: string;
|
|
51
|
+
index: number;
|
|
52
|
+
stableId: string;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Syncs an individual item by assigning it an appropriate key.
|
|
56
|
+
* Will use an existing key if available, or generate a new one.
|
|
57
|
+
*
|
|
58
|
+
* @returns The key assigned to the item
|
|
59
|
+
*/
|
|
60
|
+
private syncItem;
|
|
61
|
+
/**
|
|
62
|
+
* Clears all recycled keys from the pool, effectively resetting the recycling system.
|
|
63
|
+
* This operation does not affect currently active keys.
|
|
64
|
+
*/
|
|
65
|
+
private clearRecyclePool;
|
|
66
|
+
/**
|
|
67
|
+
* Generates a unique sequential key using an internal counter.
|
|
68
|
+
* @returns A unique key as a string
|
|
69
|
+
*/
|
|
70
|
+
private generateKey;
|
|
71
|
+
/**
|
|
72
|
+
* Removes a specific key from its type's recycle pool
|
|
73
|
+
*/
|
|
74
|
+
private deleteKeyFromRecyclePool;
|
|
75
|
+
/**
|
|
76
|
+
* Gets or creates a recycle pool for a specific item type
|
|
77
|
+
*/
|
|
78
|
+
private getRecyclePoolForType;
|
|
79
|
+
/**
|
|
80
|
+
* Retrieves and removes a key from the type's recycle pool
|
|
81
|
+
* @returns A recycled key or undefined if none available
|
|
82
|
+
*/
|
|
83
|
+
private getKeyFromRecyclePool;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=RenderStackManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderStackManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,kBAAkB;IACtB,gBAAgB,UAAS;IAGhC,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,eAAe,CAA2B;IAGlD,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,WAAW,CAAsB;IAGzC,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;gBACS,qBAAqB,GAAE,MAAgC;IAQnE;;;;;;;;;;;;OAYG;IACI,IAAI,CACT,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,MAAM;IAyCpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IA4Cf;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;OAEG;IACI,cAAc;kBA9JP,MAAM;eAAS,MAAM;kBAAY,MAAM;;IAkKrD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA6BhB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAS9B"}
|