@shopify/flash-list 2.0.0-alpha.10 → 2.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +6 -2
  2. package/dist/AnimatedFlashList.d.ts.map +1 -1
  3. package/dist/AnimatedFlashList.js +3 -3
  4. package/dist/AnimatedFlashList.js.map +1 -1
  5. package/dist/FlashList.d.ts +9 -0
  6. package/dist/FlashList.d.ts.map +1 -1
  7. package/dist/FlashList.js +20 -0
  8. package/dist/FlashList.js.map +1 -1
  9. package/dist/FlashListProps.d.ts +13 -6
  10. package/dist/FlashListProps.d.ts.map +1 -1
  11. package/dist/FlashListProps.js.map +1 -1
  12. package/dist/FlashListRef.d.ts +295 -0
  13. package/dist/FlashListRef.d.ts.map +1 -0
  14. package/dist/FlashListRef.js +3 -0
  15. package/dist/FlashListRef.js.map +1 -0
  16. package/dist/__tests__/RecyclerView.test.js +62 -27
  17. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  18. package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
  19. package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
  20. package/dist/__tests__/RenderStackManager.test.js +405 -0
  21. package/dist/__tests__/RenderStackManager.test.js.map +1 -0
  22. package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
  23. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +8 -7
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/recyclerview/RecyclerView.d.ts +2 -1
  30. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  31. package/dist/recyclerview/RecyclerView.js +33 -14
  32. package/dist/recyclerview/RecyclerView.js.map +1 -1
  33. package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
  34. package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
  35. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  36. package/dist/recyclerview/RecyclerViewManager.d.ts +11 -7
  37. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  38. package/dist/recyclerview/RecyclerViewManager.js +57 -102
  39. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  40. package/dist/recyclerview/RenderStackManager.d.ts +85 -0
  41. package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
  42. package/dist/recyclerview/RenderStackManager.js +261 -0
  43. package/dist/recyclerview/RenderStackManager.js.map +1 -0
  44. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  45. package/dist/recyclerview/ViewHolder.js +5 -3
  46. package/dist/recyclerview/ViewHolder.js.map +1 -1
  47. package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
  48. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  49. package/dist/recyclerview/ViewHolderCollection.js +19 -3
  50. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  51. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  52. package/dist/recyclerview/components/ScrollAnchor.js +1 -1
  53. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  54. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  55. package/dist/recyclerview/components/StickyHeaders.js +44 -17
  56. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  57. package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
  58. package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
  59. package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
  60. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  61. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  62. package/dist/recyclerview/hooks/useOnLoad.js +4 -6
  63. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  64. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
  65. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  66. package/dist/recyclerview/hooks/useRecyclerViewController.js +93 -71
  67. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  68. package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
  69. package/dist/recyclerview/hooks/useRecyclerViewManager.js +6 -0
  70. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  71. package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
  72. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
  73. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
  74. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
  75. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  76. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
  77. package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
  78. package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
  79. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  80. package/dist/recyclerview/layout-managers/LayoutManager.d.ts +2 -2
  81. package/dist/recyclerview/layout-managers/LayoutManager.js +2 -2
  82. package/dist/tsconfig.tsbuildinfo +1 -1
  83. package/jestSetup.js +30 -11
  84. package/package.json +1 -1
  85. package/src/AnimatedFlashList.ts +3 -2
  86. package/src/FlashList.tsx +24 -0
  87. package/src/FlashListProps.ts +16 -7
  88. package/src/FlashListRef.ts +309 -0
  89. package/src/__tests__/RecyclerView.test.tsx +83 -29
  90. package/src/__tests__/RenderStackManager.test.ts +488 -0
  91. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
  92. package/src/benchmark/useFlatListBenchmark.ts +2 -2
  93. package/src/index.ts +1 -0
  94. package/src/recyclerview/RecyclerView.tsx +38 -23
  95. package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
  96. package/src/recyclerview/RecyclerViewManager.ts +73 -88
  97. package/src/recyclerview/RenderStackManager.ts +265 -0
  98. package/src/recyclerview/ViewHolder.tsx +5 -3
  99. package/src/recyclerview/ViewHolderCollection.tsx +29 -8
  100. package/src/recyclerview/components/ScrollAnchor.tsx +9 -5
  101. package/src/recyclerview/components/StickyHeaders.tsx +57 -19
  102. package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
  103. package/src/recyclerview/hooks/useOnLoad.ts +4 -6
  104. package/src/recyclerview/hooks/useRecyclerViewController.tsx +104 -125
  105. package/src/recyclerview/hooks/useRecyclerViewManager.ts +6 -0
  106. package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
  107. package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
  108. package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
  109. package/src/recyclerview/layout-managers/LayoutManager.ts +2 -2
  110. package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
  111. package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
  112. package/dist/__tests__/RecycleKeyManager.test.js +0 -210
  113. package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
  114. package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
  115. package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
  116. package/dist/recyclerview/RecycleKeyManager.js +0 -135
  117. package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
  118. package/src/__tests__/RecycleKeyManager.test.ts +0 -254
  119. package/src/recyclerview/RecycleKeyManager.ts +0 -185
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useBoundDetection = useBoundDetection;
4
4
  var react_1 = require("react");
5
+ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
5
6
  /**
6
7
  * Hook to detect when the scroll position reaches near the start or end of the list
7
8
  * and trigger the appropriate callbacks. This hook is responsible for:
@@ -13,61 +14,61 @@ var react_1 = require("react");
13
14
  * @param props - The RecyclerViewProps containing configuration and callbacks
14
15
  * @param scrollViewRef - Reference to the scrollable container component
15
16
  */
