@shopify/flash-list 2.0.4-alpha.1 → 2.2.0

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 (203) hide show
  1. package/dist/AnimatedFlashList.js +4 -6
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.js +1 -5
  4. package/dist/FlashList.js.map +1 -1
  5. package/dist/FlashListProps.d.ts +41 -1
  6. package/dist/FlashListProps.d.ts.map +1 -1
  7. package/dist/FlashListProps.js +1 -4
  8. package/dist/FlashListProps.js.map +1 -1
  9. package/dist/FlashListRef.js +1 -2
  10. package/dist/benchmark/AutoScrollHelper.js +22 -30
  11. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.js +27 -33
  13. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  14. package/dist/benchmark/roundToDecimalPlaces.js +2 -5
  15. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  16. package/dist/benchmark/useBenchmark.d.ts +9 -1
  17. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  18. package/dist/benchmark/useBenchmark.js +86 -95
  19. package/dist/benchmark/useBenchmark.js.map +1 -1
  20. package/dist/benchmark/useDataMultiplier.js +6 -10
  21. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  22. package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
  23. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +73 -81
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/errors/ErrorMessages.js +1 -4
  27. package/dist/errors/ErrorMessages.js.map +1 -1
  28. package/dist/errors/WarningMessages.js +1 -4
  29. package/dist/errors/WarningMessages.js.map +1 -1
  30. package/dist/index.js +17 -35
  31. package/dist/index.js.map +1 -1
  32. package/dist/isNewArch.js +6 -9
  33. package/dist/isNewArch.js.map +1 -1
  34. package/dist/native/config/PlatformHelper.android.js +2 -5
  35. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.ios.js +2 -5
  37. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.js +2 -5
  39. package/dist/native/config/PlatformHelper.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.web.js +2 -5
  41. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  42. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  43. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  44. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  45. package/dist/recyclerview/RecyclerView.js +134 -111
  46. package/dist/recyclerview/RecyclerView.js.map +1 -1
  47. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  48. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewManager.js +138 -167
  50. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  52. package/dist/recyclerview/RenderStackManager.js +97 -188
  53. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  54. package/dist/recyclerview/ViewHolder.d.ts +2 -0
  55. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  56. package/dist/recyclerview/ViewHolder.js +19 -21
  57. package/dist/recyclerview/ViewHolder.js.map +1 -1
  58. package/dist/recyclerview/ViewHolderCollection.d.ts +4 -0
  59. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  60. package/dist/recyclerview/ViewHolderCollection.js +26 -30
  61. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  62. package/dist/recyclerview/components/CompatScroller.js +6 -7
  63. package/dist/recyclerview/components/CompatScroller.js.map +1 -1
  64. package/dist/recyclerview/components/CompatView.js +6 -7
  65. package/dist/recyclerview/components/CompatView.js.map +1 -1
  66. package/dist/recyclerview/components/ScrollAnchor.js +10 -15
  67. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  68. package/dist/recyclerview/components/StickyHeaders.d.ts +5 -1
  69. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  70. package/dist/recyclerview/components/StickyHeaders.js +77 -51
  71. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  72. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  73. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  74. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  75. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  77. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  78. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  79. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  80. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  81. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  82. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  83. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  84. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  85. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  86. package/dist/recyclerview/hooks/useOnLoad.js +16 -22
  87. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  90. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  92. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  93. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  94. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  95. package/dist/recyclerview/hooks/useSecondaryProps.d.ts +2 -0
  96. package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
  97. package/dist/recyclerview/hooks/useSecondaryProps.js +39 -30
  98. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  99. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  100. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  101. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  102. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  103. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  104. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  105. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  106. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  107. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  108. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  109. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  110. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  111. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  112. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  113. package/dist/recyclerview/utils/componentUtils.js +4 -9
  114. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  115. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  116. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  117. package/dist/recyclerview/utils/measureLayout.js +12 -20
  118. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  119. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  120. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  122. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  123. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  124. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  125. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/dist/utils/AverageWindow.js +28 -39
  128. package/dist/utils/AverageWindow.js.map +1 -1
  129. package/package.json +4 -6
  130. package/src/FlashListProps.ts +51 -1
  131. package/src/benchmark/useBenchmark.ts +47 -4
  132. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  133. package/src/recyclerview/RecyclerView.tsx +42 -8
  134. package/src/recyclerview/ViewHolder.tsx +6 -1
  135. package/src/recyclerview/ViewHolderCollection.tsx +10 -0
  136. package/src/recyclerview/components/StickyHeaders.tsx +54 -13
  137. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  138. package/src/recyclerview/hooks/useSecondaryProps.tsx +23 -0
  139. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  140. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  141. package/dist/__tests__/AverageWindow.test.js +0 -104
  142. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  143. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  144. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  145. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  146. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  147. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  148. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  149. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  150. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  151. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  152. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  153. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  154. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  155. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  158. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  160. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  161. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  162. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  163. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  164. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  165. package/dist/__tests__/RecyclerView.test.js +0 -103
  166. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  167. package/dist/__tests__/RecyclerViewManager.test.d.ts +0 -2
  168. package/dist/__tests__/RecyclerViewManager.test.d.ts.map +0 -1
  169. package/dist/__tests__/RecyclerViewManager.test.js +0 -56
  170. package/dist/__tests__/RecyclerViewManager.test.js.map +0 -1
  171. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  172. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  173. package/dist/__tests__/RenderStackManager.test.js +0 -485
  174. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  175. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  176. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  177. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  178. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  179. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  180. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  181. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  182. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  183. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  184. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  185. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  186. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  187. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  188. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  189. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  190. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  191. package/src/__tests__/AverageWindow.test.ts +0 -128
  192. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  193. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  194. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  195. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  196. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  197. package/src/__tests__/RecyclerView.test.tsx +0 -144
  198. package/src/__tests__/RecyclerViewManager.test.ts +0 -74
  199. package/src/__tests__/RenderStackManager.test.ts +0 -574
  200. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  201. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  202. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  203. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,30 +1,26 @@
