@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.
- package/README.md +6 -2
- package/dist/AnimatedFlashList.d.ts.map +1 -1
- package/dist/AnimatedFlashList.js +3 -3
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.d.ts +9 -0
- package/dist/FlashList.d.ts.map +1 -1
- package/dist/FlashList.js +20 -0
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +13 -6
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.d.ts +295 -0
- package/dist/FlashListRef.d.ts.map +1 -0
- package/dist/FlashListRef.js +3 -0
- package/dist/FlashListRef.js.map +1 -0
- package/dist/__tests__/RecyclerView.test.js +62 -27
- package/dist/__tests__/RecyclerView.test.js.map +1 -1
- package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
- package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
- package/dist/__tests__/RenderStackManager.test.js +405 -0
- package/dist/__tests__/RenderStackManager.test.js.map +1 -0
- package/dist/__tests__/useUnmountAwareCallbacks.test.js +1 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +8 -7
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/recyclerview/RecyclerView.d.ts +2 -1
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +33 -14
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts +6 -5
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.d.ts +11 -7
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +57 -102
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RenderStackManager.d.ts +85 -0
- package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
- package/dist/recyclerview/RenderStackManager.js +261 -0
- package/dist/recyclerview/RenderStackManager.js.map +1 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolder.js +5 -3
- package/dist/recyclerview/ViewHolder.js.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts +3 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.js +19 -3
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +44 -17
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -2
- package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.js +19 -16
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.js +4 -6
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +3 -48
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +93 -71
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +6 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.js +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +10 -3
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +33 -4
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +6 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +27 -5
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +2 -2
- package/dist/recyclerview/layout-managers/LayoutManager.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/jestSetup.js +30 -11
- package/package.json +1 -1
- package/src/AnimatedFlashList.ts +3 -2
- package/src/FlashList.tsx +24 -0
- package/src/FlashListProps.ts +16 -7
- package/src/FlashListRef.ts +309 -0
- package/src/__tests__/RecyclerView.test.tsx +83 -29
- package/src/__tests__/RenderStackManager.test.ts +488 -0
- package/src/__tests__/useUnmountAwareCallbacks.test.tsx +12 -12
- package/src/benchmark/useFlatListBenchmark.ts +2 -2
- package/src/index.ts +1 -0
- package/src/recyclerview/RecyclerView.tsx +38 -23
- package/src/recyclerview/RecyclerViewContextProvider.ts +12 -6
- package/src/recyclerview/RecyclerViewManager.ts +73 -88
- package/src/recyclerview/RenderStackManager.ts +265 -0
- package/src/recyclerview/ViewHolder.tsx +5 -3
- package/src/recyclerview/ViewHolderCollection.tsx +29 -8
- package/src/recyclerview/components/ScrollAnchor.tsx +9 -5
- package/src/recyclerview/components/StickyHeaders.tsx +57 -19
- package/src/recyclerview/hooks/useBoundDetection.ts +25 -18
- package/src/recyclerview/hooks/useOnLoad.ts +4 -6
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +104 -125
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +6 -0
- package/src/recyclerview/hooks/useSecondaryProps.tsx +1 -1
- package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +39 -3
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +30 -7
- package/src/recyclerview/layout-managers/LayoutManager.ts +2 -2
- package/dist/__tests__/RecycleKeyManager.test.d.ts +0 -2
- package/dist/__tests__/RecycleKeyManager.test.d.ts.map +0 -1
- package/dist/__tests__/RecycleKeyManager.test.js +0 -210
- package/dist/__tests__/RecycleKeyManager.test.js.map +0 -1
- package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
- package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
- package/dist/recyclerview/RecycleKeyManager.js +0 -135
- package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
- package/src/__tests__/RecycleKeyManager.test.ts +0 -254
- 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,
|
|
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
|
|
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
|
|
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 (!
|
|
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 =
|
|
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 (
|
|
48
|
-
var onEndReachedThreshold =
|
|
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
|
-
|
|
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 (
|
|
60
|
-
var onStartReachedThreshold =
|
|
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
|
-
|
|
66
|
+
onStartReached();
|
|
66
67
|
}
|
|
67
68
|
pendingStartReached.current = isNearStart;
|
|
68
69
|
}
|
|
69
70
|
// Handle auto-scrolling to bottom for vertical lists
|
|
70
|
-
if (!
|
|
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
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"useBoundDetection.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useBoundDetection.ts"],"names":[],"mappings":";;AAkBA,8CAmHC;AArID,+BAAgE;AAKhE,uEAA2E;AAE3E;;;;;;;;;;GAUG;AACH,SAAgB,iBAAiB,CAC/B,mBAA2C,EAC3C,aAA8C;IAE9C,4FAA4F;IAC5F,IAAM,iBAAiB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACxC,8FAA8F;IAC9F,IAAM,mBAAmB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,IAAM,yBAAyB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACxC,IAAA,IAAI,GAAK,mBAAmB,CAAC,KAAK,KAA9B,CAA+B;IACnC,IAAA,qBAAqB,GAAK,IAAA,wDAA6B,GAAE,sBAApC,CAAqC;IAElE;;;OAGG;IACH,IAAM,WAAW,GAAG,IAAA,mBAAW,EAAC;;QACxB,IAAA,KAOF,mBAAmB,CAAC,KAAK,EAN3B,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,8BAA8B,oCAAA,EAC9B,UAAU,gBAAA,EACa,yBAAyB,2BAAA,EACvB,2BAA2B,6BACzB,CAAC;QAC9B,mFAAmF;QACnF,IAAM,2BAA2B,GAC/B,MAAA,8BAA8B,aAA9B,8BAA8B,uBAA9B,8BAA8B,CAAE,2BAA2B,mCAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,2BAA2B,GAAG,CAAC,EAAE,CAAC;YACxE,OAAO;QACT,CAAC;QAED,IAAI,mBAAmB,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACnD,IAAM,gBAAgB,GACpB,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;YACpD,IAAM,WAAW,GAAG,mBAAmB,CAAC,2BAA2B,EAAE,CAAC;YACtE,IAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;YACvD,IAAM,YAAY,GAAG,UAAU,KAAK,IAAI,CAAC;YAEzC,iDAAiD;YACjD,IAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1E,IAAM,aAAa,GACjB,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;gBACvD,mBAAmB,CAAC,eAAe,CAAC;YAEtC,0CAA0C;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAM,qBAAqB,GAAG,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,GAAG,CAAC;gBAC/D,IAAM,oBAAoB,GAAG,qBAAqB,GAAG,aAAa,CAAC;gBAEnE,IAAM,SAAS,GACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;oBAC3C,aAAa,GAAG,oBAAoB,CAAC;gBAEvC,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBAC5C,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACjC,YAAY,EAAE,CAAC;gBACjB,CAAC;gBACD,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;YACxC,CAAC;YAED,4CAA4C;YAC5C,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAM,uBAAuB,GAAG,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,GAAG,CAAC;gBACnE,IAAM,sBAAsB,GAAG,uBAAuB,GAAG,aAAa,CAAC;gBAEvE,IAAM,WAAW,GAAG,gBAAgB,IAAI,sBAAsB,CAAC;gBAE/D,IAAI,WAAW,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;oBAChD,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACnC,cAAc,EAAE,CAAC;gBACnB,CAAC;gBACD,mBAAmB,CAAC,OAAO,GAAG,WAAW,CAAC;YAC5C,CAAC;YAED,qDAAqD;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAM,mCAAmC,GACvC,2BAA2B,GAAG,aAAa,CAAC;gBAE9C,IAAM,YAAY,GAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC;oBAC3C,aAAa,GAAG,mCAAmC,CAAC;gBAEtD,IAAI,YAAY,EAAE,CAAC;oBACjB,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,yBAAyB,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,IAAA,eAAO,EAAC;QACN,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,sCAAsC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,4EAA4E;IAC5E,IAAA,iBAAS,EAAC;QACR,IAAI,yBAAyB,CAAC,OAAO,EAAE,CAAC;YACtC,qBAAqB,CAAC;;gBACpB,MAAA,aAAa,CAAC,OAAO,0CAAE,WAAW,EAAE,CAAC;gBACrC,yBAAyB,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjD,OAAO;QACL,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -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;
|
|
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
|
|
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
|
|
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
|
-
|
|
47
|
-
|
|
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,
|
|
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 {
|
|
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<
|
|
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,
|
|
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
|
|
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
|
|
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 ||
|
|
36
|
-
var setTimeout = (0, useUnmountAwareCallbacks_1.
|
|
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
|
|
102
|
-
return tslib_1.__generator(this, function (
|
|
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 =
|
|
107
|
-
if (!
|
|
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
|
-
|
|
78
|
+
keyExtractor &&
|
|
110
79
|
currentDataLength > 0 &&
|
|
111
|
-
(
|
|
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 = (
|
|
84
|
+
currentIndexOfFirstVisibleItem = (_c = recyclerViewManager
|
|
116
85
|
.getEngagedIndices()
|
|
117
86
|
.findValue(function (index) {
|
|
118
|
-
|
|
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 &&
|
|
122
|
-
?
|
|
123
|
-
|
|
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
|
-
(
|
|
101
|
+
(_d = scrollAnchorRef.current) === null || _d === void 0 ? void 0 : _d.scrollBy(diff);
|
|
136
102
|
}
|
|
137
103
|
else {
|
|
138
|
-
(
|
|
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.
|
|
119
|
+
firstVisibleIndex = Math.max(0, recyclerViewManager.computeVisibleIndices().startIndex);
|
|
154
120
|
if (firstVisibleIndex !== undefined && firstVisibleIndex >= 0) {
|
|
155
|
-
firstVisibleItemKey.current =
|
|
121
|
+
firstVisibleItemKey.current = keyExtractor(data[firstVisibleIndex], firstVisibleIndex);
|
|
156
122
|
firstVisibleItemLayout.current = tslib_1.__assign({}, recyclerViewManager.getLayout(firstVisibleIndex));
|
|
157
123
|
}
|
|
158
124
|
}
|
|
159
|
-
lastDataLengthRef.current = (
|
|
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
|
-
}); }, [
|
|
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
|
|
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 <
|
|
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 =
|
|
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.
|
|
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
|
-
|
|
402
|
-
return recyclerViewManager.
|
|
385
|
+
computeVisibleIndices: function () {
|
|
386
|
+
return recyclerViewManager.computeVisibleIndices();
|
|
403
387
|
},
|
|
404
388
|
getFirstVisibleIndex: function () {
|
|
405
|
-
return recyclerViewManager.
|
|
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
|
|
398
|
+
recyclerViewManager.disableRecycling(true);
|
|
415
399
|
},
|
|
416
400
|
};
|
|
417
|
-
}, [
|
|
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":"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"}
|
|
@@ -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;;;
|
|
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
|
};
|