16
- function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
17
+ function useBoundDetection(recyclerViewManager, scrollViewRef) {
17
18
  // Track whether we've already triggered the end reached callback to prevent duplicate calls
18
19
  var pendingEndReached = (0, react_1.useRef)(false);
19
20
  // Track whether we've already triggered the start reached callback to prevent duplicate calls
20
21
  var pendingStartReached = (0, react_1.useRef)(false);
21
22
  // Track whether we should auto-scroll to bottom when new content is added
22
23
  var pendingAutoscrollToBottom = (0, react_1.useRef)(false);
23
- var horizontal = props.horizontal, data = props.data, maintainVisibleContentPosition = props.maintainVisibleContentPosition;
24
+ var data = recyclerViewManager.props.data;
25
+ var requestAnimationFrame = (0, useUnmountAwareCallbacks_1.useUnmountAwareAnimationFrame)().requestAnimationFrame;
24
26
  /**
25
27
  * Checks if the scroll position is near the start or end of the list
26
28
  * and triggers appropriate callbacks if configured.
27
29
  */
28
30
  var checkBounds = (0, react_1.useCallback)(function () {
29
- var _a, _b, _c;
31
+ var _a;
32
+ var _b = recyclerViewManager.props, onEndReached = _b.onEndReached, onStartReached = _b.onStartReached, maintainVisibleContentPosition = _b.maintainVisibleContentPosition, horizontal = _b.horizontal, onEndReachedThresholdProp = _b.onEndReachedThreshold, onStartReachedThresholdProp = _b.onStartReachedThreshold;
30
33
  // Skip all calculations if neither callback is provided and autoscroll is disabled
31
34
  var autoscrollToBottomThreshold = (_a = maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.autoscrollToBottomThreshold) !== null && _a !== void 0 ? _a : -1;
32
- if (!props.onEndReached &&
33
- !props.onStartReached &&
34
- autoscrollToBottomThreshold < 0) {
35
+ if (!onEndReached && !onStartReached && autoscrollToBottomThreshold < 0) {
35
36
  return;
36
37
  }
37
38
  if (recyclerViewManager.getIsFirstLayoutComplete()) {
38
39
  var lastScrollOffset = recyclerViewManager.getAbsoluteLastScrollOffset();
39
40
  var contentSize = recyclerViewManager.getChildContainerDimensions();
40
41
  var windowSize = recyclerViewManager.getWindowSize();
41
- var isHorizontal = props.horizontal === true;
42
+ var isHorizontal = horizontal === true;
42
43
  // Calculate dimensions based on scroll direction
43
44
  var visibleLength = isHorizontal ? windowSize.width : windowSize.height;
44
45
  var contentLength = (isHorizontal ? contentSize.width : contentSize.height) +
45
46
  recyclerViewManager.firstItemOffset;
46
47
  // Check if we're near the end of the list
47
- if (props.onEndReached) {
48
- var onEndReachedThreshold = (_b = props.onEndReachedThreshold) !== null && _b !== void 0 ? _b : 0.5;
48
+ if (onEndReached) {
49
+ var onEndReachedThreshold = onEndReachedThresholdProp !== null && onEndReachedThresholdProp !== void 0 ? onEndReachedThresholdProp : 0.5;
49
50
  var endThresholdDistance = onEndReachedThreshold * visibleLength;
50
51
  var isNearEnd = Math.ceil(lastScrollOffset + visibleLength) >=
51
52
  contentLength - endThresholdDistance;
52
53
  if (isNearEnd && !pendingEndReached.current) {
53
54
  pendingEndReached.current = true;
54
- props.onEndReached();
55
+ onEndReached();
55
56
  }
56
57
  pendingEndReached.current = isNearEnd;
57
58
  }
58
59
  // Check if we're near the start of the list
59
- if (props.onStartReached) {
60
- var onStartReachedThreshold = (_c = props.onStartReachedThreshold) !== null && _c !== void 0 ? _c : 0.2;
60
+ if (onStartReached) {
61
+ var onStartReachedThreshold = onStartReachedThresholdProp !== null && onStartReachedThresholdProp !== void 0 ? onStartReachedThresholdProp : 0.2;
61
62
  var startThresholdDistance = onStartReachedThreshold * visibleLength;
62
63
  var isNearStart = lastScrollOffset <= startThresholdDistance;
63
64
  if (isNearStart && !pendingStartReached.current) {
64
65
  pendingStartReached.current = true;
65
- props.onStartReached();
66
+ onStartReached();
66
67
  }
67
68
  pendingStartReached.current = isNearStart;
68
69
  }
69
70
  // Handle auto-scrolling to bottom for vertical lists
70
- if (!horizontal) {
71
+ if (!isHorizontal) {
71
72
  var autoscrollToBottomThresholdDistance = autoscrollToBottomThreshold * visibleLength;
72
73
  var isNearBottom = Math.ceil(lastScrollOffset + visibleLength) >=
73
74
  contentLength - autoscrollToBottomThresholdDistance;
@@ -79,10 +80,12 @@ function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
79
80
  }
80
81
  }
81
82
  }
82
- }, [recyclerViewManager, props]);
83
+ }, [recyclerViewManager]);
83
84
  // Reset end reached state when data changes
84
85
  (0, react_1.useMemo)(function () {
85
86
  pendingEndReached.current = false;
87
+ // needs to run only when data changes
88
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
89
  }, [data]);
87
90
  // Auto-scroll to bottom when new content is added and we're near the bottom
88
91
  (0, react_1.useEffect)(function () {
@@ -93,7 +96,7 @@ function useBoundDetection(recyclerViewManager, props, scrollViewRef) {
93
96
  pendingAutoscrollToBottom.current = false;
94
97
  });
95
98
  }
96
- }, [data]);
99
+ }, [data, requestAnimationFrame, scrollViewRef]);
97
100
  return {
98
101
  checkBounds: checkBounds,
99
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBoundDetection.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBoundDetection.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnLoad.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,SAAS,CAAC,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,KACnD;IAAE,QAAQ,EAAE,OAAO,CAAA;CAuCrB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,QAAQ,MAAM,IAAI,SAUnB,CAAC"}
1
+ {"version":3,"file":"useOnLoad.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,SAAS,CAAC,IAAI,EAAE;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,KACnD;IAAE,QAAQ,EAAE,OAAO,CAAA;CAqCrB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,qBAAqB,mBAAmB,CAAC,CAAC,CAAC,EAC3C,QAAQ,MAAM,IAAI,SAUnB,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useOnLoad = exports.useOnListLoad = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = require("react");
6
- var useUnmountFlag_1 = require("./useUnmountFlag");
6
+ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
7
7
  // import { ToastAndroid } from "react-native";
8
8
  /**
9
9
  * Hook to track when the RecyclerView has loaded its items and notify when loading is complete.
@@ -19,7 +19,7 @@ var useOnListLoad = function (recyclerViewManager, onLoad) {
19
19
  var _a = tslib_1.__read((0, react_1.useState)(false), 2), isLoaded = _a[0], setIsLoaded = _a[1];
20
20
  var dataLength = recyclerViewManager.getDataLength();
21
21
  // const dataCollector = useRef<number[]>([]);
22
- var isUnmounted = (0, useUnmountFlag_1.useUnmountFlag)();
22
+ var requestAnimationFrame = (0, useUnmountAwareCallbacks_1.useUnmountAwareAnimationFrame)().requestAnimationFrame;
23
23
  // Track render cycles by collecting elapsed time on each render
24
24
  // useEffect(() => {
25
25
  // const elapsedTimeInMs = Date.now() - loadStartTimeRef.current;
@@ -43,10 +43,8 @@ var useOnListLoad = function (recyclerViewManager, onLoad) {
43
43
  // console.log("----------> dataCollector", dataCollectorString);
44
44
  // console.log("----------> FlashList v2 load in", `${elapsedTimeInMs} ms`);
45
45
  requestAnimationFrame(function () {
46
- if (!isUnmounted.current) {
47
- onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs: elapsedTimeInMs });
48
- setIsLoaded(true);
49
- }
46
+ onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs: elapsedTimeInMs });
47
+ setIsLoaded(true);
50
48
  });
51
49
  });
52
50
  return { isLoaded: isLoaded };
@@ -1 +1 @@
1
- {"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":";;;;AAAA,+BAA6D;AAI7D,mDAAkD;AAClD,+CAA+C;AAE/C;;;;;;;;GAQG;AACI,IAAM,aAAa,GAAG,UAC3B,mBAA2C,EAC3C,MAAoD;IAEpD,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAA,KAAA,eAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACzD,IAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;IACvD,8CAA8C;IAC9C,IAAM,WAAW,GAAG,IAAA,+BAAc,GAAE,CAAC;IACrC,gEAAgE;IAChE,oBAAoB;IACpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,IAAA,eAAO,EAAC;QACN,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,mBAAmB,EAAE;QAC7B,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9D,uDAAuD;QACvD,8CAA8C;QAC9C,oDAAoD;QACpD,uCAAuC;QACvC,iBAAiB;QACjB,sBAAsB;QACtB,kDAAkD;QAClD,uBAAuB;QACvB,KAAK;QACL,iEAAiE;QACjE,4EAA4E;QAC5E,qBAAqB,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC,CAAC;AA1CW,QAAA,aAAa,iBA0CxB;AAEF;;;;;;;GAOG;AACI,IAAM,SAAS,GAAG,UACvB,mBAA2C,EAC3C,MAAkB;IAElB,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAC;IACxC,IAAA,iBAAS,EAAC;QACR,kEAAkE;QAClE,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB"}
1
+ {"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":";;;;AAAA,+BAA6D;AAI7D,uEAA2E;AAC3E,+CAA+C;AAE/C;;;;;;;;GAQG;AACI,IAAM,aAAa,GAAG,UAC3B,mBAA2C,EAC3C,MAAoD;IAEpD,IAAM,gBAAgB,GAAG,IAAA,cAAM,EAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,IAAA,KAAA,eAA0B,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAjD,QAAQ,QAAA,EAAE,WAAW,QAA4B,CAAC;IACzD,IAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;IACvD,8CAA8C;IACtC,IAAA,qBAAqB,GAAK,IAAA,wDAA6B,GAAE,sBAApC,CAAqC;IAClE,gEAAgE;IAChE,oBAAoB;IACpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,IAAA,eAAO,EAAC;QACN,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,mBAAmB,EAAE;QAC7B,IAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9D,uDAAuD;QACvD,8CAA8C;QAC9C,oDAAoD;QACpD,uCAAuC;QACvC,iBAAiB;QACjB,sBAAsB;QACtB,kDAAkD;QAClD,uBAAuB;QACvB,KAAK;QACL,iEAAiE;QACjE,4EAA4E;QAC5E,qBAAqB,CAAC;YACpB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC,CAAC;AAxCW,QAAA,aAAa,iBAwCxB;AAEF;;;;;;;GAOG;AACI,IAAM,SAAS,GAAG,UACvB,mBAA2C,EAC3C,MAAkB;IAElB,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAC;IACxC,IAAA,iBAAS,EAAC;QACR,kEAAkE;QAClE,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB"}
@@ -1,54 +1,8 @@
1
1
  import { RefObject } from "react";
2
- import { RecyclerViewProps } from "../RecyclerViewProps";
2
+ import { FlashListRef } from "../../FlashListRef";
3
3
  import { CompatScroller } from "../components/CompatScroller";
4
4
  import { RecyclerViewManager } from "../RecyclerViewManager";
5
5
  import { ScrollAnchorRef } from "../components/ScrollAnchor";
6
- /**
7
- * Parameters for scrolling to a specific position in the list.
8
- * Extends ScrollToEdgeParams to include view positioning options.
9
- */
10
- export interface ScrollToParams extends ScrollToEdgeParams {
11
- /** Position of the target item relative to the viewport (0 = top, 0.5 = center, 1 = bottom) */
12
- viewPosition?: number;
13
- /** Additional offset to apply after viewPosition calculation */
14
- viewOffset?: number;
15
- }
16
- /**
17
- * Parameters for scrolling to a specific offset in the list.
18
- * Used when you want to scroll to an exact pixel position.
19
- */
20
- export interface ScrollToOffsetParams extends ScrollToParams {
21
- /** The pixel offset to scroll to */
22
- offset: number;
23
- /**
24
- * If true, the first item offset will not be added to the offset calculation.
25
- * First offset represents header size or top padding.
26
- */
27
- skipFirstItemOffset?: boolean;
28
- }
29
- /**
30
- * Parameters for scrolling to a specific index in the list.
31
- * Used when you want to scroll to a specific item by its position in the data array.
32
- */
33
- export interface ScrollToIndexParams extends ScrollToParams {
34
- /** The index of the item to scroll to */
35
- index: number;
36
- }
37
- /**
38
- * Parameters for scrolling to a specific item in the list.
39
- * Used when you want to scroll to a specific item by its data value.
40
- */
41
- export interface ScrollToItemParams<T> extends ScrollToParams {
42
- /** The item to scroll to */
43
- item: T;
44
- }
45
- /**
46
- * Base parameters for scrolling to the edges of the list.
47
- */
48
- export interface ScrollToEdgeParams {
49
- /** Whether the scroll should be animated */
50
- animated?: boolean;
51
- }
52
6
  /**
53
7
  * Comprehensive hook that manages RecyclerView scrolling behavior and provides
54
8
  * imperative methods for controlling the RecyclerView.
@@ -65,8 +19,9 @@ export interface ScrollToEdgeParams {
65
19
  * @param scrollAnchorRef - Reference to the scroll anchor component
66
20
  * @param props - The RecyclerViewProps containing configuration
67
21
  */
68
- export declare function useRecyclerViewController<T>(recyclerViewManager: RecyclerViewManager<T>, ref: React.Ref<any>, scrollViewRef: RefObject<CompatScroller>, scrollAnchorRef: React.RefObject<ScrollAnchorRef>, props: RecyclerViewProps<T>): {
22
+ export declare function useRecyclerViewController<T>(recyclerViewManager: RecyclerViewManager<T>, ref: React.Ref<FlashListRef<T>>, scrollViewRef: RefObject<CompatScroller>, scrollAnchorRef: React.RefObject<ScrollAnchorRef>): {
69
23
  applyContentOffset: () => Promise<void>;
70
24
  applyInitialScrollIndex: () => void;
25
+ handlerMethods: FlashListRef<T>;
71
26
  };
72
27
  //# sourceMappingURL=useRecyclerViewController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewController.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,cAAc;IAC3D,4BAA4B;IAC5B,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EACnB,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EACjD,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;;;EAoc5B"}
1
+ {"version":3,"file":"useRecyclerViewController.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAMV,MAAM,OAAO,CAAC;AAGf,OAAO,EAKL,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,EACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;;;;EA6dlD"}
@@ -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];
31
+ var _c = tslib_1.__read((0, react_1.useState)(0), 2), _ = _c[0], setRenderId = _c[1];
33
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
- pauseOffsetCorrection.current = false;
53
- }, 100);
54
- pauseOffsetCorrection.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,32 +65,30 @@ 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, maintainVisibleContentPosition, resolves, currentDataLength, hasDataChanged, currentIndexOfFirstVisibleItem, diff, 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, maintainVisibleContentPosition = _a.maintainVisibleContentPosition;
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 &&
75
+ currentDataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
76
+ if (!horizontal &&
108
77
  recyclerViewManager.getIsFirstLayoutComplete() &&
109
- props.keyExtractor &&
78
+ keyExtractor &&
110
79
  currentDataLength > 0 &&
111
- ((_c = props.maintainVisibleContentPosition) === null || _c === void 0 ? void 0 : _c.disabled) !== true) {
80
+ (maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.disabled) !== true) {
112
81
  hasDataChanged = currentDataLength !== lastDataLengthRef.current;
113
82
  // If we have a tracked first visible item, maintain its position
114
83
  if (firstVisibleItemKey.current) {
115
- currentIndexOfFirstVisibleItem = (_d = recyclerViewManager
84
+ currentIndexOfFirstVisibleItem = (_c = recyclerViewManager
116
85
  .getEngagedIndices()
117
86
  .findValue(function (index) {
118
- var _a;
119
- return ((_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, props.data[index], index)) ===
87
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(data[index], index)) ===
120
88
  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;
89
+ })) !== null && _c !== void 0 ? _c : (hasDataChanged
90
+ ? data === null || data === void 0 ? void 0 : data.findIndex(function (item, index) {
91
+ return (keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, index)) === firstVisibleItemKey.current;
126
92
  })
127
93
  : undefined);
128
94
  if (currentIndexOfFirstVisibleItem !== undefined) {
@@ -132,10 +98,10 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
132
98
  if (diff !== 0 && !pauseOffsetCorrection.current) {
133
99
  // console.log("diff", diff, firstVisibleItemKey.current);
134
100
  if (PlatformHelper_1.PlatformConfig.supportsOffsetCorrection) {
135
- (_f = scrollAnchorRef.current) === null || _f === void 0 ? void 0 : _f.scrollBy(diff);
101
+ (_d = scrollAnchorRef.current) === null || _d === void 0 ? void 0 : _d.scrollBy(diff);
136
102
  }
137
103
  else {
138
- (_g = scrollViewRef.current) === null || _g === void 0 ? void 0 : _g.scrollTo({
104
+ (_e = scrollViewRef.current) === null || _e === void 0 ? void 0 : _e.scrollTo({
139
105
  y: recyclerViewManager.getAbsoluteLastScrollOffset() + diff,
140
106
  animated: false,
141
107
  });
@@ -150,25 +116,34 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
150
116
  }
151
117
  }
152
118
  }
153
- firstVisibleIndex = Math.max(0, recyclerViewManager.getVisibleIndices().startIndex);
119
+ firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
154
120
  if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
155
- firstVisibleItemKey.current = props.keyExtractor(props.data[firstVisibleIndex], firstVisibleIndex);
121
+ firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
156
122
  firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
157
123
  }
158
124
  }
159
- lastDataLengthRef.current = (_j = (_h = props.data) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : 0;
125
+ lastDataLengthRef.current = (_f = data === null || data === void 0 ? void 0 : data.length) !== null && _f !== void 0 ? _f : 0;
160
126
  return [2 /*return*/];
161
127
  });
