@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.
Files changed (119) hide show
  1. package/README.md +6 -2
  2. package/dist/AnimatedFlashList.d.ts.map +1 -1
  3. package/dist/AnimatedFlashList.js +3 -3
  4. package/dist/AnimatedFlashList.js.map +1 -1
  5. package/dist/FlashList.d.ts +9 -0
  6. package/dist/FlashList.d.ts.map +1 -1
  7. package/dist/FlashList.js +20 -0
  8. package/dist/FlashList.js.map +1 -1
  9. package/dist/FlashListProps.d.ts +13 -6
  10. package/dist/FlashListProps.d.ts.map +1 -1
  11. package/dist/FlashListProps.js.map +1 -1
  12. package/dist/FlashListRef.d.ts +295 -0
  13. package/dist/FlashListRef.d.ts.map +1 -0
  14. package/dist/FlashListRef.js +3 -0
  15. package/dist/FlashListRef.js.map +1 -0
  16. package/dist/__tests__/RecyclerView.test.js +62 -27
  17. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  18. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  19. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  20. package/dist/__tests__/RenderStackManager.test.js +405 -0
  21. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  22. package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
  23. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +8 -7
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/recyclerview/RecyclerView.d.ts +2 -1
  30. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  31. package/dist/recyclerview/RecyclerView.js +33 -14
  32. package/dist/recyclerview/RecyclerView.js.map +1 -1
  33. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
  34. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  35. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  36. package/dist/recyclerview/RecyclerViewManager.d.ts +11 -7
  37. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  38. package/dist/recyclerview/RecyclerViewManager.js +57 -102
  39. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  40. package/dist/recyclerview/RenderStackManager.d.ts +85 -0
  41. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  42. package/dist/recyclerview/RenderStackManager.js +261 -0
  43. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  44. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  45. package/dist/recyclerview/ViewHolder.js +5 -3
  46. package/dist/recyclerview/ViewHolder.js.map +1 -1
  47. package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
  48. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  49. package/dist/recyclerview/ViewHolderCollection.js +19 -3
  50. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  51. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  52. package/dist/recyclerview/components/ScrollAnchor.js +1 -1
  53. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  54. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  55. package/dist/recyclerview/components/StickyHeaders.js +44 -17
  56. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  57. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
  58. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  59. package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
  60. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  61. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  62. package/dist/recyclerview/hooks/useOnLoad.js +4 -6
  63. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  64. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
  65. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  66. package/dist/recyclerview/hooks/useRecyclerViewController.js +93 -71
  67. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  68. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  69. package/dist/recyclerview/hooks/useRecyclerViewManager.js +6 -0
  70. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  71. package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
  72. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
  73. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
  74. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
  75. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  76. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
  77. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  78. package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
  79. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  80. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +2 -2
  81. package/dist/recyclerview/layout-managers/LayoutManager.js +2 -2
  82. package/dist/tsconfig.tsbuildinfo +1 -1
  83. package/jestSetup.js +30 -11
  84. package/package.json +1 -1
  85. package/src/AnimatedFlashList.ts +3 -2
  86. package/src/FlashList.tsx +24 -0
  87. package/src/FlashListProps.ts +16 -7
  88. package/src/FlashListRef.ts +309 -0
  89. package/src/__tests__/RecyclerView.test.tsx +83 -29
  90. package/src/__tests__/RenderStackManager.test.ts +488 -0
  91. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
  92. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  93. package/src/index.ts +1 -0
  94. package/src/recyclerview/RecyclerView.tsx +38 -23
  95. package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
  96. package/src/recyclerview/RecyclerViewManager.ts +73 -88
  97. package/src/recyclerview/RenderStackManager.ts +265 -0
  98. package/src/recyclerview/ViewHolder.tsx +5 -3
  99. package/src/recyclerview/ViewHolderCollection.tsx +29 -8
  100. package/src/recyclerview/components/ScrollAnchor.tsx +9 -5
  101. package/src/recyclerview/components/StickyHeaders.tsx +57 -19
  102. package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
  103. package/src/recyclerview/hooks/useOnLoad.ts +4 -6
  104. package/src/recyclerview/hooks/useRecyclerViewController.tsx +104 -125
  105. package/src/recyclerview/hooks/useRecyclerViewManager.ts +6 -0
  106. package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
  107. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
  108. package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
  109. package/src/recyclerview/layout-managers/LayoutManager.ts +2 -2
  110. package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
  111. package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
  112. package/dist/__tests__/RecycleKeyManager.test.js +0 -210
  113. package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
  114. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  115. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  116. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  117. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  118. package/src/__tests__/RecycleKeyManager.test.ts +0 -254
  119. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewManager.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":";;;;AAAA,+BAAqD;AAGrD,8DAA6D;AAC7D,8DAA6D;AAEtD,IAAM,sBAAsB,GAAG,UAAI,KAA2B;IAC7D,IAAA,KAAA,eAAwB,IAAA,gBAAQ,EACpC,cAAM,OAAA,IAAI,yCAAmB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CACrC,IAAA,EAFM,mBAAmB,QAEzB,CAAC;IACI,IAAA,KAAA,eAAoB,IAAA,gBAAQ,EAAC,cAAM,OAAA,IAAI,iCAAe,EAAE,EAArB,CAAqB,CAAC,IAAA,EAAxD,eAAe,QAAyC,CAAC;IAExD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IAEvB,IAAA,eAAO,EAAC;QACN,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ;;OAEG;IACH,IAAA,eAAO,EAAC;QACN,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,mBAAmB,qBAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;AAClD,CAAC,CAAC;AA3BW,QAAA,sBAAsB,0BA2BjC"}
