@shopify/flash-list 2.0.0-alpha.20 → 2.0.0-alpha.21

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 (31) hide show
  1. package/dist/FlashListProps.d.ts +1 -1
  2. package/dist/__tests__/LayoutCommitObserver.test.d.ts +2 -0
  3. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +1 -0
  4. package/dist/__tests__/LayoutCommitObserver.test.js +35 -0
  5. package/dist/__tests__/LayoutCommitObserver.test.js.map +1 -0
  6. package/dist/benchmark/useBenchmark.js +0 -25
  7. package/dist/benchmark/useBenchmark.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/recyclerview/LayoutCommitObserver.d.ts +12 -0
  13. package/dist/recyclerview/LayoutCommitObserver.d.ts.map +1 -0
  14. package/dist/recyclerview/LayoutCommitObserver.js +62 -0
  15. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -0
  16. package/dist/recyclerview/RecyclerViewManager.d.ts +4 -1
  17. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  18. package/dist/recyclerview/RecyclerViewManager.js +34 -26
  19. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  20. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  21. package/dist/recyclerview/hooks/useRecyclerViewController.js +12 -9
  22. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +1 -1
  25. package/src/FlashListProps.ts +1 -1
  26. package/src/__tests__/LayoutCommitObserver.test.tsx +60 -0
  27. package/src/benchmark/useBenchmark.ts +0 -37
  28. package/src/index.ts +4 -0
  29. package/src/recyclerview/LayoutCommitObserver.tsx +74 -0
  30. package/src/recyclerview/RecyclerViewManager.ts +31 -22
  31. package/src/recyclerview/hooks/useRecyclerViewController.tsx +15 -14
@@ -320,7 +320,7 @@ export interface FlashListProps<TItem> extends Omit<ScrollViewProps, "maintainVi
320
320
  */
321
321
  autoscrollToBottomThreshold?: number;
322
322
  /**
323
- * When content is added at the bottom, animate the scroll to end.
323
+ * Scroll with animation whenever `autoscrollToBottom` is triggered. Default is `true`.
324
324
  * Default is true.
325
325
  */
326
326
  animateAutoScrollToBottom?: boolean;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=LayoutCommitObserver.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCommitObserver.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/LayoutCommitObserver.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var react_testing_1 = require("@quilted/react-testing");
6
+ var RecyclerView_1 = require("../recyclerview/RecyclerView");
7
+ var RecyclerViewContextProvider_1 = require("../recyclerview/RecyclerViewContextProvider");
8
+ var LayoutCommitObserver_1 = require("../recyclerview/LayoutCommitObserver");
9
+ describe("LayoutCommitObserver", function () {
10
+ it("should not alter ref captured by child", function () {
11
+ var ChildComponent = function () {
12
+ var _a, _b, _c, _d;
13
+ var context = (0, RecyclerViewContextProvider_1.useFlashListContext)();
14
+ expect((_a = context === null || context === void 0 ? void 0 : context.getRef()) === null || _a === void 0 ? void 0 : _a.props.testID).toBe("child");
15
+ expect((_b = context === null || context === void 0 ? void 0 : context.getParentRef()) === null || _b === void 0 ? void 0 : _b.props.testID).toBe("parent");
16
+ expect((_c = context === null || context === void 0 ? void 0 : context.getScrollViewRef()) === null || _c === void 0 ? void 0 : _c.props.testID).toBe("child");
17
+ expect((_d = context === null || context === void 0 ? void 0 : context.getParentScrollViewRef()) === null || _d === void 0 ? void 0 : _d.props.testID).toBe("parent");
18
+ return null;
19
+ };
20
+ var commitLayoutEffectCount = 0;
21
+ var content = (react_1.default.createElement(RecyclerView_1.RecyclerView, { testID: "parent", data: [1], renderItem: function () { return (react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
22
+ commitLayoutEffectCount++;
23
+ } },
24
+ react_1.default.createElement(RecyclerView_1.RecyclerView, { testID: "child", data: [1], renderItem: function () { return (react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
25
+ commitLayoutEffectCount++;
26
+ } },
27
+ react_1.default.createElement(LayoutCommitObserver_1.LayoutCommitObserver, { onCommitLayoutEffect: function () {
28
+ commitLayoutEffectCount++;
29
+ } },
30
+ react_1.default.createElement(ChildComponent, null)))); } }))); } }));
31
+ (0, react_testing_1.render)(content);
32
+ expect(commitLayoutEffectCount).toBe(3);
33
+ });
34
+ });
35
+ //# sourceMappingURL=LayoutCommitObserver.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCommitObserver.test.js","sourceRoot":"","sources":["../../src/__tests__/LayoutCommitObserver.test.tsx"],"names":[],"mappings":";;;AAAA,wDAA0B;AAC1B,wDAAgD;AAEhD,6DAA4D;AAC5D,2FAAkF;AAClF,6EAA4E;AAE5E,QAAQ,CAAC,sBAAsB,EAAE;IAC/B,EAAE,CAAC,wCAAwC,EAAE;QAC3C,IAAM,cAAc,GAAG;;YACrB,IAAM,OAAO,GAAG,IAAA,iDAAmB,GAAE,CAAC;YACtC,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,EAAE,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAEhC,IAAM,OAAO,GAAG,CACd,8BAAC,2BAAY,IACX,MAAM,EAAC,QAAQ,EACf,IAAI,EAAE,CAAC,CAAC,CAAC,EACT,UAAU,EAAE,cAAM,OAAA,CAChB,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;oBACpB,uBAAuB,EAAE,CAAC;gBAC5B,CAAC;gBAED,8BAAC,2BAAY,IACX,MAAM,EAAC,OAAO,EACd,IAAI,EAAE,CAAC,CAAC,CAAC,EACT,UAAU,EAAE,cAAM,OAAA,CAChB,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;4BACpB,uBAAuB,EAAE,CAAC;wBAC5B,CAAC;wBAED,8BAAC,2CAAoB,IACnB,oBAAoB,EAAE;gCACpB,uBAAuB,EAAE,CAAC;4BAC5B,CAAC;4BAED,8BAAC,cAAc,OAAG,CACG,CACF,CACxB,EAdiB,CAcjB,GACD,CACmB,CACxB,EA1BiB,CA0BjB,GACD,CACH,CAAC;QAEF,IAAA,sBAAM,EAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -132,35 +132,10 @@ function runScrollBenchmark(flashListRef, cancellable, scrollSpeedMultiplier) {
132
132
  });