1
- "use strict";
2
1
  /**
3
2
  * ViewHolderCollection is a container component that manages multiple ViewHolder instances.
4
3
  * It handles the rendering of a collection of list items, manages layout updates,
5
4
  * and coordinates with the RecyclerView context for layout changes.
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ViewHolderCollection = void 0;
9
- var tslib_1 = require("tslib");
10
- var react_1 = tslib_1.__importStar(require("react"));
11
- var ViewHolder_1 = require("./ViewHolder");
12
- var CompatView_1 = require("./components/CompatView");
13
- var RecyclerViewContextProvider_1 = require("./RecyclerViewContextProvider");
6
+ import React, { useEffect, useImperativeHandle, useLayoutEffect } from "react";
7
+ import { ViewHolder } from "./ViewHolder";
8
+ import { CompatView } from "./components/CompatView";
9
+ import { useRecyclerViewContext } from "./RecyclerViewContextProvider";
14
10
  /**
15
11
  * ViewHolderCollection component that manages the rendering of multiple ViewHolder instances
16
12
  * and handles layout updates for the entire collection
17
13
  * @template TItem - The type of items in the data array
18
14
  */
19
- var ViewHolderCollection = function (props) {
20
- var data = props.data, renderStack = props.renderStack, getLayout = props.getLayout, refHolder = props.refHolder, onSizeChanged = props.onSizeChanged, renderItem = props.renderItem, extraData = props.extraData, viewHolderCollectionRef = props.viewHolderCollectionRef, getChildContainerLayout = props.getChildContainerLayout, onCommitLayoutEffect = props.onCommitLayoutEffect, CellRendererComponent = props.CellRendererComponent, ItemSeparatorComponent = props.ItemSeparatorComponent, onCommitEffect = props.onCommitEffect, horizontal = props.horizontal, getAdjustmentMargin = props.getAdjustmentMargin;
21
- var _a = tslib_1.__read(react_1.default.useState(0), 2), renderId = _a[0], setRenderId = _a[1];
22
- var containerLayout = getChildContainerLayout();
23
- var fixedContainerSize = horizontal
15
+ export const ViewHolderCollection = (props) => {
16
+ const { data, renderStack, getLayout, refHolder, onSizeChanged, renderItem, extraData, viewHolderCollectionRef, getChildContainerLayout, onCommitLayoutEffect, CellRendererComponent, ItemSeparatorComponent, onCommitEffect, horizontal, getAdjustmentMargin, currentStickyIndex, hideStickyHeaderRelatedCell, } = props;
17
+ const [renderId, setRenderId] = React.useState(0);
18
+ const containerLayout = getChildContainerLayout();
19
+ const fixedContainerSize = horizontal
24
20
  ? containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.height
25
21
  : containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.width;
26
- var recyclerViewContext = (0, RecyclerViewContextProvider_1.useRecyclerViewContext)();
27
- (0, react_1.useLayoutEffect)(function () {
22
+ const recyclerViewContext = useRecyclerViewContext();
23
+ useLayoutEffect(() => {
28
24
  if (renderId > 0) {
29
25
  // console.log(
30
26
  // "parent layout trigger due to child container size change",
@@ -35,14 +31,14 @@ var ViewHolderCollection = function (props) {
35
31
  // we need to run this callback on when fixedContainerSize changes
36
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
37
33
  }, [fixedContainerSize]);
38
- (0, react_1.useLayoutEffect)(function () {
34
+ useLayoutEffect(() => {
39
35
  if (renderId > 0) {
40
36
  onCommitLayoutEffect === null || onCommitLayoutEffect === void 0 ? void 0 : onCommitLayoutEffect();
41
37
  }
42
38
  // we need to run this callback on when renderId changes
43
39
  // eslint-disable-next-line react-hooks/exhaustive-deps
44
40
  }, [renderId]);
45
- (0, react_1.useEffect)(function () {
41
+ useEffect(() => {
46
42
  if (renderId > 0) {
47
43
  onCommitEffect === null || onCommitEffect === void 0 ? void 0 : onCommitEffect();
48
44
  }
@@ -50,14 +46,14 @@ var ViewHolderCollection = function (props) {
50
46
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
47
  }, [renderId]);
52
48
  // Expose forceUpdate through ref
53
- (0, react_1.useImperativeHandle)(viewHolderCollectionRef, function () { return ({
54
- commitLayout: function () {
49
+ useImperativeHandle(viewHolderCollectionRef, () => ({
50
+ commitLayout: () => {
55
51
  // This will trigger a re-render of the component
56
- setRenderId(function (prev) { return prev + 1; });
52
+ setRenderId((prev) => prev + 1);
57
53
  },
58
- }); }, [setRenderId]);
59
- var hasData = data && data.length > 0;
60
- var containerStyle = {
54
+ }), [setRenderId]);
55
+ const hasData = data && data.length > 0;
56
+ const containerStyle = {
61
57
  width: horizontal ? containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.width : undefined,
62
58
  height: containerLayout === null || containerLayout === void 0 ? void 0 : containerLayout.height,
63
59
  marginTop: horizontal ? undefined : getAdjustmentMargin(),
@@ -76,16 +72,16 @@ var ViewHolderCollection = function (props) {
76
72
  // return `${index} => ${reactKey}`;
77
73
  // })
78
74
  // );
79
- return (react_1.default.createElement(CompatView_1.CompatView, { style: hasData && containerStyle }, containerLayout &&
75
+ return (React.createElement(CompatView, { style: hasData && containerStyle }, containerLayout &&
80
76
  hasData &&
81
- Array.from(renderStack.entries(), function (_a) {
82
- var _b = tslib_1.__read(_a, 2), reactKey = _b[0], index = _b[1].index;
83
- var item = data[index];
84
- var trailingItem = ItemSeparatorComponent
77
+ Array.from(renderStack.entries(), ([reactKey, { index }]) => {
78
+ const item = data[index];
79
+ const trailingItem = ItemSeparatorComponent
85
80
  ? data[index + 1]
86
81
  : undefined;
87
- return (react_1.default.createElement(ViewHolder_1.ViewHolder, { key: reactKey, index: index, item: item, trailingItem: trailingItem, layout: tslib_1.__assign({}, getLayout(index)), refHolder: refHolder, onSizeChanged: onSizeChanged, target: "Cell", renderItem: renderItem, extraData: extraData, CellRendererComponent: CellRendererComponent, ItemSeparatorComponent: ItemSeparatorComponent, horizontal: horizontal }));
82
+ return (React.createElement(ViewHolder, { key: reactKey, index: index, item: item, trailingItem: trailingItem, layout: {
83
+ ...getLayout(index),
84
+ }, refHolder: refHolder, onSizeChanged: onSizeChanged, target: "Cell", renderItem: renderItem, extraData: extraData, CellRendererComponent: CellRendererComponent, ItemSeparatorComponent: ItemSeparatorComponent, horizontal: horizontal, hidden: hideStickyHeaderRelatedCell && currentStickyIndex === index }));
88
85
  })));
89
86
  };
90
- exports.ViewHolderCollection = ViewHolderCollection;
91
87
  //# sourceMappingURL=ViewHolderCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewHolderCollection.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewHolderCollection.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompatAnimatedScroller = exports.CompatScroller = void 0;
4
- var react_native_1 = require("react-native");
5
- Object.defineProperty(exports, "CompatScroller", { enumerable: true, get: function () { return react_native_1.ScrollView; } });
6
- var AnimatedScrollView = react_native_1.Animated.ScrollView;
7
- exports.CompatAnimatedScroller = AnimatedScrollView;
1
+ import { ScrollView, Animated } from "react-native";
2
+ const AnimatedScrollView = Animated.ScrollView;
3
+ /** Regular scroll view component */
4
+ export { ScrollView as CompatScroller };
5
+ /** Animated scroll view component for smooth scrolling animations */
6
+ export { AnimatedScrollView as CompatAnimatedScroller };
8
7
  //# sourceMappingURL=CompatScroller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompatScroller.js","sourceRoot":"","sources":["../../../src/recyclerview/components/CompatScroller.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAK7B,+FALd,yBAAU,OAKkB;AAHrC,IAAM,kBAAkB,GAAG,uBAAQ,CAAC,UAAU,CAAC;AAMhB,oDAAsB"}
1
+ {"version":3,"file":"CompatScroller.js","sourceRoot":"","sources":["../../../src/recyclerview/components/CompatScroller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;AAE/C,oCAAoC;AACpC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;AAExC,qEAAqE;AACrE,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,CAAC"}
@@ -1,8 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompatAnimatedView = exports.CompatView = void 0;
4
- var react_native_1 = require("react-native");
5
- Object.defineProperty(exports, "CompatView", { enumerable: true, get: function () { return react_native_1.View; } });
6
- var AnimatedView = react_native_1.Animated.View;
7
- exports.CompatAnimatedView = AnimatedView;
1
+ import { View, Animated } from "react-native";
2
+ /** Regular view component */
3
+ export { View as CompatView };
4
+ const AnimatedView = Animated.View;
5
+ /** Animated view component for smooth animations */
6
+ export { AnimatedView as CompatAnimatedView };
8
7
  //# sourceMappingURL=CompatView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompatView.js","sourceRoot":"","sources":["../../../src/recyclerview/components/CompatView.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAG7B,2FAHR,mBAAI,OAGc;AAE3B,IAAM,YAAY,GAAG,uBAAQ,CAAC,IAAI,CAAC;AAGV,0CAAkB"}
1
+ {"version":3,"file":"CompatView.js","sourceRoot":"","sources":["../../../src/recyclerview/components/CompatView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE9C,6BAA6B;AAC7B,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC;AAE9B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;AAEnC,oDAAoD;AACpD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,CAAC"}
@@ -1,32 +1,27 @@
1
- "use strict";
2
1
  /**
3
2
  * ScrollAnchor component provides a mechanism to programmatically scroll
4
3
  * the list by manipulating an invisible anchor element's position.
5
4
  * This helps us use ScrollView's maintainVisibleContentPosition property
6
5
  * to adjust the scroll position of the list as the size of content changes without any glitches.
7
6
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ScrollAnchor = ScrollAnchor;
10
- var tslib_1 = require("tslib");
11
- var react_1 = tslib_1.__importStar(require("react"));
12
- var CompatView_1 = require("./CompatView");
7
+ import React, { useImperativeHandle, useMemo, useState } from "react";
8
+ import { CompatView } from "./CompatView";
13
9
  /**
14
10
  * ScrollAnchor component that provides programmatic scrolling capabilities using maintainVisibleContentPosition property
15
11
  * @param props - Component props
16
12
  * @returns An invisible anchor element used for scrolling
17
13
  */
18
- function ScrollAnchor(_a) {
19
- var scrollAnchorRef = _a.scrollAnchorRef, horizontal = _a.horizontal;
20
- var _b = tslib_1.__read((0, react_1.useState)(1000000), 2), scrollOffset = _b[0], setScrollOffset = _b[1]; // TODO: Fix this value
14
+ export function ScrollAnchor({ scrollAnchorRef, horizontal, }) {
15
+ const [scrollOffset, setScrollOffset] = useState(1000000); // TODO: Fix this value
21
16
  // Expose scrollBy method through ref
22
- (0, react_1.useImperativeHandle)(scrollAnchorRef, function () { return ({
23
- scrollBy: function (offset) {
24
- setScrollOffset(function (prev) { return prev + offset; });
17
+ useImperativeHandle(scrollAnchorRef, () => ({
18
+ scrollBy: (offset) => {
19
+ setScrollOffset((prev) => prev + offset);
25
20
  },
26
- }); }, []);
21
+ }), []);
27
22
  // Create an invisible anchor element that can be positioned
28
- var anchor = (0, react_1.useMemo)(function () {
29
- return (react_1.default.createElement(CompatView_1.CompatView, { style: {
23
+ const anchor = useMemo(() => {
24
+ return (React.createElement(CompatView, { style: {
30
25
  position: "absolute",
31
26
  height: 0,
32
27
  top: horizontal ? 0 : scrollOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollAnchor.js","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA4BH,oCAgCC;;AA1DD,qDAAsE;AAEtE,2CAA0C;AAmB1C;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAGT;QAFlB,eAAe,qBAAA,EACf,UAAU,gBAAA;IAEJ,IAAA,KAAA,eAAkC,IAAA,gBAAQ,EAAC,OAAO,CAAC,IAAA,EAAlD,YAAY,QAAA,EAAE,eAAe,QAAqB,CAAC,CAAC,uBAAuB;IAElF,qCAAqC;IACrC,IAAA,2BAAmB,EACjB,eAAe,EACf,cAAM,OAAA,CAAC;QACL,QAAQ,EAAE,UAAC,MAAc;YACvB,eAAe,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,MAAM,EAAb,CAAa,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,EAJI,CAIJ,EACF,EAAE,CACH,CAAC;IAEF,4DAA4D;IAC5D,IAAM,MAAM,GAAG,IAAA,eAAO,EAAC;QACrB,OAAO,CACL,8BAAC,uBAAU,IACT,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;gBAClC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACpC,GACD,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"ScrollAnchor.js","sourceRoot":"","sources":["../../../src/recyclerview/components/ScrollAnchor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,eAAe,EACf,UAAU,GACQ;IAClB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;IAElF,qCAAqC;IACrC,mBAAmB,CACjB,eAAe,EACf,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;YAC3B,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,EACF,EAAE,CACH,CAAC;IAEF,4DAA4D;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;gBAClC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACpC,GACD,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -14,6 +14,10 @@ import { RecyclerViewManager } from "../RecyclerViewManager";
14
14
  export interface StickyHeaderProps<TItem> {
15
15
  /** Array of indices that should have sticky headers */
16
16
  stickyHeaderIndices: number[];
17
+ /** Offset from the top where sticky headers should stick (in pixels) */
18
+ stickyHeaderOffset: number;
19
+ /** Sticky header change handler */
20
+ onChangeStickyIndex: (index: number) => void;
17
21
  /** The data array being rendered */
18
22
  data: ReadonlyArray<TItem>;
19
23
  /** Animated value tracking scroll position */
@@ -34,5 +38,5 @@ export interface StickyHeaderRef {
34
38
  /** Reports scroll events to update sticky header positions */
35
39
  reportScrollEvent: (event: NativeScrollEvent) => void;
36
40
  }
37
- export declare const StickyHeaders: <TItem>({ stickyHeaderIndices, renderItem, stickyHeaderRef, recyclerViewManager, scrollY, data, extraData, }: StickyHeaderProps<TItem>) => React.JSX.Element;
41
+ export declare const StickyHeaders: <TItem>({ stickyHeaderIndices, stickyHeaderOffset, renderItem, stickyHeaderRef, recyclerViewManager, scrollY, data, extraData, onChangeStickyIndex, }: StickyHeaderProps<TItem>) => React.JSX.Element;
38
42
  //# sourceMappingURL=StickyHeaders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StickyHeaders.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,oCAAoC;IACpC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClD,2CAA2C;IAC3C,mBAAmB,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,4CAA4C;IAC5C,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAOD,eAAO,MAAM,aAAa,GAAI,KAAK,EAAG,sGAQnC,iBAAiB,CAAC,KAAK,CAAC,sBA8H1B,CAAC"}
1
+ {"version":3,"file":"StickyHeaders.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,oCAAoC;IACpC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAClD,2CAA2C;IAC3C,mBAAmB,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,4CAA4C;IAC5C,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AAOD,eAAO,MAAM,aAAa,GAAI,KAAK,EAAG,+IAUnC,iBAAiB,CAAC,KAAK,CAAC,sBAiK1B,CAAC"}
@@ -1,96 +1,122 @@
1
- "use strict";
2
1
  /**
3
2
  * StickyHeaders component manages the sticky header behavior in a FlashList.
4
3
  * It handles the animation and positioning of headers that should remain fixed
5
4
  * at the top of the list while scrolling.
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.StickyHeaders = void 0;
9
- var tslib_1 = require("tslib");
10
- var react_1 = tslib_1.__importStar(require("react"));
11
- var ViewHolder_1 = require("../ViewHolder");
12
- var CompatView_1 = require("./CompatView");
13
- var StickyHeaders = function (_a) {
14
- var stickyHeaderIndices = _a.stickyHeaderIndices, renderItem = _a.renderItem, stickyHeaderRef = _a.stickyHeaderRef, recyclerViewManager = _a.recyclerViewManager, scrollY = _a.scrollY, data = _a.data, extraData = _a.extraData;
15
- var _b = tslib_1.__read((0, react_1.useState)({
6
+ import React, { useRef, useState, useMemo, useImperativeHandle, useCallback, useEffect, } from "react";
7
+ import { ViewHolder } from "../ViewHolder";
8
+ import { CompatAnimatedView } from "./CompatView";
9
+ export const StickyHeaders = ({ stickyHeaderIndices, stickyHeaderOffset, renderItem, stickyHeaderRef, recyclerViewManager, scrollY, data, extraData, onChangeStickyIndex, }) => {
10
+ const [stickyHeaderState, setStickyHeaderState] = useState({
16
11
  currentStickyIndex: -1,
17
12
  pushStartsAt: Number.MAX_SAFE_INTEGER,
18
- }), 2), stickyHeaderState = _b[0], setStickyHeaderState = _b[1];
19
- var currentStickyIndex = stickyHeaderState.currentStickyIndex, pushStartsAt = stickyHeaderState.pushStartsAt;
13
+ });
14
+ const { currentStickyIndex, pushStartsAt } = stickyHeaderState;
20
15
  // sort indices and memoize compute
21
- var sortedIndices = (0, react_1.useMemo)(function () {
22
- return tslib_1.__spreadArray([], tslib_1.__read(stickyHeaderIndices), false).sort(function (first, second) { return first - second; });
16
+ const sortedIndices = useMemo(() => {
17
+ return [...stickyHeaderIndices].sort((first, second) => first - second);
23
18
  }, [stickyHeaderIndices]);
24
- var legthInvalid = sortedIndices.length === 0 ||
19
+ const legthInvalid = sortedIndices.length === 0 ||
25
20
  recyclerViewManager.getDataLength() <=
26
21
  sortedIndices[sortedIndices.length - 1];
27
- var compute = (0, react_1.useCallback)(function () {
22
+ const compute = useCallback(() => {
28
23
  var _a, _b, _c, _d, _e, _f;
29
24
  if (legthInvalid) {
30
25
  return;
31
26
  }
32
- var adjustedScrollOffset = recyclerViewManager.getLastScrollOffset();
27
+ const adjustedScrollOffset = recyclerViewManager.getLastScrollOffset();
33
28
  // Binary search for current sticky index
34
- var currentIndexInArray = findCurrentStickyIndex(sortedIndices, adjustedScrollOffset, function (index) { return recyclerViewManager.getLayout(index).y; });
35
- var newStickyIndex = (_a = sortedIndices[currentIndexInArray]) !== null && _a !== void 0 ? _a : -1;
36
- var newNextStickyIndex = (_b = sortedIndices[currentIndexInArray + 1]) !== null && _b !== void 0 ? _b : -1;
29
+ const currentIndexInArray = findCurrentStickyIndex(sortedIndices, adjustedScrollOffset + stickyHeaderOffset, (index) => recyclerViewManager.getLayout(index).y);
30
+ const newStickyIndex = (_a = sortedIndices[currentIndexInArray]) !== null && _a !== void 0 ? _a : -1;
31
+ let newNextStickyIndex = (_b = sortedIndices[currentIndexInArray + 1]) !== null && _b !== void 0 ? _b : -1;
37
32
  if (newNextStickyIndex > recyclerViewManager.getEngagedIndices().endIndex) {
38
33
  newNextStickyIndex = -1;
39
34
  }
40
- // To make sure header offset is 0 in the interpolate compute
41
- var newNextStickyY = newNextStickyIndex === -1
35
+ // Calculate when the next sticky header should start pushing the current one
36
+ // The next header starts pushing when it reaches the bottom of the current sticky header
37
+ const newNextStickyY = newNextStickyIndex === -1
42
38
  ? Number.MAX_SAFE_INTEGER
43
39
  : ((_d = (_c = recyclerViewManager.tryGetLayout(newNextStickyIndex)) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) +
44
40
  recyclerViewManager.firstItemOffset;
45
- var newCurrentStickyHeight = (_f = (_e = recyclerViewManager.tryGetLayout(newStickyIndex)) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : 0;
46
- var newPushStartsAt = newNextStickyY - newCurrentStickyHeight;
41
+ const newCurrentStickyHeight = (_f = (_e = recyclerViewManager.tryGetLayout(newStickyIndex)) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : 0;
42
+ // Push should start when the next header reaches the bottom of the current sticky header
43
+ const newPushStartsAt = newNextStickyY - newCurrentStickyHeight;
47
44
  if (newStickyIndex !== currentStickyIndex ||
48
45
  newPushStartsAt !== pushStartsAt) {
49
46
  setStickyHeaderState({
50
47
  currentStickyIndex: newStickyIndex,
51
- pushStartsAt: newPushStartsAt,
48
+ pushStartsAt: newPushStartsAt - stickyHeaderOffset,
52
49
  });
53
50
  }
51
+ if (newStickyIndex !== currentStickyIndex) {
52
+ onChangeStickyIndex === null || onChangeStickyIndex === void 0 ? void 0 : onChangeStickyIndex(newStickyIndex);
53
+ }
54
54
  }, [
55
55
  legthInvalid,
56
56
  recyclerViewManager,
57
57
  sortedIndices,
58
58
  currentStickyIndex,
59
59
  pushStartsAt,
60
+ onChangeStickyIndex,
61
+ stickyHeaderOffset,
60
62
  ]);
61
- (0, react_1.useEffect)(function () {
63
+ useEffect(() => {
62
64
  compute();
63
65
  }, [compute]);
64
66
  // Optimized scroll handler using binary search pattern
65
- (0, react_1.useImperativeHandle)(stickyHeaderRef, function () { return ({
66
- reportScrollEvent: function () {
67
+ useImperativeHandle(stickyHeaderRef, () => ({
68
+ reportScrollEvent: () => {
67
69
  compute();
68
70
  },
69
- }); }, [compute]);
70
- var refHolder = (0, react_1.useRef)(new Map()).current;
71
- var translateY = (0, react_1.useMemo)(function () {
71
+ }), [compute]);
72
+ const refHolder = useRef(new Map()).current;
73
+ const { translateY, opacity } = useMemo(() => {
72
74
  var _a, _b;
73
- var currentStickyHeight = (_b = (_a = recyclerViewManager.tryGetLayout(currentStickyIndex)) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;
74
- return scrollY.interpolate({
75
- inputRange: [pushStartsAt, pushStartsAt + currentStickyHeight],
76
- outputRange: [0, -currentStickyHeight],
77
- extrapolate: "clamp",
78
- });
79
- }, [recyclerViewManager, currentStickyIndex, scrollY, pushStartsAt]);
75
+ const currentStickyHeight = (_b = (_a = recyclerViewManager.tryGetLayout(currentStickyIndex)) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;
76
+ return {
77
+ translateY: scrollY.interpolate({
78
+ inputRange: [pushStartsAt, pushStartsAt + currentStickyHeight],
79
+ outputRange: [0, -currentStickyHeight],
80
+ extrapolate: "clamp",
81
+ }),
82
+ opacity: stickyHeaderOffset > 0
83
+ ? scrollY.interpolate({
84
+ inputRange: [pushStartsAt, pushStartsAt + currentStickyHeight],
85
+ outputRange: [1, 0],
86
+ extrapolate: "clamp",
87
+ })
88
+ : undefined,
89
+ };
90
+ }, [
91
+ recyclerViewManager,
92
+ currentStickyIndex,
93
+ scrollY,
94
+ pushStartsAt,
95
+ stickyHeaderOffset,
96
+ ]);
80
97
  // Memoize header content
81
- var headerContent = (0, react_1.useMemo)(function () {
82
- return (react_1.default.createElement(CompatView_1.CompatAnimatedView, { style: {
98
+ const headerContent = useMemo(() => {
99
+ return (React.createElement(CompatAnimatedView, { style: {
83
100
  position: "absolute",
84
- top: 0,
101
+ top: stickyHeaderOffset,
85
102
  left: 0,
86
103
  right: 0,
87
- zIndex: 1,
88
- transform: [{ translateY: translateY }],
89
- } }, currentStickyIndex !== -1 && currentStickyIndex < data.length ? (react_1.default.createElement(ViewHolder_1.ViewHolder, { index: currentStickyIndex, item: data[currentStickyIndex], renderItem: renderItem, layout: { x: 0, y: 0, width: 0, height: 0 }, refHolder: refHolder, extraData: extraData, trailingItem: null, target: "StickyHeader" })) : null));
90
- }, [translateY, currentStickyIndex, data, renderItem, refHolder, extraData]);
104
+ zIndex: 2,
105
+ transform: [{ translateY }],
106
+ opacity,
107
+ } }, currentStickyIndex !== -1 && currentStickyIndex < data.length ? (React.createElement(ViewHolder, { index: currentStickyIndex, item: data[currentStickyIndex], renderItem: renderItem, layout: { x: 0, y: 0, width: 0, height: 0 }, refHolder: refHolder, extraData: extraData, trailingItem: null, target: "StickyHeader", hidden: false })) : null));
108
+ }, [
109
+ translateY,
110
+ opacity,
111
+ currentStickyIndex,
112
+ data,
113
+ renderItem,
114
+ refHolder,
115
+ extraData,
116
+ stickyHeaderOffset,
117
+ ]);
91
118
  return headerContent;
92
119
  };
93
- exports.StickyHeaders = StickyHeaders;
94
120
  /**
95
121
  * Binary search utility to find the current sticky header index based on scroll position
96
122
  * @param sortedIndices - Array of indices sorted by Y position
@@ -99,12 +125,12 @@ exports.StickyHeaders = StickyHeaders;
99
125
  * @returns Index of the current sticky header
100
126
  */
101
127
  function findCurrentStickyIndex(sortedIndices, adjustedValue, getY) {
102
- var left = 0;
103
- var right = sortedIndices.length - 1;
104
- var result = -1;
128
+ let left = 0;
129
+ let right = sortedIndices.length - 1;
130
+ let result = -1;
105
131
  while (left <= right) {
106
- var mid = Math.floor((left + right) / 2);
107
- var currentY = getY(sortedIndices[mid]);
132
+ const mid = Math.floor((left + right) / 2);
133
+ const currentY = getY(sortedIndices[mid]);
108
134
  if (currentY <= adjustedValue) {
109
135
  result = mid;
110
136
  left = mid + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"StickyHeaders.js","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StickyHeaders.js","sourceRoot":"","sources":["../../../src/recyclerview/components/StickyHeaders.tsx"],"names":[],"mappings":"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"}