@shopify/flash-list 2.0.0-alpha.9 → 2.0.0-rc.2

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 (180) hide show
  1. package/README.md +37 -97
  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 +15 -8
  10. package/dist/FlashListProps.d.ts.map +1 -1
  11. package/dist/FlashListProps.js.map +1 -1
  12. package/dist/FlashListRef.d.ts +305 -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/MasonryFlashList.js.map +1 -1
  17. package/dist/__tests__/RecyclerView.test.js +62 -27
  18. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  19. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  20. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  21. package/dist/__tests__/RenderStackManager.test.js +486 -0
  22. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  23. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +1 -1
  24. package/dist/__tests__/helpers/createLayoutManager.js +3 -4
  25. package/dist/__tests__/helpers/createLayoutManager.js.map +1 -1
  26. package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
  27. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
  28. package/dist/benchmark/useFlatListBenchmark.js +8 -7
  29. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/native/config/PlatformHelper.android.d.ts +1 -0
  34. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  35. package/dist/native/config/PlatformHelper.android.js +1 -0
  36. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  37. package/dist/native/config/PlatformHelper.d.ts +1 -0
  38. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  39. package/dist/native/config/PlatformHelper.ios.d.ts +1 -0
  40. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  41. package/dist/native/config/PlatformHelper.ios.js +1 -0
  42. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  43. package/dist/native/config/PlatformHelper.js +1 -0
  44. package/dist/native/config/PlatformHelper.js.map +1 -1
  45. package/dist/native/config/PlatformHelper.web.d.ts +1 -0
  46. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  47. package/dist/native/config/PlatformHelper.web.js +1 -0
  48. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  49. package/dist/recyclerview/RecyclerView.d.ts +2 -1
  50. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  51. package/dist/recyclerview/RecyclerView.js +63 -45
  52. package/dist/recyclerview/RecyclerView.js.map +1 -1
  53. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
  54. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  55. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  56. package/dist/recyclerview/RecyclerViewManager.d.ts +21 -7
  57. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  58. package/dist/recyclerview/RecyclerViewManager.js +105 -113
  59. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  60. package/dist/recyclerview/RenderStackManager.d.ts +85 -0
  61. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  62. package/dist/recyclerview/RenderStackManager.js +324 -0
  63. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  64. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  65. package/dist/recyclerview/ViewHolder.js +5 -3
  66. package/dist/recyclerview/ViewHolder.js.map +1 -1
  67. package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
  68. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  69. package/dist/recyclerview/ViewHolderCollection.js +23 -8
  70. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  71. package/dist/recyclerview/components/ScrollAnchor.d.ts +2 -2
  72. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  73. package/dist/recyclerview/components/ScrollAnchor.js +9 -5
  74. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  75. package/dist/recyclerview/components/StickyHeaders.d.ts +1 -1
  76. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  77. package/dist/recyclerview/components/StickyHeaders.js +40 -33
  78. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  79. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +45 -1
  80. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
  81. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +77 -20
  82. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  83. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +10 -0
  84. package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
  85. package/dist/recyclerview/helpers/RenderTimeTracker.js +39 -0
  86. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
  87. package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
  88. package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
  89. package/dist/recyclerview/helpers/VelocityTracker.js +70 -0
  90. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
  91. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
  92. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  93. package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
  94. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  95. package/dist/recyclerview/hooks/useMappingHelper.d.ts +1 -1
  96. package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -1
  97. package/dist/recyclerview/hooks/useMappingHelper.js +1 -1
  98. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  99. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  100. package/dist/recyclerview/hooks/useOnLoad.js +4 -6
  101. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  102. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
  103. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  104. package/dist/recyclerview/hooks/useRecyclerViewController.js +174 -123
  105. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  106. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +2 -0
  107. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  108. package/dist/recyclerview/hooks/useRecyclerViewManager.js +10 -1
  109. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  110. package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
  111. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
  112. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
  113. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
  114. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  115. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
  116. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  117. package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
  118. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  119. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +10 -16
  120. package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
  121. package/dist/recyclerview/layout-managers/LayoutManager.js +4 -14
  122. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/viewability/ViewToken.d.ts +2 -2
  125. package/dist/viewability/ViewToken.d.ts.map +1 -1
  126. package/dist/viewability/ViewabilityHelper.js +1 -1
  127. package/dist/viewability/ViewabilityHelper.js.map +1 -1
  128. package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
  129. package/dist/viewability/ViewabilityManager.js +1 -2
  130. package/dist/viewability/ViewabilityManager.js.map +1 -1
  131. package/jestSetup.js +30 -11
  132. package/package.json +2 -1
  133. package/src/AnimatedFlashList.ts +3 -2
  134. package/src/FlashList.tsx +24 -0
  135. package/src/FlashListProps.ts +20 -8
  136. package/src/FlashListRef.ts +320 -0
  137. package/src/MasonryFlashList.tsx +2 -2
  138. package/src/__tests__/RecyclerView.test.tsx +83 -29
  139. package/src/__tests__/RenderStackManager.test.ts +575 -0
  140. package/src/__tests__/helpers/createLayoutManager.ts +2 -3
  141. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
  142. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  143. package/src/index.ts +1 -0
  144. package/src/native/config/PlatformHelper.android.ts +1 -0
  145. package/src/native/config/PlatformHelper.ios.ts +1 -0
  146. package/src/native/config/PlatformHelper.ts +1 -0
  147. package/src/native/config/PlatformHelper.web.ts +1 -0
  148. package/src/recyclerview/RecyclerView.tsx +82 -52
  149. package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
  150. package/src/recyclerview/RecyclerViewManager.ts +123 -98
  151. package/src/recyclerview/RenderStackManager.ts +291 -0
  152. package/src/recyclerview/ViewHolder.tsx +5 -3
  153. package/src/recyclerview/ViewHolderCollection.tsx +33 -12
  154. package/src/recyclerview/components/ScrollAnchor.tsx +21 -9
  155. package/src/recyclerview/components/StickyHeaders.tsx +63 -45
  156. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +118 -23
  157. package/src/recyclerview/helpers/RenderTimeTracker.ts +38 -0
  158. package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
  159. package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
  160. package/src/recyclerview/hooks/useMappingHelper.ts +1 -1
  161. package/src/recyclerview/hooks/useOnLoad.ts +4 -6
  162. package/src/recyclerview/hooks/useRecyclerViewController.tsx +199 -176
  163. package/src/recyclerview/hooks/useRecyclerViewManager.ts +11 -1
  164. package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
  165. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
  166. package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
  167. package/src/recyclerview/layout-managers/LayoutManager.ts +12 -21
  168. package/src/viewability/ViewToken.ts +2 -2
  169. package/src/viewability/ViewabilityHelper.ts +1 -1
  170. package/src/viewability/ViewabilityManager.ts +6 -3
  171. package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
  172. package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
  173. package/dist/__tests__/RecycleKeyManager.test.js +0 -210
  174. package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
  175. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  176. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  177. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  178. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  179. package/src/__tests__/RecycleKeyManager.test.ts +0 -254
  180. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useBoundDetection = useBoundDetection;