162
- }); }, [props.data, props.keyExtractor, recyclerViewManager, setTimeout]);
128
+ }); }, [
129
+ recyclerViewManager,
130
+ scrollAnchorRef,
131
+ scrollViewRef,
132
+ setTimeout,
133
+ updateScrollOffsetAsync,
134
+ ]);
163
135
  var handlerMethods = (0, react_1.useMemo)(function () {
164
136
  return {
165
- props: props,
137
+ get props() {
138
+ return recyclerViewManager.props;
139
+ },
166
140
  /**
167
141
  * Scrolls the list to a specific offset position.
168
142
  * Handles RTL layouts and first item offset adjustments.
169
143
  */
170
144
  scrollToOffset: function (_a) {
171
145
  var offset = _a.offset, animated = _a.animated, _b = _a.skipFirstItemOffset, skipFirstItemOffset = _b === void 0 ? true : _b;
146
+ var horizontal = recyclerViewManager.props.horizontal;
172
147
  if (scrollViewRef.current) {
173
148
  // Adjust offset for RTL layouts in horizontal mode
174
149
  if (react_native_1.I18nManager.isRTL && horizontal) {
@@ -210,10 +185,12 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
210
185
  args_1[_i] = arguments[_i];
211
186
  }
212
187
  return tslib_1.__awaiter(_this, tslib_1.__spreadArray([], tslib_1.__read(args_1), false), void 0, function (_a) {
188
+ var data;
213
189
  var _b = _a === void 0 ? {} : _a, animated = _b.animated;
214
190
  return tslib_1.__generator(this, function (_c) {
215
191
  switch (_c.label) {
216
192
  case 0:
193
+ data = recyclerViewManager.props.data;
217
194
  if (!(data && data.length > 0)) return [3 /*break*/, 2];
218
195
  return [4 /*yield*/, handlerMethods.scrollToIndex({
219
196
  index: data.length - 1,
@@ -246,15 +223,15 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
246
223
  * Supports viewPosition and viewOffset for precise positioning.
247
224
  */
248
225
  scrollToIndex: function (_a) { return tslib_1.__awaiter(_this, [_a], void 0, function (_b) {
249
- var getFinalOffset_1, lastAbsoluteScrollOffset_1, bufferForScroll, bufferForCompute_1, getStartScrollOffset, initialTargetOffset, initialStartScrollOffset, finalOffset, startScrollOffset, steps, i, nextOffset, newFinalOffset, maxOffset;
226
+ var horizontal, getFinalOffset_1, lastAbsoluteScrollOffset_1, bufferForScroll, bufferForCompute_1, getStartScrollOffset, initialTargetOffset, initialStartScrollOffset, finalOffset, startScrollOffset, steps, i, nextOffset, newFinalOffset, maxOffset;
250
227
  var index = _b.index, animated = _b.animated, viewPosition = _b.viewPosition, viewOffset = _b.viewOffset;
251
228
  return tslib_1.__generator(this, function (_c) {
252
229
  switch (_c.label) {
253
230
  case 0:
231
+ horizontal = recyclerViewManager.props.horizontal;
254
232
  if (!(scrollViewRef.current &&
255
- data &&
256
233
  index >= 0 &&
257
- index < data.length)) return [3 /*break*/, 5];
234
+ index < recyclerViewManager.getDataLength())) return [3 /*break*/, 5];
258
235
  // Pause the scroll offset adjustments
259
236
  pauseOffsetCorrection.current = true;
260
237
  recyclerViewManager.setOffsetProjectionEnabled(false);
@@ -317,6 +294,12 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
317
294
  return [4 /*yield*/, updateScrollOffsetAsync(nextOffset)];
318
295
  case 2:
319
296
  _c.sent();
297
+ // In case some change happens in the middle of this operation
298
+ // and the index is out of bounds, scroll to the end
299
+ if (index >= recyclerViewManager.getDataLength()) {
300
+ handlerMethods.scrollToEnd({ animated: animated });
301
+ return [2 /*return*/];
302
+ }
320
303
  newFinalOffset = getFinalOffset_1();
321
304
  if ((newFinalOffset < initialTargetOffset &&
322
305
  newFinalOffset < initialStartScrollOffset) ||
@@ -366,9 +349,10 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
366
349
  */
367
350
  scrollToItem: function (_a) {
368
351
  var item = _a.item, animated = _a.animated, viewPosition = _a.viewPosition, viewOffset = _a.viewOffset;
352
+ var data = recyclerViewManager.props.data;
369
353
  if (scrollViewRef.current && data) {
370
354
  // Find the index of the item in the data array
371
- var index = Array.from(data).findIndex(function (dataItem) { return dataItem === item; });
355
+ var index = data.findIndex(function (dataItem) { return dataItem === item; });
372
356
  if (index >= 0) {
373
357
  handlerMethods.scrollToIndex({
374
358
  index: index,
@@ -387,7 +371,7 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
387
371
  return recyclerViewManager.getWindowSize();
388
372
  },
389
373
  getLayout: function (index) {
390
- return recyclerViewManager.getLayout(index);
374
+ return recyclerViewManager.tryGetLayout(index);
391
375
  },
392
376
  getAbsoluteLastScrollOffset: function () {
393
377
  return recyclerViewManager.getAbsoluteLastScrollOffset();
@@ -398,11 +382,11 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
398
382
  recordInteraction: function () {
399
383
  recyclerViewManager.recordInteraction();
400
384
  },
401
- getVisibleIndices: function () {
402
- return recyclerViewManager.getVisibleIndices();
385
+ computeVisibleIndices: function () {
386
+ return recyclerViewManager.computeVisibleIndices();
403
387
  },
404
388
  getFirstVisibleIndex: function () {
405
- return recyclerViewManager.getVisibleIndices().startIndex;
389
+ return recyclerViewManager.computeVisibleIndices().startIndex;
406
390
  },
407
391
  recomputeViewableItems: function () {
408
392
  recyclerViewManager.recomputeViewableItems();
@@ -411,14 +395,52 @@ function useRecyclerViewController(recyclerViewManager, ref, scrollViewRef, scro
411
395
  * Disables item recycling in preparation for layout animations.
412
396
  */
413
397
  prepareForLayoutAnimationRender: function () {
414
- recyclerViewManager.disableRecycling = true;
398
+ recyclerViewManager.disableRecycling(true);
415
399
  },
416
400
  };
417
- }, [horizontal, data, recyclerViewManager]);
401
+ }, [
402
+ recyclerViewManager,
403
+ scrollViewRef,
404
+ setTimeout,
405
+ isUnmounted,
406
+ updateScrollOffsetAsync,
407
+ ]);
408
+ var applyInitialScrollIndex = (0, react_1.useCallback)(function () {
409
+ var _a, _b;
410
+ var _c = recyclerViewManager.props, horizontal = _c.horizontal, data = _c.data;
411
+ var initialScrollIndex = (_a = recyclerViewManager.getInitialScrollIndex()) !== null && _a !== void 0 ? _a : -1;
412
+ var dataLength = (_b = data === null || data === void 0 ? void 0 : data.length) !== null && _b !== void 0 ? _b : 0;
413
+ if (initialScrollIndex >= 0 &&
414
+ initialScrollIndex < dataLength &&
415
+ !initialScrollCompletedRef.current &&
416
+ recyclerViewManager.getIsFirstLayoutComplete()) {
417
+ // Use setTimeout to ensure that we keep trying to scroll on first few renders
418
+ setTimeout(function () {
419
+ initialScrollCompletedRef.current = true;
420
+ pauseOffsetCorrection.current = false;
421
+ }, 100);
422
+ pauseOffsetCorrection.current = true;
423
+ var offset_1 = horizontal
424
+ ? recyclerViewManager.getLayout(initialScrollIndex).x
425
+ : recyclerViewManager.getLayout(initialScrollIndex).y;
426
+ handlerMethods.scrollToOffset({
427
+ offset: offset_1,
428
+ animated: false,
429
+ skipFirstItemOffset: false,
430
+ });
431
+ setTimeout(function () {
432
+ handlerMethods.scrollToOffset({
433
+ offset: offset_1,
434
+ animated: false,
435
+ skipFirstItemOffset: false,
436
+ });
437
+ }, 0);
438
+ }
439
+ }, [handlerMethods, recyclerViewManager, setTimeout]);
418
440
  // Expose imperative methods through the ref
419
441
  (0, react_1.useImperativeHandle)(ref, function () {
420
442
  return tslib_1.__assign(tslib_1.__assign({}, scrollViewRef.current), handlerMethods);
421
- }, [handlerMethods]);
422
- return { applyContentOffset: applyContentOffset, applyInitialScrollIndex: applyInitialScrollIndex };
443
+ }, [handlerMethods, scrollViewRef]);
444
+ return { applyContentOffset: applyContentOffset, applyInitialScrollIndex: applyInitialScrollIndex, handlerMethods: handlerMethods };
423
445
  }
424
446
  //# sourceMappingURL=useRecyclerViewController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRecyclerViewController.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useRecyclerViewController.tsx"],"names":[],"mappings":";;AA2CA,8DAieC;;AA5gBD,+BAOe;AACf,6CAA2C;AAW3C,kEAAiE;AAGjE,qEAAoE;AAEpE,mDAAkD;AAClD,uEAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,yBAAyB,CACvC,mBAA2C,EAC3C,GAA+B,EAC/B,aAAwC,EACxC,eAAiD;IAJnD,iBAieC;;IA3dC,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,qBAAqB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC5C,IAAM,yBAAyB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAChD,IAAM,iBAAiB,GAAG,IAAA,cAAM,EAAC,MAAA,MAAA,mBAAmB,CAAC,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CAAC,CAAC;IACtE,IAAA,UAAU,GAAK,IAAA,iDAAsB,GAAE,WAA7B,CAA8B;IAEhD,+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,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;;;;YAC/B,KACJ,mBAAmB,CAAC,KAAK,EADnB,UAAU,gBAAA,EAAE,IAAI,UAAA,EAAE,YAAY,kBAAA,EAAE,8BAA8B,oCAAA,CAC1C;YAEtB,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,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC;YAE5C,IACE,CAAC,UAAU;gBACX,mBAAmB,CAAC,wBAAwB,EAAE;gBAC9C,YAAY;gBACZ,iBAAiB,GAAG,CAAC;gBACrB,CAAA,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAE,QAAQ,MAAK,IAAI,EACjD,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,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;4BACnC,mBAAmB,CAAC,OAAO;oBAD3B,CAC2B,CAC9B,mCACH,CAAC,cAAc;wBACb,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CACb,UAAC,IAAI,EAAE,KAAK;4BACV,OAAA,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,EAAE,KAAK,CAAC,MAAK,mBAAmB,CAAC,OAAO;wBAA3D,CAA2D,CAC9D;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,qBAAqB,CAAC,OAAO,EAAE,CAAC;4BACjD,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,qBAAqB,EAAE,CAAC,UAAU,CACvD,CAAC;gBACF,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;oBAC9D,mBAAmB,CAAC,OAAO,GAAG,YAAY,CACxC,IAAK,CAAC,iBAAiB,CAAC,EACxB,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,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC;;;SAC/C,EAAE;QACD,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,UAAU;QACV,uBAAuB;KACxB,CAAC,CAAC;IAEH,IAAM,cAAc,GAAoB,IAAA,eAAO,EAAC;QAC9C,OAAO;YACL,IAAI,KAAK;gBACP,OAAO,mBAAmB,CAAC,KAAK,CAAC;YACnC,CAAC;YACD;;;eAGG;YACH,cAAc,EAAE,UAAC,EAIM;oBAHrB,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA;gBAElB,IAAA,UAAU,GAAK,mBAAmB,CAAC,KAAK,WAA9B,CAA+B;gBACjD,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;;;;gCACpB,IAAI,GAAK,mBAAmB,CAAC,KAAK,KAA9B,CAA+B;qCACvC,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,UAAU,CAAC;oCACT,aAAa,CAAC,OAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;gCACnD,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;aACP;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;;;;4BAEF,UAAU,GAAK,mBAAmB,CAAC,KAAK,WAA9B,CAA+B;iCAE/C,CAAA,aAAa,CAAC,OAAO;gCACrB,KAAK,IAAI,CAAC;gCACV,KAAK,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAA,EAF3C,wBAE2C;4BAE3C,sCAAsC;4BACtC,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC;4BACrC,mBAAmB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;4BAEhD,mBAAiB;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,GAAG,mBAAmB,CAAC,eAAe,CAAC;4BAC3D,CAAC,CAAC;4BACI,6BACJ,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;4BAC9C,eAAe,GAAG,UAAU;gCAChC,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK;gCAC3C,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;4BAEzC,qBAAmB,eAAe,GAAG,CAAC,CAAC;4BAEvC,oBAAoB,GAAG;gCAC3B,IAAI,gBAAgB,GAAG,0BAAwB,CAAC;gCAChD,IAAM,WAAW,GAAG,gBAAc,EAAE,CAAC;gCAErC,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;oCACnC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,WAAW,GAAG,kBAAgB,EAC9B,gBAAgB,CACjB,CAAC;oCACF,mBAAmB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;gCACpD,CAAC;qCAAM,CAAC;oCACN,gBAAgB,GAAG,IAAI,CAAC,GAAG,CACzB,WAAW,GAAG,kBAAgB,EAC9B,gBAAgB,CACjB,CAAC;oCACF,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gCACrD,CAAC;gCACD,OAAO,gBAAgB,CAAC;4BAC1B,CAAC,CAAC;4BACE,mBAAmB,GAAG,gBAAc,EAAE,CAAC;4BACvC,wBAAwB,GAAG,oBAAoB,EAAE,CAAC;4BAClD,WAAW,GAAG,mBAAmB,CAAC;4BAClC,iBAAiB,GAAG,wBAAwB,CAAC;4BAE3C,KAAK,GAAG,CAAC,CAAC;4BAGP,CAAC,GAAG,CAAC;;;iCAAE,CAAA,CAAC,GAAG,KAAK,CAAA;4BACvB,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxB,sBAAO;4BACT,CAAC;4BACK,UAAU,GAAG,QAAQ;gCACzB,CAAC,CAAC,WAAW;oCACX,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gCACvD,CAAC,CAAC,iBAAiB;oCACjB,CAAC,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC1D,qBAAM,uBAAuB,CAAC,UAAU,CAAC,EAAA;;4BAAzC,SAAyC,CAAC;4BAE1C,8DAA8D;4BAC9D,oDAAoD;4BACpD,IAAI,KAAK,IAAI,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC;gCACjD,cAAc,CAAC,WAAW,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;gCACzC,sBAAO;4BACT,CAAC;4BAEK,cAAc,GAAG,gBAAc,EAAE,CAAC;4BACxC,IACE,CAAC,cAAc,GAAG,mBAAmB;gCACnC,cAAc,GAAG,wBAAwB,CAAC;gCAC5C,CAAC,cAAc,GAAG,mBAAmB;oCACnC,cAAc,GAAG,wBAAwB,CAAC,EAC5C,CAAC;gCACD,WAAW,GAAG,cAAc,CAAC;gCAC7B,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;gCAC3C,mBAAmB,GAAG,cAAc,CAAC;gCACrC,wBAAwB,GAAG,iBAAiB,CAAC;gCAC7C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB;4BACjC,CAAC;;;4BA9BwB,CAAC,EAAE,CAAA;;;4BAiC9B,WAAW,GAAG,gBAAc,EAAE,CAAC;4BACzB,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;4BAE3D,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;gCAC5B,WAAW,GAAG,SAAS,CAAC;4BAC1B,CAAC;4BAED,IAAI,QAAQ,EAAE,CAAC;gCACb,kEAAkE;gCAClE,cAAc,CAAC,cAAc,CAAC;oCAC5B,MAAM,EAAE,iBAAiB;oCACzB,QAAQ,EAAE,KAAK;oCACf,mBAAmB,EAAE,IAAI;iCAC1B,CAAC,CAAC;4BACL,CAAC;4BACD,cAAc,CAAC,cAAc,CAAC;gCAC5B,MAAM,EAAE,WAAW;gCACnB,QAAQ,UAAA;gCACR,mBAAmB,EAAE,IAAI;6BAC1B,CAAC,CAAC;4BAEH,UAAU,CACR;gCACE,qBAAqB,CAAC,OAAO,GAAG,KAAK,CAAC;gCACtC,mBAAmB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;4BACvD,CAAC,EACD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CACrB,CAAC;;;;;iBAEL;YAED;;;eAGG;YACH,YAAY,EAAE,UAAC,EAKS;oBAJtB,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,UAAU,gBAAA;gBAEF,IAAA,IAAI,GAAK,mBAAmB,CAAC,KAAK,KAA9B,CAA+B;gBAC3C,IAAI,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAClC,+CAA+C;oBAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,KAAK,IAAI,EAAjB,CAAiB,CAAC,CAAC;oBAC9D,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,YAAY,CAAC,KAAK,CAAC,CAAC;YACjD,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,qBAAqB,EAAE;gBACrB,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;YACrD,CAAC;YACD,oBAAoB,EAAE;gBACpB,OAAO,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC;YAChE,CAAC;YACD,sBAAsB,EAAE;gBACtB,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;YAC/C,CAAC;YACD;;eAEG;YACH,+BAA+B,EAAE;gBAC/B,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC,EAAE;QACD,mBAAmB;QACnB,aAAa;QACb,UAAU;QACV,WAAW;QACX,uBAAuB;KACxB,CAAC,CAAC;IAEH,IAAM,uBAAuB,GAAG,IAAA,mBAAW,EAAC;;QACpC,IAAA,KAAuB,mBAAmB,CAAC,KAAK,EAA9C,UAAU,gBAAA,EAAE,IAAI,UAA8B,CAAC;QAEvD,IAAM,kBAAkB,GACtB,MAAA,mBAAmB,CAAC,qBAAqB,EAAE,mCAAI,CAAC,CAAC,CAAC;QACpD,IAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC,CAAC;QACrC,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,qBAAqB,CAAC,OAAO,GAAG,KAAK,CAAC;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC;YAErC,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,cAAc,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,4CAA4C;IAC5C,IAAA,2BAAmB,EACjB,GAAG,EACH;QACE,6CAAY,aAAa,CAAC,OAAO,GAAK,cAAc,EAAG;IACzD,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,CAAC,CAChC,CAAC;IAEF,OAAO,EAAE,kBAAkB,oBAAA,EAAE,uBAAuB,yBAAA,EAAE,cAAc,gBAAA,EAAE,CAAC;AACzE,CAAC"}
@@ -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;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;;;CA2BpE,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"}
@@ -11,18 +11,24 @@ var useRecyclerViewManager = function (props) {
11
11
  var data = props.data;
12
12
  (0, react_1.useMemo)(function () {
13
13
  recyclerViewManager.updateProps(props);
14
+ // used to update props so rule can be disabled
15
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14
16
  }, [props]);
15
17
  /**
16
18
  * When data changes, we need to process the data update before the render happens
17
19
  */
18
20
  (0, react_1.useMemo)(function () {
19
21
  recyclerViewManager.processDataUpdate();
22
+ // used to process data update so rule can be disabled
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
20
24
  }, [data]);
21
25
  (0, react_1.useEffect)(function () {
22
26
  return function () {
23
27
  recyclerViewManager.dispose();
24
28
  velocityTracker.cleanUp();
25
29
  };
30
+ // needs to run only on unmount
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
32
  }, []);
27
33
  return { recyclerViewManager: recyclerViewManager, velocityTracker: velocityTracker };
28
34
  };