1
+ {"version":3,"file":"useRecyclerViewManager.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":";;;;AAAA,+BAAqD;AAGrD,8DAA6D;AAC7D,8DAA6D;AAEtD,IAAM,sBAAsB,GAAG,UAAI,KAA2B;IAC7D,IAAA,KAAA,eAAwB,IAAA,gBAAQ,EACpC,cAAM,OAAA,IAAI,yCAAmB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CACrC,IAAA,EAFM,mBAAmB,QAEzB,CAAC;IACI,IAAA,KAAA,eAAoB,IAAA,gBAAQ,EAAC,cAAM,OAAA,IAAI,iCAAe,EAAE,EAArB,CAAqB,CAAC,IAAA,EAAxD,eAAe,QAAyC,CAAC;IAExD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IAEvB,IAAA,eAAO,EAAC;QACN,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,+CAA+C;QAC/C,uDAAuD;IACzD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ;;OAEG;IACH,IAAA,eAAO,EAAC;QACN,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;QACxC,sDAAsD;QACtD,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC9B,eAAe,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,+BAA+B;QAC/B,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,mBAAmB,qBAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;AAClD,CAAC,CAAC;AAjCW,QAAA,sBAAsB,0BAiCjC"}
@@ -76,7 +76,7 @@ function useSecondaryProps(props) {
76
76
  var ForwardedScrollComponent = react_1.default.forwardRef(function (_props, ref) {
77
77
  return renderScrollComponent(tslib_1.__assign(tslib_1.__assign({}, _props), { ref: ref }));
78
78
  });
79
- ForwardedScrollComponent.displayName = "CompatScrollView";
79
+ ForwardedScrollComponent.displayName = "CustomScrollView";
80
80
  scrollComponent = ForwardedScrollComponent;
81
81
  }