4
4
  var react_1 = require("react");
5
+ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
5
6
  /**
6
7
  * Hook to detect when the scroll position reaches near the start or end of the list
7
8
  * and trigger the appropriate callbacks. This hook is responsible for:
@@ -13,61 +14,61 @@ var react_1 = require("react");
13
14
  * @param props - The RecyclerViewProps containing configuration and callbacks
14
15
  * @param scrollViewRef - Reference to the scrollable container component
15
16
  */
16
- function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
17
+ function useBoundDetection(recyclerViewManager, scrollViewRef) {
17
18
  // Track whether we've already triggered the end reached callback to prevent duplicate calls
18
19
  var pendingEndReached = (0, react_1.useRef)(false);
19
20
  // Track whether we've already triggered the start reached callback to prevent duplicate calls
20
21
  var pendingStartReached = (0, react_1.useRef)(false);
21
22
  // Track whether we should auto-scroll to bottom when new content is added
22
23
  var pendingAutoscrollToBottom = (0, react_1.useRef)(false);
23
- var horizontal = props.horizontal, data = props.data, maintainVisibleContentPosition = props.maintainVisibleContentPosition;
24
+ var data = recyclerViewManager.props.data;
25
+ var requestAnimationFrame = (0, useUnmountAwareCallbacks_1.useUnmountAwareAnimationFrame)().requestAnimationFrame;
24
26
  /**
25
27
  * Checks if the scroll position is near the start or end of the list
26
28
  * and triggers appropriate callbacks if configured.
27
29
  */
28
30
  var checkBounds = (0, react_1.useCallback)(function () {
29
- var _a, _b, _c;
31
+ var _a;
32
+ var _b = recyclerViewManager.props, onEndReached = _b.onEndReached, onStartReached = _b.onStartReached, maintainVisibleContentPosition = _b.maintainVisibleContentPosition, horizontal = _b.horizontal, onEndReachedThresholdProp = _b.onEndReachedThreshold, onStartReachedThresholdProp = _b.onStartReachedThreshold;
30
33
  // Skip all calculations if neither callback is provided and autoscroll is disabled
31
34
  var autoscrollToBottomThreshold = (_a = maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.autoscrollToBottomThreshold) !== null && _a !== void 0 ? _a : -1;
32
- if (!props.onEndReached &&
33
- !props.onStartReached &&
34
- autoscrollToBottomThreshold < 0) {
35
+ if (!onEndReached && !onStartReached && autoscrollToBottomThreshold < 0) {
35
36
  return;
36
37
  }
37
38
  if (recyclerViewManager.getIsFirstLayoutComplete()) {
38
39
  var lastScrollOffset = recyclerViewManager.getAbsoluteLastScrollOffset();
39
40
  var contentSize = recyclerViewManager.getChildContainerDimensions();
40
41
  var windowSize = recyclerViewManager.getWindowSize();
41
- var isHorizontal = props.horizontal === true;
42
+ var isHorizontal = horizontal === true;
42
43
  // Calculate dimensions based on scroll direction
43
44
  var visibleLength = isHorizontal ? windowSize.width : windowSize.height;
44
45
  var contentLength = (isHorizontal ? contentSize.width : contentSize.height) +
45
46
  recyclerViewManager.firstItemOffset;
46
47
  // Check if we're near the end of the list
47
- if (props.onEndReached) {
48
- var onEndReachedThreshold = (_b = props.onEndReachedThreshold) !== null && _b !== void 0 ? _b : 0.5;
48
+ if (onEndReached) {
49
+ var onEndReachedThreshold = onEndReachedThresholdProp !== null && onEndReachedThresholdProp !== void 0 ? onEndReachedThresholdProp : 0.5;
49
50
  var endThresholdDistance = onEndReachedThreshold * visibleLength;
50
51
  var isNearEnd = Math.ceil(lastScrollOffset + visibleLength) >=
51
52
  contentLength - endThresholdDistance;
52
53
  if (isNearEnd && !pendingEndReached.current) {
53
54
  pendingEndReached.current = true;
54
- props.onEndReached();
55
+ onEndReached();
55
56
  }
56
57
  pendingEndReached.current = isNearEnd;
57
58
  }
58
59
  // Check if we're near the start of the list
59
- if (props.onStartReached) {
60
- var onStartReachedThreshold = (_c = props.onStartReachedThreshold) !== null && _c !== void 0 ? _c : 0.2;
60
+ if (onStartReached) {
61
+ var onStartReachedThreshold = onStartReachedThresholdProp !== null && onStartReachedThresholdProp !== void 0 ? onStartReachedThresholdProp : 0.2;
61
62
  var startThresholdDistance = onStartReachedThreshold * visibleLength;
62
63
  var isNearStart = lastScrollOffset <= startThresholdDistance;
63
64
  if (isNearStart && !pendingStartReached.current) {
64
65
  pendingStartReached.current = true;
65
- props.onStartReached();
66
+ onStartReached();
66
67
  }
67
68
  pendingStartReached.current = isNearStart;
68
69
  }
69
70
  // Handle auto-scrolling to bottom for vertical lists
70
- if (!horizontal) {
71
+ if (!isHorizontal) {
71
72
  var autoscrollToBottomThresholdDistance = autoscrollToBottomThreshold * visibleLength;
72
73
  var isNearBottom = Math.ceil(lastScrollOffset + visibleLength) >=
73
74
  contentLength - autoscrollToBottomThresholdDistance;
@@ -79,10 +80,12 @@ function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
79
80
  }
80
81
  }
81
82
  }
82
- }, [recyclerViewManager, props]);
83
+ }, [recyclerViewManager]);
83
84
  // Reset end reached state when data changes
84
85
  (0, react_1.useMemo)(function () {
85
86
  pendingEndReached.current = false;
87
+ // needs to run only when data changes
88
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
89
  }, [data]);
87
90
  // Auto-scroll to bottom when new content is added and we're near the bottom
88
91
  (0, react_1.useEffect)(function () {
@@ -93,7 +96,7 @@ function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
93
96
  pendingAutoscrollToBottom.current = false;
94
97
  });
95
98
  }
96
- }, [data]);
99
+ }, [data, requestAnimationFrame, scrollViewRef]);
97
100
  return {
98
101
  checkBounds: checkBounds,
99
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBoundDetection.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBoundDetection.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@
4
4
  * Using this ensures that performance is optimal for FlashList
5
5
  */
6
6
  export declare const useMappingHelper: () => {
7
- getMappingKey: (index: number, itemKey: string | number | bigint) => string | number | bigint;
7
+ getMappingKey: (itemKey: string | number | bigint, index: number) => string | number | bigint;
8
8
  };
9
9
  //# sourceMappingURL=useMappingHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMappingHelper.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;2BAGjB,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,MAAM;CAOpD,CAAC"}
1
+ {"version":3,"file":"useMappingHelper.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;6BAGf,MAAM,GAAG,MAAM,GAAG,MAAM,SAAS,MAAM;CAOpD,CAAC"}
@@ -10,7 +10,7 @@ var RecyclerViewContextProvider_1 = require("../RecyclerViewContextProvider");
10
10
  */
11
11
  var useMappingHelper = function () {
12
12
  var recyclerViewContext = (0, RecyclerViewContextProvider_1.useRecyclerViewContext)();
13
- var getMappingKey = (0, react_1.useCallback)(function (index, itemKey) {
13
+ var getMappingKey = (0, react_1.useCallback)(function (itemKey, index) {
14
14
  return recyclerViewContext ? index : itemKey;
15
15
  }, [recyclerViewContext]);
16
16
  return { getMappingKey: getMappingKey };
@@ -1 +1 @@
1
- {"version":3,"file":"useMappingHelper.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,8EAAwE;AAExE;;;;GAIG;AACI,IAAM,gBAAgB,GAAG;IAC9B,IAAM,mBAAmB,GAAG,IAAA,oDAAsB,GAAE,CAAC;IACrD,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,KAAa,EAAE,OAAiC;QAC/C,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,OAAO,EAAE,aAAa,eAAA,EAAE,CAAC;AAC3B,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B"}
1
+ {"version":3,"file":"useMappingHelper.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,8EAAwE;AAExE;;;;GAIG;AACI,IAAM,gBAAgB,GAAG;IAC9B,IAAM,mBAAmB,GAAG,IAAA,oDAAsB,GAAE,CAAC;IACrD,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,OAAiC,EAAE,KAAa;QAC/C,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,OAAO,EAAE,aAAa,eAAA,EAAE,CAAC;AAC3B,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnLoad.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,SAAS,CAAC,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,KACnD;IAAE,QAAQ,EAAE,OAAO,CAAA;CAuCrB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,QAAQ,MAAM,IAAI,SAUnB,CAAC"}
1
+ {"version":3,"file":"useOnLoad.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,SAAS,CAAC,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,KACnD;IAAE,QAAQ,EAAE,OAAO,CAAA;CAqCrB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,QAAQ,MAAM,IAAI,SAUnB,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useOnLoad = exports.useOnListLoad = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = require("react");
6
- var useUnmountFlag_1 = require("./useUnmountFlag");
6
+ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
7
7
  // import { ToastAndroid } from "react-native";
8
8
  /**
9
9
  * Hook to track when the RecyclerView has loaded its items and notify when loading is complete.
@@ -19,7 +19,7 @@ var useOnListLoad = function (recyclerViewManager, onLoad) {
19
19
  var _a = tslib_1.__read((0, react_1.useState)(false), 2), isLoaded = _a[0], setIsLoaded = _a[1];
20
20
  var dataLength = recyclerViewManager.getDataLength();
21
21
  // const dataCollector = useRef<number[]>([]);
22
- var isUnmounted = (0, useUnmountFlag_1.useUnmountFlag)();
22
+ var requestAnimationFrame = (0, useUnmountAwareCallbacks_1.useUnmountAwareAnimationFrame)().requestAnimationFrame;
23
23
  // Track render cycles by collecting elapsed time on each render
24
24
  // useEffect(() => {
25
25
  // const elapsedTimeInMs = Date.now() - loadStartTimeRef.current;
@@ -43,10 +43,8 @@ var useOnListLoad = function (recyclerViewManager, onLoad) {
43
43
  // console.log("----------> dataCollector", dataCollectorString);
44
44
  // console.log("----------> FlashList v2 load in", `${elapsedTimeInMs} ms`);
45
45
  requestAnimationFrame(function () {
46
- if (!isUnmounted.current) {
47
- onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs: elapsedTimeInMs });
48
- setIsLoaded(true);
49
- }
46
+ onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs: elapsedTimeInMs });
47
+ setIsLoaded(true);
50
48
  });
51
49
  });
52
50
  return { isLoaded: isLoaded };
@@ -1 +1 @@
1
- {"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":";;;;AAAA,+BAA6D;AAI7D,mDAAkD;AAClD,+CAA+C;AAE/C;;;;;;;;GAQG;AACI,IAAM,aAAa,GAAG,UAC3B,mBAA2C,EAC3C,MAAoD;IAEpD,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAA,KAAA,eAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACzD,IAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;IACvD,8CAA8C;IAC9C,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IACrC,gEAAgE;IAChE,oBAAoB;IACpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,IAAA,eAAO,EAAC;QACN,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,mBAAmB,EAAE;QAC7B,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9D,uDAAuD;QACvD,8CAA8C;QAC9C,oDAAoD;QACpD,uCAAuC;QACvC,iBAAiB;QACjB,sBAAsB;QACtB,kDAAkD;QAClD,uBAAuB;QACvB,KAAK;QACL,iEAAiE;QACjE,4EAA4E;QAC5E,qBAAqB,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC,CAAC;AA1CW,QAAA,aAAa,iBA0CxB;AAEF;;;;;;;GAOG;AACI,IAAM,SAAS,GAAG,UACvB,mBAA2C,EAC3C,MAAkB;IAElB,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAC;IACxC,IAAA,iBAAS,EAAC;QACR,kEAAkE;QAClE,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB"}
1
+ {"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":";;;;AAAA,+BAA6D;AAI7D,uEAA2E;AAC3E,+CAA+C;AAE/C;;;;;;;;GAQG;AACI,IAAM,aAAa,GAAG,UAC3B,mBAA2C,EAC3C,MAAoD;IAEpD,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAA,KAAA,eAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACzD,IAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;IACvD,8CAA8C;IACtC,IAAA,qBAAqB,GAAK,IAAA,wDAA6B,GAAE,sBAApC,CAAqC;IAClE,gEAAgE;IAChE,oBAAoB;IACpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,IAAA,eAAO,EAAC;QACN,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,mBAAmB,EAAE;QAC7B,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9D,uDAAuD;QACvD,8CAA8C;QAC9C,oDAAoD;QACpD,uCAAuC;QACvC,iBAAiB;QACjB,sBAAsB;QACtB,kDAAkD;QAClD,uBAAuB;QACvB,KAAK;QACL,iEAAiE;QACjE,4EAA4E;QAC5E,qBAAqB,CAAC;YACpB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC,CAAC;AAxCW,QAAA,aAAa,iBAwCxB;AAEF;;;;;;;GAOG;AACI,IAAM,SAAS,GAAG,UACvB,mBAA2C,EAC3C,MAAkB;IAElB,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAC;IACxC,IAAA,iBAAS,EAAC;QACR,kEAAkE;QAClE,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB"}
@@ -1,54 +1,8 @@
1
1
  import { RefObject } from "react";
2
- import { RecyclerViewProps } from "../RecyclerViewProps";
2
+ import { FlashListRef } from "../../FlashListRef";
3
3
  import { CompatScroller } from "../components/CompatScroller";
4
4
  import { RecyclerViewManager } from "../RecyclerViewManager";
5
5
  import { ScrollAnchorRef } from "../components/ScrollAnchor";
6
- /**
7
- * Parameters for scrolling to a specific position in the list.
8
- * Extends ScrollToEdgeParams to include view positioning options.
9
- */
10
- export interface ScrollToParams extends ScrollToEdgeParams {
11
- /** Position of the target item relative to the viewport (0 = top, 0.5 = center, 1 = bottom) */
12
- viewPosition?: number;
13
- /** Additional offset to apply after viewPosition calculation */
14
- viewOffset?: number;
15
- }
16
- /**
17
- * Parameters for scrolling to a specific offset in the list.
18
- * Used when you want to scroll to an exact pixel position.
19
- */
20
- export interface ScrollToOffsetParams extends ScrollToParams {
21
- /** The pixel offset to scroll to */
22
- offset: number;
23
- /**
24
- * If true, the first item offset will not be added to the offset calculation.
25
- * First offset represents header size or top padding.
26
- */
27
- skipFirstItemOffset?: boolean;
28
- }
29
- /**
30
- * Parameters for scrolling to a specific index in the list.
31
- * Used when you want to scroll to a specific item by its position in the data array.
32
- */
33
- export interface ScrollToIndexParams extends ScrollToParams {
34
- /** The index of the item to scroll to */
35
- index: number;
36
- }
37
- /**
38
- * Parameters for scrolling to a specific item in the list.
39
- * Used when you want to scroll to a specific item by its data value.
40
- */
41
- export interface ScrollToItemParams<T> extends ScrollToParams {
42
- /** The item to scroll to */
43
- item: T;
44
- }
45
- /**
46
- * Base parameters for scrolling to the edges of the list.
47
- */
48
- export interface ScrollToEdgeParams {
49
- /** Whether the scroll should be animated */
50
- animated?: boolean;
51
- }
52
6
  /**
53
7
  * Comprehensive hook that manages RecyclerView scrolling behavior and provides
54
8
  * imperative methods for controlling the RecyclerView.
@@ -65,8 +19,9 @@ export interface ScrollToEdgeParams {
65
19
  * @param scrollAnchorRef - Reference to the scroll anchor component
66
20
  * @param props - The RecyclerViewProps containing configuration
67
21
  */
68
- export declare function useRecyclerViewController<T>(recyclerViewManager: RecyclerViewManager<T>, ref: React.Ref<any>, scrollViewRef: RefObject<CompatScroller>, scrollAnchorRef: React.RefObject<ScrollAnchorRef>, props: RecyclerViewProps<T>): {
22
+ export declare function useRecyclerViewController<T>(recyclerViewManager: RecyclerViewManager<T>, ref: React.Ref<FlashListRef<T>>, scrollViewRef: RefObject<CompatScroller>, scrollAnchorRef: React.RefObject<ScrollAnchorRef>): {
69
23
  applyContentOffset: () => Promise<void>;
70
24
  applyInitialScrollIndex: () => void;
25
+ handlerMethods: FlashListRef<T>;
71
26
  };
72
27
  //# sourceMappingURL=useRecyclerViewController.d.ts.map
@@ -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,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc;IAC3D,4BAA4B;IAC5B,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EACnB,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EACjD,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;;;EAqa5B"}
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;;;;EA0elD"}