@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
@@ -24,51 +24,19 @@ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
24
24
  * @param scrollAnchorRef - Reference to the scroll anchor component
25
25
  * @param props - The RecyclerViewProps containing configuration
26
26
  */
27
- function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scrollAnchorRef, props) {
27
+ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scrollAnchorRef) {
28
28
  var _this = this;
29
- var _a;
30
- var horizontal = props.horizontal, data = props.data;
29
+ var _a, _b;
31
30
  var isUnmounted = (0, useUnmountFlag_1.useUnmountFlag)();
32
- var _b = tslib_1.__read((0, react_1.useState)(0), 2), _ = _b[0], setRenderId = _b[1];
33
- var pauseAdjustRef = (0, react_1.useRef)(false);
31
+ var _c = tslib_1.__read((0, react_1.useState)(0), 2), _ = _c[0], setRenderId = _c[1];
32
+ var pauseOffsetCorrection = (0, react_1.useRef)(false);
34
33
  var initialScrollCompletedRef = (0, react_1.useRef)(false);
35
- var lastDataLengthRef = (0, react_1.useRef)((_a = data === null || data === void 0 ? void 0 : data.length) !== null && _a !== void 0 ? _a : 0);
36
- var setTimeout = (0, useUnmountAwareCallbacks_1.useUnmountAwareCallbacks)().setTimeout;
34
+ var lastDataLengthRef = (0, react_1.useRef)((_b = (_a = recyclerViewManager.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
35
+ var setTimeout = (0, useUnmountAwareCallbacks_1.useUnmountAwareTimeout)().setTimeout;
37
36
  // Track the first visible item for maintaining scroll position
38
37
  var firstVisibleItemKey = (0, react_1.useRef)(undefined);
39
38
  var firstVisibleItemLayout = (0, react_1.useRef)(undefined);
40
39
  var pendingScrollResolves = (0, react_1.useRef)([]);
41
- var applyInitialScrollIndex = (0, react_1.useCallback)(function () {
42
- var _a, _b, _c;
43
- var initialScrollIndex = (_a = recyclerViewManager.getInitialScrollIndex()) !== null && _a !== void 0 ? _a : -1;
44
- var dataLength = (_c = (_b = props.data) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
45
- if (initialScrollIndex >= 0 &&
46
- initialScrollIndex < dataLength &&
47
- !initialScrollCompletedRef.current &&
48
- recyclerViewManager.getIsFirstLayoutComplete()) {
49
- // Use setTimeout to ensure that we keep trying to scroll on first few renders
50
- setTimeout(function () {
51
- initialScrollCompletedRef.current = true;
52
- pauseAdjustRef.current = false;
53
- }, 100);
54
- pauseAdjustRef.current = true;
55
- var offset_1 = horizontal
56
- ? recyclerViewManager.getLayout(initialScrollIndex).x
57
- : recyclerViewManager.getLayout(initialScrollIndex).y;
58
- handlerMethods.scrollToOffset({
59
- offset: offset_1,
60
- animated: false,
61
- skipFirstItemOffset: false,
62
- });
63
- setTimeout(function () {
64
- handlerMethods.scrollToOffset({
65
- offset: offset_1,
66
- animated: false,
67
- skipFirstItemOffset: false,
68
- });
69
- }, 0);
70
- }
71
- }, [recyclerViewManager, props.data]);
72
40
  // Handle initial scroll position when the list first loads
73
41
  // useOnLoad(recyclerViewManager, () => {
74
42
  // });
@@ -97,48 +65,56 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
97
65
  * the user's current view position when new messages are added.
98
66
  */
99
67
  var applyContentOffset = (0, react_1.useCallback)(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
100
- var resolves, currentDataLength, hasDataChanged, currentIndexOfFirstVisibleItem, diff, firstVisibleIndex;
101
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
102
- return tslib_1.__generator(this, function (_k) {
68
+ var _a, horizontal, data, keyExtractor, resolves, currentDataLength, hasDataChanged, currentIndexOfFirstVisibleItem, diff, scrollToParams, firstVisibleIndex;
69
+ var _b, _c, _d, _e, _f;
70
+ return tslib_1.__generator(this, function (_g) {
71
+ _a = recyclerViewManager.props, horizontal = _a.horizontal, data = _a.data, keyExtractor = _a.keyExtractor;
103
72
  resolves = pendingScrollResolves.current;
104
73
  pendingScrollResolves.current = [];
105
74
  resolves.forEach(function (resolve) { return resolve(); });
106
- currentDataLength = (_b = (_a = props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
107
- if (!props.horizontal &&
108
- recyclerViewManager.getIsFirstLayoutComplete() &&
109
- props.keyExtractor &&
75
+ currentDataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
76
+ if (recyclerViewManager.getIsFirstLayoutComplete() &&
77
+ keyExtractor &&
110
78
  currentDataLength > 0 &&
111
- ((_c = props.maintainVisibleContentPosition) === null || _c === void 0 ? void 0 : _c.disabled) !== true) {
79
+ recyclerViewManager.shouldMaintainVisibleContentPosition()) {
112
80
  hasDataChanged = currentDataLength !== lastDataLengthRef.current;
113
81
  // If we have a tracked first visible item, maintain its position
114
82
  if (firstVisibleItemKey.current) {
115
- currentIndexOfFirstVisibleItem = (_d = recyclerViewManager
83
+ currentIndexOfFirstVisibleItem = (_c = recyclerViewManager
116
84
  .getEngagedIndices()
117
85
  .findValue(function (index) {
118
- var _a;
119
- return ((_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, props.data[index], index)) ===
86
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(data[index], index)) ===
120
87
  firstVisibleItemKey.current;
121
- })) !== null && _d !== void 0 ? _d : (hasDataChanged
122
- ? (_e = props.data) === null || _e === void 0 ? void 0 : _e.findIndex(function (item, index) {
123
- var _a;
124
- return ((_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, item, index)) ===
125
- firstVisibleItemKey.current;
88
+ })) !== null && _c !== void 0 ? _c : (hasDataChanged
89
+ ? data === null || data === void 0 ? void 0 : data.findIndex(function (item, index) {
90
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, index)) === firstVisibleItemKey.current;
126
91
  })
127
92
  : undefined);
128
- if (currentIndexOfFirstVisibleItem !== undefined) {
129
- diff = recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).y -
130
- firstVisibleItemLayout.current.y;
93
+ if (currentIndexOfFirstVisibleItem !== undefined &&
94
+ currentIndexOfFirstVisibleItem >= 0) {
95
+ diff = horizontal
96
+ ? recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).x -
97
+ firstVisibleItemLayout.current.x
98
+ : recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem).y -
99
+ firstVisibleItemLayout.current.y;
131
100
  firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(currentIndexOfFirstVisibleItem));
132
- if (diff !== 0 && !pauseAdjustRef.current) {
101
+ if (diff !== 0 && !pauseOffsetCorrection.current) {
133
102
  // console.log("diff", diff, firstVisibleItemKey.current);
134
103
  if (PlatformHelper_1.PlatformConfig.supportsOffsetCorrection) {
135
- (_f = scrollAnchorRef.current) === null || _f === void 0 ? void 0 : _f.scrollBy(diff);
104
+ // console.log("scrollBy", diff);
105
+ (_d = scrollAnchorRef.current) === null || _d === void 0 ? void 0 : _d.scrollBy(diff);
136
106
  }
137
107
  else {
138
- (_g = scrollViewRef.current) === null || _g === void 0 ? void 0 : _g.scrollTo({
139
- y: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
140
- animated: false,
141
- });
108
+ scrollToParams = horizontal
109
+ ? {
110
+ x: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
111
+ animated: false,
112
+ }
113
+ : {
114
+ y: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
115
+ animated: false,
116
+ };
117
+ (_e = scrollViewRef.current) === null || _e === void 0 ? void 0 : _e.scrollTo(scrollToParams);
142
118
  }
143
119
  if (hasDataChanged) {
144
120
  updateScrollOffsetAsync(recyclerViewManager.getAbsoluteLastScrollOffset() + diff);
@@ -150,25 +126,34 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
150
126
  }
151
127
  }
152
128
  }
153
- firstVisibleIndex = Math.max(0, recyclerViewManager.getVisibleIndices().startIndex);
129
+ firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
154
130
  if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
155
- firstVisibleItemKey.current = props.keyExtractor(props.data[firstVisibleIndex], firstVisibleIndex);
131
+ firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
156
132
  firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
157
133
  }
158
134
  }
159
- lastDataLengthRef.current = (_j = (_h = props.data) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0;
135
+ lastDataLengthRef.current = (_f = data === null || data === void 0 ? void 0 : data.length) !== null && _f !== void 0 ? _f : 0;
160
136
  return [2 /*return*/];
161
137
  });
162
- }); }, [props.data, props.keyExtractor, recyclerViewManager, setTimeout]);
138
+ }); }, [
139
+ recyclerViewManager,
140
+ scrollAnchorRef,
141
+ scrollViewRef,
142
+ setTimeout,
143
+ updateScrollOffsetAsync,
144
+ ]);
163
145
  var handlerMethods = (0, react_1.useMemo)(function () {
164
146
  return {
165
- props: props,
147
+ get props() {
148
+ return recyclerViewManager.props;
149
+ },
166
150
  /**
167
151
  * Scrolls the list to a specific offset position.
168
152
  * Handles RTL layouts and first item offset adjustments.
169
153
  */
170
154
  scrollToOffset: function (_a) {
171
155
  var offset = _a.offset, animated = _a.animated, _b = _a.skipFirstItemOffset, skipFirstItemOffset = _b === void 0 ? true : _b;
156
+ var horizontal = recyclerViewManager.props.horizontal;
172
157
  if (scrollViewRef.current) {
173
158
  // Adjust offset for RTL layouts in horizontal mode
174
159
  if (react_native_1.I18nManager.isRTL && horizontal) {
@@ -188,6 +173,9 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
188
173
  scrollViewRef.current.scrollTo(tslib_1.__assign(tslib_1.__assign({}, scrollTo_1), { animated: animated }));
189
174
  }
190
175
  },
176
+ clearLayoutCacheOnUpdate: function () {
177
+ recyclerViewManager.markLayoutManagerDirty();
178
+ },
191
179
  // Expose native scroll view methods
192
180
  flashScrollIndicators: function () {
193
181
  scrollViewRef.current.flashScrollIndicators();
@@ -210,10 +198,12 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
210
198
  args_1[_i] = arguments[_i];
211
199
  }
212
200
  return tslib_1.__awaiter(_this, tslib_1.__spreadArray([], tslib_1.__read(args_1), false), void 0, function (_a) {
201
+ var data;
213
202
  var _b = _a === void 0 ? {} : _a, animated = _b.animated;
214
203
  return tslib_1.__generator(this, function (_c) {
215
204
  switch (_c.label) {
216
205
  case 0:
206
+ data = recyclerViewManager.props.data;
217
207
  if (!(data && data.length > 0)) return [3 /*break*/, 2];
218
208
  return [4 /*yield*/, handlerMethods.scrollToIndex({
219
209
  index: data.length - 1,
@@ -223,7 +213,9 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
223
213
  _c.sent();
224
214
  _c.label = 2;
225
215
  case 2:
226
- scrollViewRef.current.scrollToEnd({ animated: animated });
216
+ setTimeout(function () {
217
+ scrollViewRef.current.scrollToEnd({ animated: animated });
218
+ }, 0);
227
219
  return [2 /*return*/];
228
220
  }
229
221
  });
@@ -244,14 +236,19 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
244
236
  * Supports viewPosition and viewOffset for precise positioning.
245
237
  */
246
238
  scrollToIndex: function (_a) { return tslib_1.__awaiter(_this, [_a], void 0, function (_b) {
247
- var getFinalOffset, lastScrollOffset, finalOffset, bufferForScroll, bufferForCompute, i, i, maxOffset;
239
+ var horizontal, getFinalOffset_1, lastAbsoluteScrollOffset_1, bufferForScroll, bufferForCompute_1, getStartScrollOffset, initialTargetOffset, initialStartScrollOffset, finalOffset, startScrollOffset, steps, i, nextOffset, newFinalOffset, maxOffset;
248
240
  var index = _b.index, animated = _b.animated, viewPosition = _b.viewPosition, viewOffset = _b.viewOffset;
249
241
  return tslib_1.__generator(this, function (_c) {
250
242
  switch (_c.label) {
251
243
  case 0:
252
- if (!(scrollViewRef.current && data && data.length > index)) return [3 /*break*/, 10];
253
- pauseAdjustRef.current = true;
254
- getFinalOffset = function () {
244
+ horizontal = recyclerViewManager.props.horizontal;
245
+ if (!(scrollViewRef.current &&
246
+ index >= 0 &&
247
+ index < recyclerViewManager.getDataLength())) return [3 /*break*/, 5];
248
+ // Pause the scroll offset adjustments
249
+ pauseOffsetCorrection.current = true;
250
+ recyclerViewManager.setOffsetProjectionEnabled(false);
251
+ getFinalOffset_1 = function () {
255
252
  var layout = recyclerViewManager.getLayout(index);
256
253
  var offset = horizontal ? layout.x : layout.y;
257
254
  var finalOffset = offset;
@@ -270,77 +267,92 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
270
267
  finalOffset += viewOffset;
271
268
  }
272
269
  }
273
- return finalOffset;
270
+ return finalOffset + recyclerViewManager.firstItemOffset;
274
271
  };
275
- lastScrollOffset = recyclerViewManager.getLastScrollOffset();
276
- finalOffset = getFinalOffset();
272
+ lastAbsoluteScrollOffset_1 = recyclerViewManager.getAbsoluteLastScrollOffset();
277
273
  bufferForScroll = horizontal
278
274
  ? recyclerViewManager.getWindowSize().width
279
275
  : recyclerViewManager.getWindowSize().height;
280
- bufferForCompute = bufferForScroll * 2;
281
- if (finalOffset > lastScrollOffset) {
282
- lastScrollOffset = Math.max(finalOffset - bufferForCompute, lastScrollOffset);
283
- recyclerViewManager.setScrollDirection("forward");
284
- }
285
- else {
286
- lastScrollOffset = Math.min(finalOffset + bufferForCompute, lastScrollOffset);
287
- recyclerViewManager.setScrollDirection("backward");
288
- }
289
- if (!animated) return [3 /*break*/, 5];
276
+ bufferForCompute_1 = bufferForScroll * 2;
277
+ getStartScrollOffset = function () {
278
+ var lastScrollOffset = lastAbsoluteScrollOffset_1;
279
+ var finalOffset = getFinalOffset_1();
280
+ if (finalOffset > lastScrollOffset) {
281
+ lastScrollOffset = Math.max(finalOffset - bufferForCompute_1, lastScrollOffset);
282
+ recyclerViewManager.setScrollDirection("forward");
283
+ }
284
+ else {
285
+ lastScrollOffset = Math.min(finalOffset + bufferForCompute_1, lastScrollOffset);
286
+ recyclerViewManager.setScrollDirection("backward");
287
+ }
288
+ return lastScrollOffset;
289
+ };
290
+ initialTargetOffset = getFinalOffset_1();
291
+ initialStartScrollOffset = getStartScrollOffset();
292
+ finalOffset = initialTargetOffset;
293
+ startScrollOffset = initialStartScrollOffset;
294
+ steps = 5;
290
295
  i = 0;
291
296
  _c.label = 1;
292
297
  case 1:
293
- if (!(i < 5)) return [3 /*break*/, 4];
298
+ if (!(i < steps)) return [3 /*break*/, 4];
294
299
  if (isUnmounted.current) {
295
300
  return [2 /*return*/];
296
301
  }
297
- return [4 /*yield*/, updateScrollOffsetAsync(finalOffset + (lastScrollOffset - finalOffset) * (i / 4))];
302
+ nextOffset = animated
303
+ ? finalOffset +
304
+ (startScrollOffset - finalOffset) * (i / (steps - 1))
305
+ : startScrollOffset +
306
+ (finalOffset - startScrollOffset) * (i / (steps - 1));
307
+ return [4 /*yield*/, updateScrollOffsetAsync(nextOffset)];
298
308
  case 2:
299
309
  _c.sent();
310
+ // In case some change happens in the middle of this operation
311
+ // and the index is out of bounds, scroll to the end
312
+ if (index >= recyclerViewManager.getDataLength()) {
313
+ handlerMethods.scrollToEnd({ animated: animated });
314
+ return [2 /*return*/];
315
+ }
316
+ newFinalOffset = getFinalOffset_1();
317
+ if ((newFinalOffset < initialTargetOffset &&
318
+ newFinalOffset < initialStartScrollOffset) ||
319
+ (newFinalOffset > initialTargetOffset &&
320
+ newFinalOffset > initialStartScrollOffset)) {
321
+ finalOffset = newFinalOffset;
322
+ startScrollOffset = getStartScrollOffset();
323
+ initialTargetOffset = newFinalOffset;
324
+ initialStartScrollOffset = startScrollOffset;
325
+ i = -1; // Restart compute loop
326
+ }
300
327
  _c.label = 3;
301
328
  case 3:
302
329
  i++;
303
330
  return [3 /*break*/, 1];
304
- case 4: return [3 /*break*/, 9];
305
- case 5:
306
- i = 0;
307
- _c.label = 6;
308
- case 6:
309
- if (!(i < 5)) return [3 /*break*/, 9];
310
- if (isUnmounted.current) {
311
- return [2 /*return*/];
312
- }
313
- return [4 /*yield*/, updateScrollOffsetAsync(lastScrollOffset + (finalOffset - lastScrollOffset) * (i / 4))];
314
- case 7:
315
- _c.sent();
316
- _c.label = 8;
317
- case 8:
318
- i++;
319
- return [3 /*break*/, 6];
320
- case 9:
321
- finalOffset = getFinalOffset();
331
+ case 4:
332
+ finalOffset = getFinalOffset_1();
322
333
  maxOffset = recyclerViewManager.getMaxScrollOffset();
323
334
  if (finalOffset > maxOffset) {
324
335
  finalOffset = maxOffset;
325
336
  }
326
337
  if (animated) {
327
- // We don't need to add firstItemOffset here as it will be added in scrollToOffset
338
+ // We don't need to add firstItemOffset here as it's already added
328
339
  handlerMethods.scrollToOffset({
329
- offset: lastScrollOffset,
340
+ offset: startScrollOffset,
330
341
  animated: false,
331
- skipFirstItemOffset: false,
342
+ skipFirstItemOffset: true,
332
343
  });
333
344
  }
334
345
  handlerMethods.scrollToOffset({
335
346
  offset: finalOffset,
336
347
  animated: animated,
337
- skipFirstItemOffset: false,
348
+ skipFirstItemOffset: true,
338
349
  });
339
350
  setTimeout(function () {
340
- pauseAdjustRef.current = false;
341
- }, 200);
342
- _c.label = 10;
343
- case 10: return [2 /*return*/];
351
+ pauseOffsetCorrection.current = false;
352
+ recyclerViewManager.setOffsetProjectionEnabled(true);
353
+ }, animated ? 300 : 200);
354
+ _c.label = 5;
355
+ case 5: return [2 /*return*/];
344
356
  }
345
357
  });
346
358
  }); },
@@ -350,9 +362,10 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
350
362
  */
351
363
  scrollToItem: function (_a) {
352
364
  var item = _a.item, animated = _a.animated, viewPosition = _a.viewPosition, viewOffset = _a.viewOffset;
365
+ var data = recyclerViewManager.props.data;
353
366
  if (scrollViewRef.current && data) {
354
367
  // Find the index of the item in the data array
355
- var index = Array.from(data).findIndex(function (dataItem) { return dataItem === item; });
368
+ var index = data.findIndex(function (dataItem) { return dataItem === item; });
356
369
  if (index >= 0) {
357
370
  handlerMethods.scrollToIndex({
358
371
  index: index,
@@ -371,7 +384,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
371
384
  return recyclerViewManager.getWindowSize();
372
385
  },
373
386
  getLayout: function (index) {
374
- return recyclerViewManager.getLayout(index);
387
+ return recyclerViewManager.tryGetLayout(index);
375
388
  },
376
389
  getAbsoluteLastScrollOffset: function () {
377
390
  return recyclerViewManager.getAbsoluteLastScrollOffset();
@@ -382,11 +395,11 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
382
395
  recordInteraction: function () {
383
396
  recyclerViewManager.recordInteraction();
384
397
  },
385
- getVisibleIndices: function () {
386
- return recyclerViewManager.getVisibleIndices();
398
+ computeVisibleIndices: function () {
399
+ return recyclerViewManager.computeVisibleIndices();
387
400
  },
388
401
  getFirstVisibleIndex: function () {
389
- return recyclerViewManager.getVisibleIndices().startIndex;
402
+ return recyclerViewManager.computeVisibleIndices().startIndex;
390
403
  },
391
404
  recomputeViewableItems: function () {
392
405
  recyclerViewManager.recomputeViewableItems();
@@ -395,14 +408,52 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
395
408
  * Disables item recycling in preparation for layout animations.
396
409
  */
397
410
  prepareForLayoutAnimationRender: function () {
398
- recyclerViewManager.disableRecycling = true;
411
+ recyclerViewManager.disableRecycling(true);
399
412
  },
400
413
  };
401
- }, [horizontal, data, recyclerViewManager]);
414
+ }, [
415
+ recyclerViewManager,
416
+ scrollViewRef,
417
+ setTimeout,
418
+ isUnmounted,
419
+ updateScrollOffsetAsync,
420
+ ]);
421
+ var applyInitialScrollIndex = (0, react_1.useCallback)(function () {
422
+ var _a, _b;
423
+ var _c = recyclerViewManager.props, horizontal = _c.horizontal, data = _c.data;
424
+ var initialScrollIndex = (_a = recyclerViewManager.getInitialScrollIndex()) !== null && _a !== void 0 ? _a : -1;
425
+ var dataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
426
+ if (initialScrollIndex >= 0 &&
427
+ initialScrollIndex < dataLength &&
428
+ !initialScrollCompletedRef.current &&
429
+ recyclerViewManager.getIsFirstLayoutComplete()) {
430
+ // Use setTimeout to ensure that we keep trying to scroll on first few renders
431
+ setTimeout(function () {
432
+ initialScrollCompletedRef.current = true;
433
+ pauseOffsetCorrection.current = false;
434
+ }, 100);
435
+ pauseOffsetCorrection.current = true;
436
+ var offset_1 = horizontal
437
+ ? recyclerViewManager.getLayout(initialScrollIndex).x
438
+ : recyclerViewManager.getLayout(initialScrollIndex).y;
439
+ handlerMethods.scrollToOffset({
440
+ offset: offset_1,
441
+ animated: false,
442
+ skipFirstItemOffset: false,
443
+ });
444
+ setTimeout(function () {
445
+ handlerMethods.scrollToOffset({
446
+ offset: offset_1,
447
+ animated: false,
448
+ skipFirstItemOffset: false,
449
+ });
450
+ }, 0);
451
+ }
452
+ }, [handlerMethods, recyclerViewManager, setTimeout]);
402
453
  // Expose imperative methods through the ref
403
454
  (0, react_1.useImperativeHandle)(ref, function () {
404
455
  return tslib_1.__assign(tslib_1.__assign({}, scrollViewRef.current), handlerMethods);
405
- }, [handlerMethods]);
406
- return { applyContentOffset: applyContentOffset, applyInitialScrollIndex: applyInitialScrollIndex };
456
+ }, [handlerMethods, scrollViewRef]);
457
+ return { applyContentOffset: applyContentOffset, applyInitialScrollIndex: applyInitialScrollIndex, handlerMethods: handlerMethods };
407
458
  }
408
459
  //# sourceMappingURL=useRecyclerViewController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":";;AAwFA,8DA0aC;;AAlgBD,+BAOe;AACf,6CAA2C;AAK3C,kEAAiE;AAGjE,qEAAoE;AAEpE,mDAAkD;AAClD,uEAAsE;AAqDtE;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,yBAAyB,CACvC,mBAA2C,EAC3C,GAAmB,EACnB,aAAwC,EACxC,eAAiD,EACjD,KAA2B;IAL7B,iBA0aC;;IAnaS,IAAA,UAAU,GAAW,KAAK,WAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IACnC,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IAC/B,IAAA,KAAA,eAAmB,IAAA,gBAAQ,EAAC,CAAC,CAAC,IAAA,EAA7B,CAAC,QAAA,EAAE,WAAW,QAAe,CAAC;IACrC,IAAM,cAAc,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACrC,IAAM,yBAAyB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAChD,IAAM,iBAAiB,GAAG,IAAA,cAAM,EAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC,CAAC;IAC5C,IAAA,UAAU,GAAK,IAAA,mDAAwB,GAAE,WAA/B,CAAgC;IAElD,+DAA+D;IAC/D,IAAM,mBAAmB,GAAG,IAAA,cAAM,EAAqB,SAAS,CAAC,CAAC;IAClE,IAAM,sBAAsB,GAAG,IAAA,cAAM,EAAuB,SAAS,CAAC,CAAC;IACvE,IAAM,qBAAqB,GAAG,IAAA,cAAM,EAAiB,EAAE,CAAC,CAAC;IAEzD,IAAM,uBAAuB,GAAG,IAAA,mBAAW,EAAC;;QAC1C,IAAM,kBAAkB,GACtB,MAAA,mBAAmB,CAAC,qBAAqB,EAAE,mCAAI,CAAC,CAAC,CAAC;QACpD,IAAM,UAAU,GAAG,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAC3C,IACE,kBAAkB,IAAI,CAAC;YACvB,kBAAkB,GAAG,UAAU;YAC/B,CAAC,yBAAyB,CAAC,OAAO;YAClC,mBAAmB,CAAC,wBAAwB,EAAE,EAC9C,CAAC;YACD,8EAA8E;YAC9E,UAAU,CAAC;gBACT,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC;gBACzC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAE9B,IAAM,QAAM,GAAG,UAAU;gBACvB,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACxD,cAAc,CAAC,cAAc,CAAC;gBAC5B,MAAM,UAAA;gBACN,QAAQ,EAAE,KAAK;gBACf,mBAAmB,EAAE,KAAK;aAC3B,CAAC,CAAC;YAEH,UAAU,CAAC;gBACT,cAAc,CAAC,cAAc,CAAC;oBAC5B,MAAM,UAAA;oBACN,QAAQ,EAAE,KAAK;oBACf,mBAAmB,EAAE,KAAK;iBAC3B,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,2DAA2D;IAC3D,2CAA2C;IAE3C,QAAQ;IACR;;;OAGG;IACH,IAAM,uBAAuB,GAAG,IAAA,mBAAW,EACzC,UAAO,MAAc;;YACnB,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;oBACzB,sDAAsD;oBACtD,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;wBACjE,wCAAwC;wBACxC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC5C,WAAW,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,EAAC;;SACJ,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF;;;;OAIG;IACH,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC;;;;YAE/B,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC;YAC/C,qBAAqB,CAAC,OAAO,GAAG,EAAE,CAAC;YACnC,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,CAAC;YAEnC,iBAAiB,GAAG,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC;YAElD,IACE,CAAC,KAAK,CAAC,UAAU;gBACjB,mBAAmB,CAAC,wBAAwB,EAAE;gBAC9C,KAAK,CAAC,YAAY;gBAClB,iBAAiB,GAAG,CAAC;gBACrB,CAAA,MAAA,KAAK,CAAC,8BAA8B,0CAAE,QAAQ,MAAK,IAAI,EACvD,CAAC;gBACK,cAAc,GAAG,iBAAiB,KAAK,iBAAiB,CAAC,OAAO,CAAC;gBACvE,iEAAiE;gBACjE,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;oBAC1B,8BAA8B,GAClC,MAAA,mBAAmB;yBAChB,iBAAiB,EAAE;yBACnB,SAAS,CACR,UAAC,KAAK;;wBACJ,OAAA,CAAA,MAAA,KAAK,CAAC,YAAY,sDAAG,KAAK,CAAC,IAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;4BAC/C,mBAAmB,CAAC,OAAO,CAAA;qBAAA,CAC9B,mCACH,CAAC,cAAc;wBACb,CAAC,CAAC,MAAA,KAAK,CAAC,IAAI,0CAAE,SAAS,CACnB,UAAC,IAAI,EAAE,KAAK;;4BACV,OAAA,CAAA,MAAA,KAAK,CAAC,YAAY,sDAAG,IAAI,EAAE,KAAK,CAAC;gCACjC,mBAAmB,CAAC,OAAO,CAAA;yBAAA,CAC9B;wBACH,CAAC,CAAC,SAAS,CAAC,CAAC;oBAEjB,IAAI,8BAA8B,KAAK,SAAS,EAAE,CAAC;wBAE3C,IAAI,GACR,mBAAmB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;4BAC/D,sBAAsB,CAAC,OAAQ,CAAC,CAAC,CAAC;wBACpC,sBAAsB,CAAC,OAAO,wBACzB,mBAAmB,CAAC,SAAS,CAAC,8BAA8B,CAAC,CACjE,CAAC;wBACF,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;4BAC1C,0DAA0D;4BAC1D,IAAI,+BAAc,CAAC,wBAAwB,EAAE,CAAC;gCAC5C,MAAA,eAAe,CAAC,OAAO,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC1C,CAAC;iCAAM,CAAC;gCACN,MAAA,aAAa,CAAC,OAAO,0CAAE,QAAQ,CAAC;oCAC9B,CAAC,EAAE,mBAAmB,CAAC,2BAA2B,EAAE,GAAG,IAAI;oCAC3D,QAAQ,EAAE,KAAK;iCAChB,CAAC,CAAC;4BACL,CAAC;4BACD,IAAI,cAAc,EAAE,CAAC;gCACnB,uBAAuB,CACrB,mBAAmB,CAAC,2BAA2B,EAAE,GAAG,IAAI,CACzD,CAAC;gCACF,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC;gCAC9C,UAAU,CAAC;oCACT,mBAAmB,CAAC,kBAAkB,GAAG,KAAK,CAAC;gCACjD,CAAC,EAAE,GAAG,CAAC,CAAC;4BACV,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAGK,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAChC,CAAC,EACD,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,UAAU,CACnD,CAAC;gBACF,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;oBAC9D,mBAAmB,CAAC,OAAO,GAAG,KAAK,CAAC,YAAY,CAC9C,KAAK,CAAC,IAAK,CAAC,iBAAiB,CAAC,EAC9B,iBAAiB,CAClB,CAAC;oBACF,sBAAsB,CAAC,OAAO,wBACzB,mBAAmB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CACpD,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,iBAAiB,CAAC,OAAO,GAAG,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC;;;SACrD,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtE,IAAM,cAAc,GAAG,IAAA,eAAO,EAAC;QAC7B,OAAO;YACL,KAAK,OAAA;YACL;;;eAGG;YACH,cAAc,EAAE,UAAC,EAIM;oBAHrB,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA;gBAE1B,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC1B,mDAAmD;oBACnD,IAAI,0BAAW,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;wBACpC,6CAA6C;wBAC7C,MAAM;4BACJ,IAAA,uCAAkB,EAChB,MAAM,EACN,mBAAmB,CAAC,2BAA2B,EAAE,CAAC,KAAK,EACvD,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK,CAC1C;gCACD,CAAC,mBAAmB;oCAClB,CAAC,CAAC,mBAAmB,CAAC,eAAe;oCACrC,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAC9C,CAAC;oBAED,mEAAmE;oBACnE,IAAM,cAAc,GAClB,MAAM;wBACN,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;oBAClE,IAAM,UAAQ,GAAG,UAAU;wBACzB,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE;wBAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;oBAChC,aAAa,CAAC,OAAO,CAAC,QAAQ,uCACzB,UAAQ,KACX,QAAQ,UAAA,IACR,CAAC;gBACL,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,qBAAqB,EAAE;gBACrB,aAAa,CAAC,OAAQ,CAAC,qBAAqB,EAAE,CAAC;YACjD,CAAC;YACD,kBAAkB,EAAE;gBAClB,OAAO,aAAa,CAAC,OAAO,CAAC;YAC/B,CAAC;YACD,kBAAkB,EAAE;gBAClB,OAAO,aAAa,CAAC,OAAQ,CAAC,kBAAkB,EAAE,CAAC;YACrD,CAAC;YACD,iBAAiB,EAAE;gBACjB,OAAO,aAAa,CAAC,OAAQ,CAAC,iBAAiB,EAAE,CAAC;YACpD,CAAC;YAED;;eAEG;YACH,WAAW,EAAE;;;;;4HAAO,EAAqC;wBAArC,qBAAmC,EAAE,KAAA,EAAnC,QAAQ,cAAA;;;;qCACxB,CAAA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA,EAAvB,wBAAuB;gCACzB,qBAAM,cAAc,CAAC,aAAa,CAAC;wCACjC,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;wCACtB,QAAQ,UAAA;qCACT,CAAC,EAAA;;gCAHF,SAGE,CAAC;;;gCAEL,aAAa,CAAC,OAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;;;;;aAClD;YAED;;eAEG;YACH,WAAW,EAAE,UAAC,EAAqC;oBAArC,qBAAmC,EAAE,KAAA,EAAnC,QAAQ,cAAA;gBACtB,cAAc,CAAC,cAAc,CAAC;oBAC5B,MAAM,EAAE,CAAC;oBACT,QAAQ,UAAA;iBACT,CAAC,CAAC;YACL,CAAC;YAED;;;eAGG;YACH,aAAa,EAAE,wEAAO,EAKA;;oBAJpB,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,UAAU,gBAAA;;;;iCAEN,CAAA,aAAa,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,EAApD,yBAAoD;4BACtD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;4BAExB,cAAc,GAAG;gCACrB,IAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gCACpD,IAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gCAChD,IAAI,WAAW,GAAG,MAAM,CAAC;gCACzB,qCAAqC;gCACrC,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oCAC3D,IAAM,aAAa,GAAG,UAAU;wCAC9B,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK;wCAC3C,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;oCAE/C,IAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oCAE3D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wCAC/B,kDAAkD;wCAClD,WAAW;4CACT,MAAM,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,YAAY,CAAC;oCACvD,CAAC;oCAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wCAC7B,WAAW,IAAI,UAAU,CAAC;oCAC5B,CAAC;gCACH,CAAC;gCACD,OAAO,WAAW,CAAC;4BACrB,CAAC,CAAC;4BACE,gBAAgB,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;4BAC7D,WAAW,GAAG,cAAc,EAAE,CAAC;4BAC7B,eAAe,GAAG,UAAU;gCAChC,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK;gCAC3C,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;4BAEzC,gBAAgB,GAAG,eAAe,GAAG,CAAC,CAAC;4BAE7C,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;gCACnC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,WAAW,GAAG,gBAAgB,EAC9B,gBAAgB,CACjB,CAAC;gCACF,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;4BACpD,CAAC;iCAAM,CAAC;gCACN,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,WAAW,GAAG,gBAAgB,EAC9B,gBAAgB,CACjB,CAAC;gCACF,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;4BACrD,CAAC;iCAEG,QAAQ,EAAR,wBAAQ;4BAED,CAAC,GAAG,CAAC;;;iCAAE,CAAA,CAAC,GAAG,CAAC,CAAA;4BACnB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxB,sBAAO;4BACT,CAAC;4BACD,qBAAM,uBAAuB,CAC3B,WAAW,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CACzD,EAAA;;4BAFD,SAEC,CAAC;;;4BANmB,CAAC,EAAE,CAAA;;;;4BAUjB,CAAC,GAAG,CAAC;;;iCAAE,CAAA,CAAC,GAAG,CAAC,CAAA;4BACnB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxB,sBAAO;4BACT,CAAC;4BACD,qBAAM,uBAAuB,CAC3B,gBAAgB,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAC9D,EAAA;;4BAFD,SAEC,CAAC;;;4BANmB,CAAC,EAAE,CAAA;;;4BAS5B,WAAW,GAAG,cAAc,EAAE,CAAC;4BACzB,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;4BAE3D,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;gCAC5B,WAAW,GAAG,SAAS,CAAC;4BAC1B,CAAC;4BACD,IAAI,QAAQ,EAAE,CAAC;gCACb,kFAAkF;gCAClF,cAAc,CAAC,cAAc,CAAC;oCAC5B,MAAM,EAAE,gBAAgB;oCACxB,QAAQ,EAAE,KAAK;oCACf,mBAAmB,EAAE,KAAK;iCAC3B,CAAC,CAAC;4BACL,CAAC;4BACD,cAAc,CAAC,cAAc,CAAC;gCAC5B,MAAM,EAAE,WAAW;gCACnB,QAAQ,UAAA;gCACR,mBAAmB,EAAE,KAAK;6BAC3B,CAAC,CAAC;4BAEH,UAAU,CAAC;gCACT,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;4BACjC,CAAC,EAAE,GAAG,CAAC,CAAC;;;;;iBAEX;YAED;;;eAGG;YACH,YAAY,EAAE,UAAC,EAKS;oBAJtB,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,UAAU,gBAAA;gBAEV,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAClC,+CAA+C;oBAC/C,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CACtC,UAAC,QAAQ,IAAK,OAAA,QAAQ,KAAK,IAAI,EAAjB,CAAiB,CAChC,CAAC;oBACF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;wBACf,cAAc,CAAC,aAAa,CAAC;4BAC3B,KAAK,OAAA;4BACL,QAAQ,UAAA;4BACR,YAAY,cAAA;4BACZ,UAAU,YAAA;yBACX,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4DAA4D;YAC5D,kBAAkB,EAAE;gBAClB,OAAO,mBAAmB,CAAC,eAAe,CAAC;YAC7C,CAAC;YACD,aAAa,EAAE;gBACb,OAAO,mBAAmB,CAAC,aAAa,EAAE,CAAC;YAC7C,CAAC;YACD,SAAS,EAAE,UAAC,KAAa;gBACvB,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YACD,2BAA2B,EAAE;gBAC3B,OAAO,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;YAC3D,CAAC;YACD,2BAA2B,EAAE;gBAC3B,OAAO,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;YAC3D,CAAC;YACD,iBAAiB,EAAE;gBACjB,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;YAC1C,CAAC;YACD,iBAAiB,EAAE;gBACjB,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;YACjD,CAAC;YACD,oBAAoB,EAAE;gBACpB,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC;YAC5D,CAAC;YACD,sBAAsB,EAAE;gBACtB,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;YAC/C,CAAC;YACD;;eAEG;YACH,+BAA+B,EAAE;gBAC/B,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC9C,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE5C,4CAA4C;IAC5C,IAAA,2BAAmB,EACjB,GAAG,EACH;QACE,6CAAY,aAAa,CAAC,OAAO,GAAK,cAAc,EAAG;IACzD,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,OAAO,EAAE,kBAAkB,oBAAA,EAAE,uBAAuB,yBAAA,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { RecyclerViewProps } from "../RecyclerViewProps";
2
2
  import { RecyclerViewManager } from "../RecyclerViewManager";
3
+ import { VelocityTracker } from "../helpers/VelocityTracker";
3
4
  export declare const useRecyclerViewManager: <T>(props: RecyclerViewProps<T>) => {
4
5
  recyclerViewManager: RecyclerViewManager<T>;
6
+ velocityTracker: VelocityTracker<unknown>;
5
7
  };
6
8
  //# sourceMappingURL=useRecyclerViewManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;;CAwBpE,CAAC"}
1
+ {"version":3,"file":"useRecyclerViewManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;;;CAiCpE,CAAC"}
@@ -4,24 +4,33 @@ exports.useRecyclerViewManager = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = require("react");
6
6
  var RecyclerViewManager_1 = require("../RecyclerViewManager");
7
+ var VelocityTracker_1 = require("../helpers/VelocityTracker");
7
8
  var useRecyclerViewManager = function (props) {
8
9
  var _a = tslib_1.__read((0, react_1.useState)(function () { return new RecyclerViewManager_1.RecyclerViewManager(props); }), 1), recyclerViewManager = _a[0];
10
+ var _b = tslib_1.__read((0, react_1.useState)(function () { return new VelocityTracker_1.VelocityTracker(); }), 1), velocityTracker = _b[0];
9
11
  var data = props.data;
10
12
  (0, react_1.useMemo)(function () {
11
13
  recyclerViewManager.updateProps(props);
14
+ // used to update props so rule can be disabled
15
+ // eslint-disable-next-line react-hooks/exhaustive-deps
12
16
  }, [props]);
13
17
  /**
14
18
  * When data changes, we need to process the data update before the render happens
15
19
  */
16
20
  (0, react_1.useMemo)(function () {
17
21
  recyclerViewManager.processDataUpdate();
22
+ // used to process data update so rule can be disabled
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
18
24
  }, [data]);
19
25
  (0, react_1.useEffect)(function () {
20
26
  return function () {
21
27
  recyclerViewManager.dispose();
28
+ velocityTracker.cleanUp();
22
29
  };
30
+ // needs to run only on unmount
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
23
32
  }, []);
24
- return { recyclerViewManager: recyclerViewManager };
33
+ return { recyclerViewManager: recyclerViewManager, velocityTracker: velocityTracker };
25
34
  };
26
35
  exports.useRecyclerViewManager = useRecyclerViewManager;
27
36
  //# sourceMappingURL=useRecyclerViewManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewManager.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewManager.ts"],"names":[],"mappings":";;;;AAAA,+BAAqD;AAGrD,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;IACM,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;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,mBAAmB,qBAAA,EAAE,CAAC;AACjC,CAAC,CAAC;AAxBW,QAAA,sBAAsB,0BAwBjC"}
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"}