82
82
  else if (renderScrollComponent) {
@@ -1,8 +1,15 @@
1
1
  /**
2
- * Hook that provides callbacks which are aware of component unmount state.
3
- * Any timeouts created with these callbacks will be automatically cleared when the component unmounts.
2
+ * Hook that provides a setTimeout which is aware of component unmount state.
3
+ * Any timeouts created with this hook will be automatically cleared when the component unmounts.
4
4
  */
5
- export declare function useUnmountAwareCallbacks(): {
5
+ export declare function useUnmountAwareTimeout(): {
6
6
  setTimeout: (callback: () => void, delay: number) => void;
7
7
  };
8
+ /**
9
+ * Hook that provides a requestAnimationFrame which is aware of component unmount state.
10
+ * Any animation frames requested with this hook will be automatically canceled when the component unmounts.
11
+ */
12
+ export declare function useUnmountAwareAnimationFrame(): {
13
+ requestAnimationFrame: (callback: FrameRequestCallback) => void;
14
+ };
8
15
  //# sourceMappingURL=useUnmountAwareCallbacks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnmountAwareCallbacks.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useUnmountAwareCallbacks.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,wBAAwB;2BAczB,MAAM,IAAI,SAAS,MAAM,KAAG,IAAI;EAgB9C"}
1
+ {"version":3,"file":"useUnmountAwareCallbacks.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useUnmountAwareCallbacks.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,sBAAsB;2BAcvB,MAAM,IAAI,SAAS,MAAM,KAAG,IAAI;EAgB9C;AAED;;;GAGG;AACH,wBAAgB,6BAA6B;sCAc9B,oBAAoB,KAAG,IAAI;EAgBzC"}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useUnmountAwareCallbacks = useUnmountAwareCallbacks;
3
+ exports.useUnmountAwareTimeout = useUnmountAwareTimeout;
4
+ exports.useUnmountAwareAnimationFrame = useUnmountAwareAnimationFrame;
4
5
  var tslib_1 = require("tslib");
5
6
  var react_1 = require("react");
6
7
  /**
7
- * Hook that provides callbacks which are aware of component unmount state.
8
- * Any timeouts created with these callbacks will be automatically cleared when the component unmounts.
8
+ * Hook that provides a setTimeout which is aware of component unmount state.
9
+ * Any timeouts created with this hook will be automatically cleared when the component unmounts.
9
10
  */
10
- function useUnmountAwareCallbacks() {
11
+ function useUnmountAwareTimeout() {
11
12
  // Store active timeout IDs in a Set for more efficient add/remove operations
12
13
  var _a = tslib_1.__read((0, react_1.useState)(function () { return new Set(); }), 1), timeoutIds = _a[0];
13
14
  // Clear all timeouts on unmount
@@ -31,4 +32,32 @@ function useUnmountAwareCallbacks() {
31
32
  setTimeout: setTimeout,
32
33
  };
33
34
  }
35
+ /**
36
+ * Hook that provides a requestAnimationFrame which is aware of component unmount state.
37
+ * Any animation frames requested with this hook will be automatically canceled when the component unmounts.
38
+ */
39
+ function useUnmountAwareAnimationFrame() {
40
+ // Store active animation frame request IDs in a Set for more efficient add/remove operations
41
+ var _a = tslib_1.__read((0, react_1.useState)(function () { return new Set(); }), 1), requestIds = _a[0];
42
+ // Cancel all animation frame requests on unmount
43
+ (0, react_1.useEffect)(function () {
44
+ return function () {
45
+ requestIds.forEach(function (id) { return cancelAnimationFrame(id); });
46
+ requestIds.clear();
47
+ };
48
+ }, [requestIds]);
49
+ // Create a safe requestAnimationFrame that will be canceled on unmount
50
+ var requestAnimationFrame = (0, react_1.useCallback)(function (callback) {
51
+ var id = global.requestAnimationFrame(function (timestamp) {
52
+ // Remove this request ID from the tracking set
53
+ requestIds.delete(id);
54
+ callback(timestamp);
55
+ });
56
+ // Track this request ID
57
+ requestIds.add(id);
58
+ }, [requestIds]);
59
+ return {
60
+ requestAnimationFrame: requestAnimationFrame,
61
+ };
62
+ }
34
63
  //# sourceMappingURL=useUnmountAwareCallbacks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnmountAwareCallbacks.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useUnmountAwareCallbacks.ts"],"names":[],"mappings":";;AAMA,4DA8BC;;AApCD,+BAAyD;AAEzD;;;GAGG;AACH,SAAgB,wBAAwB;IACtC,6EAA6E;IACvE,IAAA,KAAA,eAAe,IAAA,gBAAQ,EAAsB,cAAM,OAAA,IAAI,GAAG,EAAE,EAAT,CAAS,CAAC,IAAA,EAA5D,UAAU,QAAkD,CAAC;IAEpE,gCAAgC;IAChC,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,UAAU,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC;YACpD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,2DAA2D;IAC3D,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,QAAoB,EAAE,KAAa;QAClC,IAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;YAC3B,+CAA+C;YAC/C,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,wBAAwB;QACxB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO;QACL,UAAU,YAAA;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useUnmountAwareCallbacks.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useUnmountAwareCallbacks.ts"],"names":[],"mappings":";;AAMA,wDA8BC;AAMD,sEA8BC;;AAxED,+BAAyD;AAEzD;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,6EAA6E;IACvE,IAAA,KAAA,eAAe,IAAA,gBAAQ,EAAsB,cAAM,OAAA,IAAI,GAAG,EAAE,EAAT,CAAS,CAAC,IAAA,EAA5D,UAAU,QAAkD,CAAC;IAEpE,gCAAgC;IAChC,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,UAAU,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC;YACpD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,2DAA2D;IAC3D,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,QAAoB,EAAE,KAAa;QAClC,IAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;YAC3B,+CAA+C;YAC/C,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,wBAAwB;QACxB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO;QACL,UAAU,YAAA;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,6BAA6B;IAC3C,6FAA6F;IACvF,IAAA,KAAA,eAAe,IAAA,gBAAQ,EAAc,cAAM,OAAA,IAAI,GAAG,EAAE,EAAT,CAAS,CAAC,IAAA,EAApD,UAAU,QAA0C,CAAC;IAE5D,iDAAiD;IACjD,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,UAAU,CAAC,OAAO,CAAC,UAAC,EAAE,IAAK,OAAA,oBAAoB,CAAC,EAAE,CAAC,EAAxB,CAAwB,CAAC,CAAC;YACrD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,uEAAuE;IACvE,IAAM,qBAAqB,GAAG,IAAA,mBAAW,EACvC,UAAC,QAA8B;QAC7B,IAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,UAAC,SAAS;YAChD,+CAA+C;YAC/C,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO;QACL,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC"}
@@ -48,6 +48,12 @@ export declare class RVGridLayoutManagerImpl extends RVLayoutManager {
48
48
  * @returns The tallest item in the row
49
49
  */
50
50
  private processAndReturnTallestItemInRow;
51
+ /**
52
+ * Computes the total height of the layout.
53
+ * @param index Index of the last item in the layout
54
+ * @returns Total height of the layout
55
+ */
56
+ private computeTotalHeight;
51
57
  /**
52
58
  * Checks if an item can fit within the bounded width.
53
59
  * @param itemX Starting X position of the item
@@ -1 +1 @@
1
- {"version":3,"file":"GridLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/GridLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,iDAAiD;IACjD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAKzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAqB9C;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAU/D;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAS5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAW5B;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqB5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;;;OAMG;IACH,OAAO,CAAC,gCAAgC;IAoDxC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;CAYlC"}
1
+ {"version":3,"file":"GridLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/GridLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,iDAAiD;IACjD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAKzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAqB9C;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAU/D;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAS5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAS5B;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0B5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;;;OAMG;IACH,OAAO,CAAC,gCAAgC;IAoDxC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;CAYlC"}
@@ -78,10 +78,10 @@ var RVGridLayoutManagerImpl = /** @class */ (function (_super) {
78
78
  RVGridLayoutManagerImpl.prototype.getLayoutSize = function () {
79
79
  if (this.layouts.length === 0)
80
80
  return { width: 0, height: 0 };
81
- var lastRowTallestItem = this.processAndReturnTallestItemInRow(this.layouts.length - 1);
81
+ var totalHeight = this.computeTotalHeight(this.layouts.length - 1);
82
82
  return {
83
83
  width: this.boundedSize,
84
- height: lastRowTallestItem.y + lastRowTallestItem.height,
84
+ height: totalHeight,
85
85
  };
86
86
  };
87
87
  /**
@@ -90,14 +90,14 @@ var RVGridLayoutManagerImpl = /** @class */ (function (_super) {
90
90
  * @param endIndex Ending index of items to recompute
91
91
  */
92
92
  RVGridLayoutManagerImpl.prototype.recomputeLayouts = function (startIndex, endIndex) {
93
- var newStartIndex = this.locateFirstNeighbourIndex(startIndex);
93
+ var newStartIndex = this.locateFirstNeighbourIndex(Math.max(0, startIndex - 1));
94
94
  var startVal = this.getLayout(newStartIndex);
95
95
  var startX = startVal.x;
96
96
  var startY = startVal.y;
97
97
  for (var i = newStartIndex; i <= endIndex; i++) {
98
98
  var layout = this.getLayout(i);
99
99
  if (!this.checkBounds(startX, layout.width)) {
100
- var tallestItem = this.processAndReturnTallestItemInRow(i);
100
+ var tallestItem = this.processAndReturnTallestItemInRow(i - 1);
101
101
  startY = tallestItem.y + tallestItem.height;
102
102
  startX = 0;
103
103
  }
@@ -105,6 +105,9 @@ var RVGridLayoutManagerImpl = /** @class */ (function (_super) {
105
105
  layout.y = startY;
106
106
  startX += layout.width;
107
107
  }
108
+ if (endIndex === this.layouts.length - 1) {
109
+ this.processAndReturnTallestItemInRow(endIndex);
110
+ }
108
111
  };
109
112
  /**
110
113
  * Calculates the width of an item based on its span.
@@ -169,6 +172,25 @@ var RVGridLayoutManagerImpl = /** @class */ (function (_super) {
169
172
  }
170
173
  return tallestItem;
171
174
  };
175
+ /**
176
+ * Computes the total height of the layout.
177
+ * @param index Index of the last item in the layout
178
+ * @returns Total height of the layout
179
+ */
180
+ RVGridLayoutManagerImpl.prototype.computeTotalHeight = function (index) {
181
+ var startIndex = this.locateFirstNeighbourIndex(index);
182
+ var y = this.layouts[startIndex].y;
183
+ var maxHeight = 0;
184
+ var i = startIndex;
185
+ while (Math.ceil(this.layouts[i].y) === Math.ceil(y)) {
186
+ maxHeight = Math.max(maxHeight, this.layouts[i].height);
187
+ i++;
188
+ if (i >= this.layouts.length) {
189
+ break;
190
+ }
191
+ }
192
+ return y + maxHeight;
193
+ };
172
194
  /**
173
195
  * Checks if an item can fit within the bounded width.
174
196
  * @param itemX Starting X position of the item
@@ -187,7 +209,7 @@ var RVGridLayoutManagerImpl = /** @class */ (function (_super) {
187
209
  if (startIndex === 0) {
188
210
  return 0;
189
211
  }
190
- var i = startIndex - 1;
212
+ var i = startIndex;
191
213
  for (; i >= 0; i--) {
192
214
  if (this.layouts[i].x === 0) {
193
215
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"GridLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/GridLayoutManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GridLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/GridLayoutManager.ts"],"names":[],"mappings":"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"}
@@ -68,8 +68,8 @@ export declare abstract class RVLayoutManager {
68
68
  /**
69
69
  * Gets indices of items currently visible in the viewport.
70
70
  * Uses binary search for efficient lookup.
71
- * @param unboundDimensionStart Start position of viewport
72
- * @param unboundDimensionEnd End position of viewport
71
+ * @param unboundDimensionStart Start position of viewport (start X or start Y)
72
+ * @param unboundDimensionEnd End position of viewport (end X or end Y)
73
73
  * @returns ConsecutiveNumbers containing visible indices
74
74
  */
75
75
  getVisibleLayouts(unboundDimensionStart: number, unboundDimensionEnd: number): ConsecutiveNumbers;
@@ -77,8 +77,8 @@ var RVLayoutManager = /** @class */ (function () {
77
77
  /**
78
78
  * Gets indices of items currently visible in the viewport.
79
79
  * Uses binary search for efficient lookup.
80
- * @param unboundDimensionStart Start position of viewport
81
- * @param unboundDimensionEnd End position of viewport
80
+ * @param unboundDimensionStart Start position of viewport (start X or start Y)
81
+ * @param unboundDimensionEnd End position of viewport (end X or end Y)
82
82
  * @returns ConsecutiveNumbers containing visible indices
83
83
  */
84
84
  RVLayoutManager.prototype.getVisibleLayouts = function (unboundDimensionStart, unboundDimensionEnd) {