133
133
  }
134
134
  function computeSuggestions(flashListRef, suggestions) {
135
- var _a;
136
135
  if (flashListRef.current) {
137
136
  if (flashListRef.current.props.data.length < 200) {
138
137
  suggestions.push("Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.");
139
138
  }
140
- var distanceFromWindow = (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(flashListRef.current.firstItemOffset, 0);
141
- if ((flashListRef.current.props.estimatedFirstItemOffset || 0) !==
142
- distanceFromWindow) {
143
- suggestions.push("estimatedFirstItemOffset can be set to ".concat(distanceFromWindow));
144
- }
145
- var rlv_1 = flashListRef.current.recyclerlistview_unsafe;
146
- var horizontal_2 = flashListRef.current.props.horizontal;
147
- if (rlv_1) {
148
- var sizeArray = rlv_1.props.dataProvider
149
- .getAllData()
150
- .map(function (_, index) {
151
- var _a, _b, _c, _d;
152
- return horizontal_2
153
- ? ((_b = (_a = rlv_1.getLayout) === null || _a === void 0 ? void 0 : _a.call(rlv_1, index)) === null || _b === void 0 ? void 0 : _b.width) || 0
154
- : ((_d = (_c = rlv_1.getLayout) === null || _c === void 0 ? void 0 : _c.call(rlv_1, index)) === null || _d === void 0 ? void 0 : _d.height) || 0;
155
- });
156
- var averageSize = Math.round(sizeArray.reduce(function (prev, current) { return prev + current; }, 0) /
157
- sizeArray.length);
158
- if (Math.abs(averageSize -
159
- ((_a = flashListRef.current.props.estimatedItemSize) !== null && _a !== void 0 ? _a : flashListRef.current.state.layoutProvider
160
- .defaultEstimatedItemSize)) > 5) {
161
- suggestions.push("estimatedItemSize can be set to ".concat(averageSize));
162
- }
163
- }
164
139
  }
165
140
  }
166
141
  //# sourceMappingURL=useBenchmark.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,4 +18,5 @@ export { default as CellContainer } from "./native/cell-container/CellContainer"
18
18
  export { RecyclerView } from "./recyclerview/RecyclerView";
19
19
  export { RecyclerViewProps } from "./recyclerview/RecyclerViewProps";
20
20
  export { useFlashListContext } from "./recyclerview/RecyclerViewContextProvider";
21
+ export { LayoutCommitObserver, LayoutCommitObserverProps, } from "./recyclerview/LayoutCommitObserver";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.useFlashListContext = exports.RecyclerView = exports.CellContainer = exports.Cancellable = exports.autoScroll = exports.JSFPSMonitor = exports.useMappingHelper = exports.useRecyclingState = exports.useLayoutState = exports.MasonryFlashList = exports.useBlankAreaTracker = exports.useFlatListBenchmark = exports.useDataMultiplier = exports.useBenchmark = exports.useOnNativeBlankAreaEvents = exports.AnimatedFlashList = exports.RenderTargetOptions = exports.FlashList = void 0;
4
+ exports.LayoutCommitObserver = exports.useFlashListContext = exports.RecyclerView = exports.CellContainer = exports.Cancellable = exports.autoScroll = exports.JSFPSMonitor = exports.useMappingHelper = exports.useRecyclingState = exports.useLayoutState = exports.MasonryFlashList = exports.useBlankAreaTracker = exports.useFlatListBenchmark = exports.useDataMultiplier = exports.useBenchmark = exports.useOnNativeBlankAreaEvents = exports.AnimatedFlashList = exports.RenderTargetOptions = exports.FlashList = void 0;
5
5
  var tslib_1 = require("tslib");
6
6
  // eslint-disable-next-line import/no-named-default
7
7
  var FlashList_1 = tslib_1.__importDefault(require("./FlashList"));
@@ -43,6 +43,8 @@ var RecyclerView_2 = require("./recyclerview/RecyclerView");
43
43
  Object.defineProperty(exports, "RecyclerView", { enumerable: true, get: function () { return RecyclerView_2.RecyclerView; } });
44
44
  var RecyclerViewContextProvider_1 = require("./recyclerview/RecyclerViewContextProvider");
45
45
  Object.defineProperty(exports, "useFlashListContext", { enumerable: true, get: function () { return RecyclerViewContextProvider_1.useFlashListContext; } });
46
+ var LayoutCommitObserver_1 = require("./recyclerview/LayoutCommitObserver");
47
+ Object.defineProperty(exports, "LayoutCommitObserver", { enumerable: true, get: function () { return LayoutCommitObserver_1.LayoutCommitObserver; } });
46
48
  // @ts-ignore - This is ignored by TypeScript but will be present in the compiled JS
47
49
  // In the compiled JS, this will override the previous FlashList export with a conditional one
48
50
  if (typeof module !== "undefined" &&
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,mDAAmD;AACnD,kEAA2D;AAC3D,iDAAmD;AACnD,4DAA2D;AAE3D,4CAA4C;AAC5C,yCAAmD;AAA1C,+HAAA,OAAO,OAAa;AAE7B,mDAO0B;AADxB,qHAAA,mBAAmB,OAAA;AAErB,yDAAmE;AAA1D,+IAAA,OAAO,OAAqB;AACrC,sEAI6C;AAH3C,4HAAA,0BAA0B,OAAA;AAI5B,yDAIkC;AAHhC,4GAAA,YAAY,OAAA;AAId,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAG0C;AAFxC,4HAAA,oBAAoB,OAAA;AAGtB,uEAIyC;AAHvC,0HAAA,mBAAmB,OAAA;AAIrB,uDAQ4B;AAP1B,oHAAA,gBAAgB,OAAA;AAQlB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,4EAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,0EAAyE;AAAhE,oHAAA,gBAAgB,OAAA;AACzB,yDAAqE;AAA5D,4GAAA,YAAY,OAAA;AACrB,iEAAuE;AAA9D,8GAAA,UAAU,OAAA;AAAE,+GAAA,WAAW,OAAA;AAEhC,uEAAiF;AAAxE,uIAAA,OAAO,OAAiB;AACjC,4DAA2D;AAAlD,4GAAA,YAAY,OAAA;AAErB,0FAAiF;AAAxE,kIAAA,mBAAmB,OAAA;AAE5B,oFAAoF;AACpF,8FAA8F;AAC9F,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,OAAO;IACd,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,QAAQ,MAAK,MAAM,EACjC,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE;QACjD,GAAG;YACD,OAAO,IAAA,gCAAgB,GAAE,CAAC,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAC,mBAAiB,CAAC;QAC/D,CAAC;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,mDAAmD;AACnD,kEAA2D;AAC3D,iDAAmD;AACnD,4DAA2D;AAE3D,4CAA4C;AAC5C,yCAAmD;AAA1C,+HAAA,OAAO,OAAa;AAE7B,mDAO0B;AADxB,qHAAA,mBAAmB,OAAA;AAErB,yDAAmE;AAA1D,+IAAA,OAAO,OAAqB;AACrC,sEAI6C;AAH3C,4HAAA,0BAA0B,OAAA;AAI5B,yDAIkC;AAHhC,4GAAA,YAAY,OAAA;AAId,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAG0C;AAFxC,4HAAA,oBAAoB,OAAA;AAGtB,uEAIyC;AAHvC,0HAAA,mBAAmB,OAAA;AAIrB,uDAQ4B;AAP1B,oHAAA,gBAAgB,OAAA;AAQlB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,4EAA2E;AAAlE,sHAAA,iBAAiB,OAAA;AAC1B,0EAAyE;AAAhE,oHAAA,gBAAgB,OAAA;AACzB,yDAAqE;AAA5D,4GAAA,YAAY,OAAA;AACrB,iEAAuE;AAA9D,8GAAA,UAAU,OAAA;AAAE,+GAAA,WAAW,OAAA;AAEhC,uEAAiF;AAAxE,uIAAA,OAAO,OAAiB;AACjC,4DAA2D;AAAlD,4GAAA,YAAY,OAAA;AAErB,0FAAiF;AAAxE,kIAAA,mBAAmB,OAAA;AAC5B,4EAG6C;AAF3C,4HAAA,oBAAoB,OAAA;AAItB,oFAAoF;AACpF,8FAA8F;AAC9F,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,OAAO;IACd,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,QAAQ,MAAK,MAAM,EACjC,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE;QACjD,GAAG;YACD,OAAO,IAAA,gCAAgB,GAAE,CAAC,CAAC,CAAC,2BAAY,CAAC,CAAC,CAAC,mBAAiB,CAAC;QAC/D,CAAC;QACD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export interface LayoutCommitObserverProps {
3
+ children: React.ReactNode;
4
+ onCommitLayoutEffect?: () => void;
5
+ }
6
+ /**
7
+ * LayoutCommitObserver can be used to observe when FlashList commits a layout.
8
+ * It is useful when your component has one or more FlashLists somewhere down the tree.
9
+ * LayoutCommitObserver will trigger `onCommitLayoutEffect` when all of the FlashLists in the tree have finished their first commit.
10
+ */
11
+ export declare const LayoutCommitObserver: React.MemoExoticComponent<(props: LayoutCommitObserverProps) => React.JSX.Element>;
12
+ //# sourceMappingURL=LayoutCommitObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCommitObserver.d.ts","sourceRoot":"","sources":["../../src/recyclerview/LayoutCommitObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,oCACvB,yBAAyB,uBAmDlC,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LayoutCommitObserver = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var RecyclerViewContextProvider_1 = require("./RecyclerViewContextProvider");
7
+ var useLayoutState_1 = require("./hooks/useLayoutState");
8
+ /**
9
+ * LayoutCommitObserver can be used to observe when FlashList commits a layout.
10
+ * It is useful when your component has one or more FlashLists somewhere down the tree.
11
+ * LayoutCommitObserver will trigger `onCommitLayoutEffect` when all of the FlashLists in the tree have finished their first commit.
12
+ */
13
+ exports.LayoutCommitObserver = react_1.default.memo(function (props) {
14
+ var children = props.children, onCommitLayoutEffect = props.onCommitLayoutEffect;
15
+ var parentRecyclerViewContext = (0, RecyclerViewContextProvider_1.useRecyclerViewContext)();
16
+ var _a = tslib_1.__read((0, useLayoutState_1.useLayoutState)(0), 2), _ = _a[0], setRenderId = _a[1];
17
+ var pendingChildIds = (0, react_1.useRef)(new Set()).current;
18
+ (0, react_1.useLayoutEffect)(function () {
19
+ if (pendingChildIds.size > 0) {
20
+ return;
21
+ }
22
+ onCommitLayoutEffect === null || onCommitLayoutEffect === void 0 ? void 0 : onCommitLayoutEffect();
23
+ });
24
+ // Create context for child components
25
+ var recyclerViewContext = (0, react_1.useMemo)(function () {
26
+ return {
27
+ layout: function () {
28
+ setRenderId(function (prev) { return prev + 1; });
29
+ },
30
+ getRef: function () {
31
+ var _a;
32
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getRef()) !== null && _a !== void 0 ? _a : null;
33
+ },
34
+ getParentRef: function () {
35
+ var _a;
36
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getParentRef()) !== null && _a !== void 0 ? _a : null;
37
+ },
38
+ getParentScrollViewRef: function () {
39
+ var _a;
40
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getParentScrollViewRef()) !== null && _a !== void 0 ? _a : null;
41
+ },
42
+ getScrollViewRef: function () {
43
+ var _a;
44
+ return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getScrollViewRef()) !== null && _a !== void 0 ? _a : null;
45
+ },
46
+ markChildLayoutAsPending: function (id) {
47
+ parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.markChildLayoutAsPending(id);
48
+ pendingChildIds.add(id);
49
+ },
50
+ unmarkChildLayoutAsPending: function (id) {
51
+ parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.unmarkChildLayoutAsPending(id);
52
+ if (pendingChildIds.has(id)) {
53
+ pendingChildIds.delete(id);
54
+ recyclerViewContext.layout();
55
+ }
56
+ },
57
+ };
58
+ }, [parentRecyclerViewContext, pendingChildIds, setRenderId]);
59
+ return (react_1.default.createElement(RecyclerViewContextProvider_1.RecyclerViewContextProvider, { value: recyclerViewContext }, children));
60
+ });
61
+ exports.LayoutCommitObserver.displayName = "LayoutCommitObserver";
62
+ //# sourceMappingURL=LayoutCommitObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCommitObserver.js","sourceRoot":"","sources":["../../src/recyclerview/LayoutCommitObserver.tsx"],"names":[],"mappings":";;;;AAAA,qDAAgE;AAEhE,6EAIuC;AACvC,yDAAwD;AAOxD;;;;GAIG;AACU,QAAA,oBAAoB,GAAG,eAAK,CAAC,IAAI,CAC5C,UAAC,KAAgC;IACvB,IAAA,QAAQ,GAA2B,KAAK,SAAhC,EAAE,oBAAoB,GAAK,KAAK,qBAAV,CAAW;IACjD,IAAM,yBAAyB,GAAG,IAAA,oDAAsB,GAAE,CAAC;IACrD,IAAA,KAAA,eAAmB,IAAA,+BAAc,EAAC,CAAC,CAAC,IAAA,EAAnC,CAAC,QAAA,EAAE,WAAW,QAAqB,CAAC;IAC3C,IAAM,eAAe,GAAG,IAAA,cAAM,EAAc,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IAE/D,IAAA,uBAAe,EAAC;QACd,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,EAAI,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAM,mBAAmB,GAAiC,IAAA,eAAO,EAAC;QAChE,OAAO;YACL,MAAM,EAAE;gBACN,WAAW,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,EAAE;;gBACN,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,MAAM,EAAE,mCAAI,IAAI,CAAC;YACrD,CAAC;YACD,YAAY,EAAE;;gBACZ,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,YAAY,EAAE,mCAAI,IAAI,CAAC;YAC3D,CAAC;YACD,sBAAsB,EAAE;;gBACtB,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,sBAAsB,EAAE,mCAAI,IAAI,CAAC;YACrE,CAAC;YACD,gBAAgB,EAAE;;gBAChB,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,gBAAgB,EAAE,mCAAI,IAAI,CAAC;YAC/D,CAAC;YACD,wBAAwB,EAAE,UAAC,EAAU;gBACnC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,wBAAwB,CAAC,EAAE,CAAC,CAAC;gBACxD,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,0BAA0B,EAAE,UAAC,EAAU;gBACrC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC;gBAC1D,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3B,mBAAmB,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,yBAAyB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9D,OAAO,CACL,8BAAC,yDAA2B,IAAC,KAAK,EAAE,mBAAmB,IACpD,QAAQ,CACmB,CAC/B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,4BAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC"}
@@ -9,6 +9,7 @@ export declare class RecyclerViewManager<T> {
9
9
  private layoutManager?;
10
10
  private isFirstLayoutComplete;
11
11
  private hasRenderedProgressively;
12
+ private progressiveRenderCount;
12
13
  private propsRef;
13
14
  private itemViewabilityManager;
14
15
  private _isDisposed;
@@ -20,6 +21,7 @@ export declare class RecyclerViewManager<T> {
20
21
  set animationOptimizationsEnabled(value: boolean);
21
22
  get isOffsetProjectionEnabled(): boolean;
22
23
  get isDisposed(): boolean;
24
+ get numColumns(): number;
23
25
  constructor(props: RecyclerViewProps<T>);
24
26
  private updateRenderStack;
25
27
  get props(): RecyclerViewProps<T>;
@@ -63,11 +65,12 @@ export declare class RecyclerViewManager<T> {
63
65
  getInitialScrollIndex(): number | undefined;
64
66
  shouldMaintainVisibleContentPosition(): boolean;
65
67
  getDataLength(): number;
68
+ hasStableDataKeys(): boolean;
69
+ getDataKey(index: number): string;
66
70
  private getLayoutManagerClass;
67
71
  private applyInitialScrollAdjustment;
68
72
  private renderProgressively;
69
73
  private getItemType;
70
- private getStableId;
71
74
  private overrideItemLayout;
72
75
  }
73
76
  //# sourceMappingURL=RecyclerViewManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAEL,WAAW,EACX,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,8BAA8B,CAAS;IAExC,eAAe,SAAK;IACpB,kBAAkB,UAAS;IAElC,IAAW,6BAA6B,IAIQ,OAAO,CAFtD;IAED,IAAW,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAGtD;IAED,IAAW,yBAAyB,YAEnC;IAED,IAAW,UAAU,YAEpB;gBAEW,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAavC,OAAO,CAAC,iBAAiB,CAOvB;IAEF,IAAI,KAAK,yBAER;IAED,0BAA0B,CAAC,KAAK,EAAE,OAAO;IAIzC,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAcvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,wBAAwB;IAIxB,SAAS,CAAC,KAAK,EAAE,MAAM;IASvB,YAAY,CAAC,KAAK,EAAE,MAAM;IAY1B,2BAA2B;IAS3B,cAAc;;;;;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,oBAAoB;IAIpB,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAoCnE,SAAS;IAIT,qBAAqB;IASrB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,eAAe;IAMf,OAAO;IAKP,sBAAsB;IAItB,qBAAqB;IASrB,oCAAoC;IAQpC,aAAa;IAIb,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"RecyclerViewManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAEL,WAAW,EACX,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAGL,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAkB;IAExC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,8BAA8B,CAAS;IAExC,eAAe,SAAK;IACpB,kBAAkB,UAAS;IAElC,IAAW,6BAA6B,IAIQ,OAAO,CAFtD;IAED,IAAW,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAGtD;IAED,IAAW,yBAAyB,YAEnC;IAED,IAAW,UAAU,YAEpB;IAED,IAAW,UAAU,WAEpB;gBAEW,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAavC,OAAO,CAAC,iBAAiB,CAOvB;IAEF,IAAI,KAAK,yBAER;IAED,0BAA0B,CAAC,KAAK,EAAE,OAAO;IAIzC,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IASvC;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,GAAG,SAAS;IAgBjC,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,wBAAwB;IAIxB,SAAS,CAAC,KAAK,EAAE,MAAM;IASvB,YAAY,CAAC,KAAK,EAAE,MAAM;IAY1B,2BAA2B;IAS3B,cAAc;;;;;IAId,aAAa;IAUb,mBAAmB;IAInB,kBAAkB;IAclB,2BAA2B;IAI3B,kBAAkB,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU;IAI1D,oBAAoB;IAIpB,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM;IAoCnE,SAAS;IAIT,qBAAqB;IASrB,iBAAiB;IAIjB,oBAAoB,CAClB,UAAU,EAAE,YAAY,EAAE,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO;IAkBV,sBAAsB;IAUtB,iBAAiB;IAIjB,sBAAsB;IAItB,iBAAiB;IAWjB,uBAAuB,IAAI,kBAAkB,GAAG,SAAS;IAIzD,eAAe;IAMf,OAAO;IAKP,sBAAsB;IAItB,qBAAqB;IASrB,oCAAoC;IAQpC,aAAa;IAIb,iBAAiB;IAIjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,4BAA4B;IA8BpC,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -12,10 +12,11 @@ var RenderStackManager_1 = require("./RenderStackManager");
12
12
  var RecyclerViewManager = /** @class */ (function () {
13
13
  function RecyclerViewManager(props) {
14
14
  var _this = this;
15
- this.initialDrawBatchSize = 1;
15
+ this.initialDrawBatchSize = 2;
16
16
  // Map of index to key
17
17
  this.isFirstLayoutComplete = false;
18
18
  this.hasRenderedProgressively = false;
19
+ this.progressiveRenderCount = 0;
19
20
  this._isDisposed = false;
20
21
  this._isLayoutManagerDirty = false;
21
22
  this._animationOptimizationsEnabled = false;
@@ -23,9 +24,9 @@ var RecyclerViewManager = /** @class */ (function () {
23
24
  this.ignoreScrollEvents = false;
24
25
  // updates render stack based on the engaged indices which are sorted. Recycles unused keys.
25
26
  this.updateRenderStack = function (engagedIndices) {
26
- _this.renderStackManager.sync(_this.getStableId, _this.getItemType, engagedIndices, _this.getDataLength());
27
+ _this.renderStackManager.sync(_this.getDataKey, _this.getItemType, engagedIndices, _this.getDataLength());
27
28
  };
28
- this.getStableId = this.getStableId.bind(this);
29
+ this.getDataKey = this.getDataKey.bind(this);
29
30
  this.getItemType = this.getItemType.bind(this);
30
31
  this.overrideItemLayout = this.overrideItemLayout.bind(this);
31
32
  this.propsRef = props;
@@ -58,6 +59,14 @@ var RecyclerViewManager = /** @class */ (function () {
58
59
  enumerable: false,
59
60
  configurable: true
60
61
  });
62
+ Object.defineProperty(RecyclerViewManager.prototype, "numColumns", {
63
+ get: function () {
64
+ var _a;
65
+ return (_a = this.propsRef.numColumns) !== null && _a !== void 0 ? _a : 1;
66
+ },
67
+ enumerable: false,
68
+ configurable: true
69
+ });
61
70
  Object.defineProperty(RecyclerViewManager.prototype, "props", {
62
71
  get: function () {
63
72
  return this.propsRef;
@@ -69,18 +78,12 @@ var RecyclerViewManager = /** @class */ (function () {
69
78
  this.engagedIndicesTracker.enableOffsetProjection = value;
70
79
  };
71
80
  RecyclerViewManager.prototype.updateProps = function (props) {
72
- var _a, _b, _c, _d;
81
+ var _a, _b, _c;
73
82
  this.propsRef = props;
74
83
  this.engagedIndicesTracker.drawDistance =
75
84
  (_a = props.drawDistance) !== null && _a !== void 0 ? _a : this.engagedIndicesTracker.drawDistance;
76
- if (this.propsRef.drawDistance === 0) {
77
- this.initialDrawBatchSize = 1;
78
- }
79
- else {
80
- this.initialDrawBatchSize = ((_b = props.numColumns) !== null && _b !== void 0 ? _b : 1) * 2;
81
- }
82
85
  this.initialDrawBatchSize =
83
- (_d = (_c = this.propsRef.overrideProps) === null || _c === void 0 ? void 0 : _c.initialDrawBatchSize) !== null && _d !== void 0 ? _d : this.initialDrawBatchSize;
86
+ (_c = (_b = this.propsRef.overrideProps) === null || _b === void 0 ? void 0 : _b.initialDrawBatchSize) !== null && _c !== void 0 ? _c : this.initialDrawBatchSize;
84
87
  };
85
88
  /**
86
89
  * Updates the scroll offset and returns the engaged indices if any
@@ -157,7 +160,7 @@ var RecyclerViewManager = /** @class */ (function () {
157
160
  this.engagedIndicesTracker.resetVelocityHistory();
158
161
  };
159
162
  RecyclerViewManager.prototype.updateLayoutParams = function (windowSize, firstItemOffset) {
160
- var _a, _b, _c;
163
+ var _a, _b;
161
164
  this.firstItemOffset = firstItemOffset;
162
165
  var LayoutManagerClass = this.getLayoutManagerClass();
163
166
  if (this.layoutManager &&
@@ -171,9 +174,9 @@ var RecyclerViewManager = /** @class */ (function () {
171
174
  }
172
175
  var layoutManagerParams = {
173
176
  windowSize: windowSize,
174
- maxColumns: (_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1,
177
+ maxColumns: this.numColumns,
175
178
  horizontal: Boolean(this.propsRef.horizontal),
176
- optimizeItemArrangement: (_c = this.propsRef.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
179
+ optimizeItemArrangement: (_b = this.propsRef.optimizeItemArrangement) !== null && _b !== void 0 ? _b : true,
177
180
  overrideItemLayout: this.overrideItemLayout,
178
181
  getItemType: this.getItemType,
179
182
  };
@@ -233,7 +236,7 @@ var RecyclerViewManager = /** @class */ (function () {
233
236
  var _a, _b;
234
237
  if (this.hasLayout()) {
235
238
  this.modifyChildrenLayout([], (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
236
- if (!this.recomputeEngagedIndices()) {
239
+ if (this.hasRenderedProgressively && !this.recomputeEngagedIndices()) {
237
240
  // recomputeEngagedIndices will update the render stack if there are any changes in the engaged indices.
238
241
  // It's important to update render stack so that elements are assgined right keys incase items were deleted.
239
242
  this.updateRenderStack(this.engagedIndicesTracker.getEngagedIndices());
@@ -271,18 +274,24 @@ var RecyclerViewManager = /** @class */ (function () {
271
274
  var _a, _b;
272
275
  return (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
273
276
  };
277
+ RecyclerViewManager.prototype.hasStableDataKeys = function () {
278
+ return Boolean(this.propsRef.keyExtractor);
279
+ };
280
+ RecyclerViewManager.prototype.getDataKey = function (index) {
281
+ var _a, _b, _c;
282
+ 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());
283
+ };
274
284
  RecyclerViewManager.prototype.getLayoutManagerClass = function () {
275
- var _a, _b;
276
285
  // throw errors for incompatible props
277
286
  if (this.propsRef.masonry && this.propsRef.horizontal) {
278
287
  throw new Error("Masonry and horizontal props are incompatible");
279
288
  }
280
- if (((_a = this.propsRef.numColumns) !== null && _a !== void 0 ? _a : 1) > 1 && this.propsRef.horizontal) {
289
+ if (this.numColumns > 1 && this.propsRef.horizontal) {
281
290
  throw new Error("numColumns and horizontal props are incompatible");
282
291
  }
283
292
  return this.propsRef.masonry
284
293
  ? MasonryLayoutManager_1.RVMasonryLayoutManagerImpl
285
- : ((_b = this.propsRef.numColumns) !== null && _b !== void 0 ? _b : 1) > 1 && !this.propsRef.horizontal
294
+ : this.numColumns > 1 && !this.propsRef.horizontal
286
295
  ? GridLayoutManager_1.RVGridLayoutManagerImpl
287
296
  : LinearLayoutManager_1.RVLinearLayoutManagerImpl;
288
297
  };
@@ -314,6 +323,7 @@ var RecyclerViewManager = /** @class */ (function () {
314
323
  }
315
324
  };
316
325
  RecyclerViewManager.prototype.renderProgressively = function () {
326
+ this.progressiveRenderCount++;
317
327
  var layoutManager = this.layoutManager;
318
328
  if (layoutManager) {
319
329
  this.applyInitialScrollAdjustment();
@@ -326,25 +336,23 @@ var RecyclerViewManager = /** @class */ (function () {
326
336
  if (this.hasRenderedProgressively) {
327
337
  this.isFirstLayoutComplete = true;
328
338
  }
339
+ var batchSize = this.numColumns *
340
+ Math.pow(this.initialDrawBatchSize, Math.ceil(this.progressiveRenderCount / 5));
329
341
  // If everything is measured then render stack will be in sync. The buffer items will get rendered in the next update
330
342
  // triggered by the useOnLoad hook.
331
343
  !this.hasRenderedProgressively &&
332
344
  this.updateRenderStack(
333
- // pick first n indices from visible ones and n is size of renderStack
334
- visibleIndices.slice(0, Math.min(visibleIndices.length, this.getRenderStack().size + this.initialDrawBatchSize)));
345
+ // pick first n indices from visible ones based on batch size
346
+ visibleIndices.slice(0, Math.min(visibleIndices.length, this.getRenderStack().size + batchSize)));
335
347
  }
336
348
  };
337
349
  RecyclerViewManager.prototype.getItemType = function (index) {
338
350
  var _a, _b, _c;
339
351
  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();
340
352
  };
341
- RecyclerViewManager.prototype.getStableId = function (index) {
342
- var _a, _b, _c;
343
- 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());
344
- };
345
353
  RecyclerViewManager.prototype.overrideItemLayout = function (index, layout) {
346
- var _a, _b, _c;
347
- (_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);
354
+ var _a, _b;
355
+ (_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, this.numColumns, this.propsRef.extraData);
348
356
  };
349
357
  return RecyclerViewManager;
350
358
  }());
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewController.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMV,MAAM,OAAO,CAAC;AAGf,OAAO,EAKL,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;EAikBlD"}
1
+ {"version":3,"file":"useRecyclerViewController.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMV,MAAM,OAAO,CAAC;AAGf,OAAO,EAKL,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;EAkkBlD"}
@@ -62,15 +62,15 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
62
62
  }
63
63
  }, [recyclerViewManager]);
64
64
  var computeFirstVisibleIndexForOffsetCorrection = (0, react_1.useCallback)(function () {
65
- var _a = recyclerViewManager.props, data = _a.data, keyExtractor = _a.keyExtractor;
66
65
  if (recyclerViewManager.getIsFirstLayoutComplete() &&
67
- keyExtractor &&
66
+ recyclerViewManager.hasStableDataKeys() &&
68
67
  recyclerViewManager.getDataLength() > 0 &&
69
68
  recyclerViewManager.shouldMaintainVisibleContentPosition()) {
70
69
  // Update the tracked first visible item
71
70
  var firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
72
71
  if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
73
- firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
72
+ firstVisibleItemKey.current =
73
+ recyclerViewManager.getDataKey(firstVisibleIndex);
74
74
  firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
75
75
  }
76
76
  }
@@ -82,7 +82,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
82
82
  */
83
83
  var applyOffsetCorrection = (0, react_1.useCallback)(function () {
84
84
  var _a, _b, _c;
85
- var _d = recyclerViewManager.props, horizontal = _d.horizontal, data = _d.data, keyExtractor = _d.keyExtractor;
85
+ var _d = recyclerViewManager.props, horizontal = _d.horizontal, data = _d.data;
86
86
  // Execute all pending callbacks from previous scroll offset updates
87
87
  // This ensures any scroll operations that were waiting for render are completed
88
88
  var callbacks = pendingScrollCallbacks.current;
@@ -90,7 +90,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
90
90
  callbacks.forEach(function (callback) { return callback(); });
91
91
  var currentDataLength = recyclerViewManager.getDataLength();
92
92
  if (recyclerViewManager.getIsFirstLayoutComplete() &&
93
- keyExtractor &&
93
+ recyclerViewManager.hasStableDataKeys() &&
94
94
  currentDataLength > 0 &&
95
95
  recyclerViewManager.shouldMaintainVisibleContentPosition()) {
96
96
  var hasDataChanged = currentDataLength !== lastDataLengthRef.current;
@@ -99,11 +99,12 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
99
99
  var currentIndexOfFirstVisibleItem = (_a = recyclerViewManager
100
100
  .getEngagedIndices()
101
101
  .findValue(function (index) {
102
- return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(data[index], index)) ===
102
+ return recyclerViewManager.getDataKey(index) ===
103
103
  firstVisibleItemKey.current;
104
104
  })) !== null && _a !== void 0 ? _a : (hasDataChanged
105
105
  ? data === null || data === void 0 ? void 0 : data.findIndex(function (item, index) {
106
- return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, index)) === firstVisibleItemKey.current;
106
+ return recyclerViewManager.getDataKey(index) ===
107
+ firstVisibleItemKey.current;
107
108
  })
108
109
  : undefined);
109
110
  if (currentIndexOfFirstVisibleItem !== undefined &&
@@ -212,15 +213,17 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
212
213
  args_1[_i] = arguments[_i];
213
214
  }
214
215
  return tslib_1.__awaiter(_this, tslib_1.__spreadArray([], tslib_1.__read(args_1), false), void 0, function (_a) {
215
- var data;
216
+ var data, lastIndex;
216
217
  var _b = _a === void 0 ? {} : _a, animated = _b.animated;
217
218
  return tslib_1.__generator(this, function (_c) {
218
219
  switch (_c.label) {
219
220
  case 0:
220
221
  data = recyclerViewManager.props.data;
221
222
  if (!(data && data.length > 0)) return [3 /*break*/, 2];
223
+ lastIndex = data.length - 1;
224
+ if (!!recyclerViewManager.getEngagedIndices().includes(lastIndex)) return [3 /*break*/, 2];
222
225
  return [4 /*yield*/, handlerMethods.scrollToIndex({
223
- index: data.length - 1,
226
+ index: lastIndex,
224
227
  animated: animated,
225
228
  })];
226
229
  case 1: