@shopify/flash-list 2.0.4-alpha.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AnimatedFlashList.js +4 -6
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.js +1 -5
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +41 -1
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js +1 -4
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.js +1 -2
- package/dist/benchmark/AutoScrollHelper.js +22 -30
- package/dist/benchmark/AutoScrollHelper.js.map +1 -1
- package/dist/benchmark/JSFPSMonitor.js +27 -33
- package/dist/benchmark/JSFPSMonitor.js.map +1 -1
- package/dist/benchmark/roundToDecimalPlaces.js +2 -5
- package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
- package/dist/benchmark/useBenchmark.d.ts +9 -1
- package/dist/benchmark/useBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useBenchmark.js +86 -95
- package/dist/benchmark/useBenchmark.js.map +1 -1
- package/dist/benchmark/useDataMultiplier.js +6 -10
- package/dist/benchmark/useDataMultiplier.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +73 -81
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/errors/ErrorMessages.js +1 -4
- package/dist/errors/ErrorMessages.js.map +1 -1
- package/dist/errors/WarningMessages.js +1 -4
- package/dist/errors/WarningMessages.js.map +1 -1
- package/dist/index.js +17 -35
- package/dist/index.js.map +1 -1
- package/dist/isNewArch.js +6 -9
- package/dist/isNewArch.js.map +1 -1
- package/dist/native/config/PlatformHelper.android.js +2 -5
- package/dist/native/config/PlatformHelper.android.js.map +1 -1
- package/dist/native/config/PlatformHelper.ios.js +2 -5
- package/dist/native/config/PlatformHelper.ios.js.map +1 -1
- package/dist/native/config/PlatformHelper.js +2 -5
- package/dist/native/config/PlatformHelper.js.map +1 -1
- package/dist/native/config/PlatformHelper.web.js +2 -5
- package/dist/native/config/PlatformHelper.web.js.map +1 -1
- package/dist/recyclerview/LayoutCommitObserver.js +20 -24
- package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +134 -111
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +138 -167
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RecyclerViewProps.js +1 -2
- package/dist/recyclerview/RenderStackManager.js +97 -188
- package/dist/recyclerview/RenderStackManager.js.map +1 -1
- package/dist/recyclerview/ViewHolder.d.ts +2 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolder.js +19 -21
- package/dist/recyclerview/ViewHolder.js.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts +4 -0
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.js +26 -30
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
- package/dist/recyclerview/components/CompatScroller.js +6 -7
- package/dist/recyclerview/components/CompatScroller.js.map +1 -1
- package/dist/recyclerview/components/CompatView.js +6 -7
- package/dist/recyclerview/components/CompatView.js.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js +10 -15
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.d.ts +5 -1
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +77 -51
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
- package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
- package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
- package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
- package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.js +9 -15
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
- package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
- package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.js +16 -22
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts +2 -0
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.js +39 -30
- package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
- package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
- package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
- package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
- package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
- package/dist/recyclerview/utils/componentUtils.js +4 -9
- package/dist/recyclerview/utils/componentUtils.js.map +1 -1
- package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
- package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.js +12 -20
- package/dist/recyclerview/utils/measureLayout.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.web.js +15 -23
- package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
- package/dist/recyclerview/viewability/ViewToken.js +1 -2
- package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
- package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
- package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
- package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/AverageWindow.js +28 -39
- package/dist/utils/AverageWindow.js.map +1 -1
- package/package.json +4 -6
- package/src/FlashListProps.ts +51 -1
- package/src/benchmark/useBenchmark.ts +47 -4
- package/src/benchmark/useFlatListBenchmark.ts +38 -5
- package/src/recyclerview/RecyclerView.tsx +42 -8
- package/src/recyclerview/ViewHolder.tsx +6 -1
- package/src/recyclerview/ViewHolderCollection.tsx +10 -0
- package/src/recyclerview/components/StickyHeaders.tsx +54 -13
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
- package/src/recyclerview/hooks/useSecondaryProps.tsx +23 -0
- package/dist/__tests__/AverageWindow.test.d.ts +0 -2
- package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
- package/dist/__tests__/AverageWindow.test.js +0 -104
- package/dist/__tests__/AverageWindow.test.js.map +0 -1
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
- package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
- package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
- package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/GridLayoutManager.test.js +0 -69
- package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
- package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
- package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
- package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
- package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
- package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/LinearLayoutManager.test.js +0 -140
- package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
- package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
- package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
- package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
- package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
- package/dist/__tests__/RecyclerView.test.d.ts +0 -2
- package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
- package/dist/__tests__/RecyclerView.test.js +0 -103
- package/dist/__tests__/RecyclerView.test.js.map +0 -1
- package/dist/__tests__/RecyclerViewManager.test.d.ts +0 -2
- package/dist/__tests__/RecyclerViewManager.test.d.ts.map +0 -1
- package/dist/__tests__/RecyclerViewManager.test.js +0 -56
- package/dist/__tests__/RecyclerViewManager.test.js.map +0 -1
- package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
- package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
- package/dist/__tests__/RenderStackManager.test.js +0 -485
- package/dist/__tests__/RenderStackManager.test.js.map +0 -1
- package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
- package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
- package/dist/__tests__/ViewabilityHelper.test.js +0 -186
- package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
- package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
- package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
- package/dist/__tests__/findVisibleIndex.test.js +0 -259
- package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
- package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
- package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
- package/dist/__tests__/helpers/createLayoutManager.js +0 -110
- package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
- package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
- package/src/__tests__/AverageWindow.test.ts +0 -128
- package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
- package/src/__tests__/GridLayoutManager.test.ts +0 -113
- package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
- package/src/__tests__/LinearLayoutManager.test.ts +0 -227
- package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
- package/src/__tests__/RecyclerView.test.tsx +0 -144
- package/src/__tests__/RecyclerViewManager.test.ts +0 -74
- package/src/__tests__/RenderStackManager.test.ts +0 -574
- package/src/__tests__/ViewabilityHelper.test.ts +0 -282
- package/src/__tests__/findVisibleIndex.test.ts +0 -369
- package/src/__tests__/helpers/createLayoutManager.ts +0 -141
- package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.useBoundDetection = useBoundDetection;
|
|
4
|
-
var react_1 = require("react");
|
|
5
|
-
var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { useUnmountAwareAnimationFrame } from "./useUnmountAwareCallbacks";
|
|
6
3
|
/**
|
|
7
4
|
* Hook to detect when the scroll position reaches near the start or end of the list
|
|
8
5
|
* and trigger the appropriate callbacks. This hook is responsible for:
|
|
@@ -14,55 +11,55 @@ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
|
|
|
14
11
|
* @param props - The RecyclerViewProps containing configuration and callbacks
|
|
15
12
|
* @param scrollViewRef - Reference to the scrollable container component
|
|
16
13
|
*/
|
|
17
|
-
function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
14
|
+
export function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
18
15
|
// Track whether we've already triggered the end reached callback to prevent duplicate calls
|
|
19
|
-
|
|
16
|
+
const pendingEndReached = useRef(false);
|
|
20
17
|
// Track whether we've already triggered the start reached callback to prevent duplicate calls
|
|
21
|
-
|
|
18
|
+
const pendingStartReached = useRef(false);
|
|
22
19
|
// Track whether we should auto-scroll to bottom when new content is added
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
const pendingAutoscrollToBottom = useRef(false);
|
|
21
|
+
const lastCheckBoundsTime = useRef(Date.now());
|
|
22
|
+
const { data } = recyclerViewManager.props;
|
|
23
|
+
const { requestAnimationFrame } = useUnmountAwareAnimationFrame();
|
|
24
|
+
const windowHeight = recyclerViewManager.hasLayout()
|
|
28
25
|
? recyclerViewManager.getWindowSize().height
|
|
29
26
|
: 0;
|
|
30
|
-
|
|
27
|
+
const contentHeight = recyclerViewManager.hasLayout()
|
|
31
28
|
? recyclerViewManager.getChildContainerDimensions().height
|
|
32
29
|
: 0;
|
|
33
|
-
|
|
30
|
+
const windowWidth = recyclerViewManager.hasLayout()
|
|
34
31
|
? recyclerViewManager.getWindowSize().width
|
|
35
32
|
: 0;
|
|
36
|
-
|
|
33
|
+
const contentWidth = recyclerViewManager.hasLayout()
|
|
37
34
|
? recyclerViewManager.getChildContainerDimensions().width
|
|
38
35
|
: 0;
|
|
39
36
|
/**
|
|
40
37
|
* Checks if the scroll position is near the start or end of the list
|
|
41
38
|
* and triggers appropriate callbacks if configured.
|
|
42
39
|
*/
|
|
43
|
-
|
|
40
|
+
const checkBounds = useCallback(() => {
|
|
44
41
|
var _a;
|
|
45
42
|
lastCheckBoundsTime.current = Date.now();
|
|
46
|
-
|
|
43
|
+
const { onEndReached, onStartReached, maintainVisibleContentPosition, horizontal, onEndReachedThreshold: onEndReachedThresholdProp, onStartReachedThreshold: onStartReachedThresholdProp, } = recyclerViewManager.props;
|
|
47
44
|
// Skip all calculations if neither callback is provided and autoscroll is disabled
|
|
48
|
-
|
|
45
|
+
const autoscrollToBottomThreshold = (_a = maintainVisibleContentPosition === null || maintainVisibleContentPosition === void 0 ? void 0 : maintainVisibleContentPosition.autoscrollToBottomThreshold) !== null && _a !== void 0 ? _a : -1;
|
|
49
46
|
if (!onEndReached && !onStartReached && autoscrollToBottomThreshold < 0) {
|
|
50
47
|
return;
|
|
51
48
|
}
|
|
52
49
|
if (recyclerViewManager.getIsFirstLayoutComplete()) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const lastScrollOffset = recyclerViewManager.getAbsoluteLastScrollOffset();
|
|
51
|
+
const contentSize = recyclerViewManager.getChildContainerDimensions();
|
|
52
|
+
const windowSize = recyclerViewManager.getWindowSize();
|
|
53
|
+
const isHorizontal = horizontal === true;
|
|
57
54
|
// Calculate dimensions based on scroll direction
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
const visibleLength = isHorizontal ? windowSize.width : windowSize.height;
|
|
56
|
+
const contentLength = (isHorizontal ? contentSize.width : contentSize.height) +
|
|
60
57
|
recyclerViewManager.firstItemOffset;
|
|
61
58
|
// Check if we're near the end of the list
|
|
62
59
|
if (onEndReached) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
const onEndReachedThreshold = onEndReachedThresholdProp !== null && onEndReachedThresholdProp !== void 0 ? onEndReachedThresholdProp : 0.5;
|
|
61
|
+
const endThresholdDistance = onEndReachedThreshold * visibleLength;
|
|
62
|
+
const isNearEnd = Math.ceil(lastScrollOffset + visibleLength) >=
|
|
66
63
|
contentLength - endThresholdDistance;
|
|
67
64
|
if (isNearEnd && !pendingEndReached.current) {
|
|
68
65
|
pendingEndReached.current = true;
|
|
@@ -72,9 +69,9 @@ function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
|
72
69
|
}
|
|
73
70
|
// Check if we're near the start of the list
|
|
74
71
|
if (onStartReached) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
const onStartReachedThreshold = onStartReachedThresholdProp !== null && onStartReachedThresholdProp !== void 0 ? onStartReachedThresholdProp : 0.2;
|
|
73
|
+
const startThresholdDistance = onStartReachedThreshold * visibleLength;
|
|
74
|
+
const isNearStart = lastScrollOffset <= startThresholdDistance;
|
|
78
75
|
if (isNearStart && !pendingStartReached.current) {
|
|
79
76
|
pendingStartReached.current = true;
|
|
80
77
|
onStartReached();
|
|
@@ -83,8 +80,8 @@ function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
|
83
80
|
}
|
|
84
81
|
// Handle auto-scrolling to bottom for vertical lists
|
|
85
82
|
if (!isHorizontal && autoscrollToBottomThreshold >= 0) {
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
const autoscrollToBottomThresholdDistance = autoscrollToBottomThreshold * visibleLength;
|
|
84
|
+
const isNearBottom = Math.ceil(lastScrollOffset + visibleLength) >=
|
|
88
85
|
contentLength - autoscrollToBottomThresholdDistance;
|
|
89
86
|
if (isNearBottom) {
|
|
90
87
|
pendingAutoscrollToBottom.current = true;
|
|
@@ -95,12 +92,12 @@ function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
}, [recyclerViewManager]);
|
|
98
|
-
|
|
95
|
+
const runAutoScrollToBottomCheck = useCallback(() => {
|
|
99
96
|
if (pendingAutoscrollToBottom.current) {
|
|
100
97
|
pendingAutoscrollToBottom.current = false;
|
|
101
|
-
requestAnimationFrame(
|
|
98
|
+
requestAnimationFrame(() => {
|
|
102
99
|
var _a, _b, _c;
|
|
103
|
-
|
|
100
|
+
const shouldAnimate = (_b = (_a = recyclerViewManager.props.maintainVisibleContentPosition) === null || _a === void 0 ? void 0 : _a.animateAutoScrollToBottom) !== null && _b !== void 0 ? _b : true;
|
|
104
101
|
(_c = scrollViewRef.current) === null || _c === void 0 ? void 0 : _c.scrollToEnd({
|
|
105
102
|
animated: shouldAnimate,
|
|
106
103
|
});
|
|
@@ -108,17 +105,17 @@ function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
|
108
105
|
}
|
|
109
106
|
}, [requestAnimationFrame, scrollViewRef, recyclerViewManager]);
|
|
110
107
|
// Reset end reached state when data changes
|
|
111
|
-
|
|
108
|
+
useMemo(() => {
|
|
112
109
|
pendingEndReached.current = false;
|
|
113
110
|
// needs to run only when data changes
|
|
114
111
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
115
112
|
}, [data]);
|
|
116
113
|
// Auto-scroll to bottom when new content is added and we're near the bottom
|
|
117
|
-
|
|
114
|
+
useEffect(() => {
|
|
118
115
|
runAutoScrollToBottomCheck();
|
|
119
116
|
}, [data, runAutoScrollToBottomCheck, windowHeight, windowWidth]);
|
|
120
117
|
// Since content changes frequently, we try and avoid doing the auto scroll during active scrolls
|
|
121
|
-
|
|
118
|
+
useEffect(() => {
|
|
122
119
|
if (Date.now() - lastCheckBoundsTime.current >= 100) {
|
|
123
120
|
runAutoScrollToBottomCheck();
|
|
124
121
|
}
|
|
@@ -129,7 +126,7 @@ function useBoundDetection(recyclerViewManager, scrollViewRef) {
|
|
|
129
126
|
runAutoScrollToBottomCheck,
|
|
130
127
|
]);
|
|
131
128
|
return {
|
|
132
|
-
checkBounds
|
|
129
|
+
checkBounds,
|
|
133
130
|
};
|
|
134
131
|
}
|
|
135
132
|
//# sourceMappingURL=useBoundDetection.js.map
|
|
@@ -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":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.useLayoutState = useLayoutState;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var react_1 = require("react");
|
|
6
|
-
var RecyclerViewContextProvider_1 = require("../RecyclerViewContextProvider");
|
|
1
|
+
import { useState, useCallback } from "react";
|
|
2
|
+
import { useRecyclerViewContext } from "../RecyclerViewContextProvider";
|
|
7
3
|
/**
|
|
8
4
|
* Custom hook that combines state management with RecyclerView layout updates.
|
|
9
5
|
* This hook provides a way to manage state that affects the layout of the RecyclerView,
|
|
@@ -14,11 +10,11 @@ var RecyclerViewContextProvider_1 = require("../RecyclerViewContextProvider");
|
|
|
14
10
|
* - The current state value
|
|
15
11
|
* - A setter function that updates the state and triggers a layout recalculation
|
|
16
12
|
*/
|
|
17
|
-
function useLayoutState(initialState) {
|
|
13
|
+
export function useLayoutState(initialState) {
|
|
18
14
|
// Initialize state with the provided initial value
|
|
19
|
-
|
|
15
|
+
const [state, setState] = useState(initialState);
|
|
20
16
|
// Get the RecyclerView context for layout management
|
|
21
|
-
|
|
17
|
+
const recyclerViewContext = useRecyclerViewContext();
|
|
22
18
|
/**
|
|
23
19
|
* Setter function that updates the state and triggers a layout recalculation.
|
|
24
20
|
* This ensures that any state changes that affect the layout are properly reflected
|
|
@@ -27,13 +23,11 @@ function useLayoutState(initialState) {
|
|
|
27
23
|
* @param newValue - Either a new state value or a function that receives the previous state
|
|
28
24
|
* and returns the new state
|
|
29
25
|
*/
|
|
30
|
-
|
|
26
|
+
const setLayoutState = useCallback((newValue, skipParentLayout) => {
|
|
31
27
|
// Update the state using either the new value or the result of the updater function
|
|
32
|
-
setState(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: newValue;
|
|
36
|
-
});
|
|
28
|
+
setState((prevValue) => typeof newValue === "function"
|
|
29
|
+
? newValue(prevValue)
|
|
30
|
+
: newValue);
|
|
37
31
|
if (!skipParentLayout) {
|
|
38
32
|
// Trigger a layout recalculation in the RecyclerView
|
|
39
33
|
recyclerViewContext === null || recyclerViewContext === void 0 ? void 0 : recyclerViewContext.layout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayoutState.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useLayoutState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLayoutState.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useLayoutState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AASxE;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAwC;IAExC,mDAAmD;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAI,YAAY,CAAC,CAAC;IACpD,qDAAqD;IACrD,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IAErD;;;;;;;OAOG;IACH,MAAM,cAAc,GAAyB,WAAW,CACtD,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE;QAC7B,oFAAoF;QACpF,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CACrB,OAAO,QAAQ,KAAK,UAAU;YAC5B,CAAC,CAAE,QAAgC,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,QAAQ,CACb,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,qDAAqD;YACrD,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.useMappingHelper = void 0;
|
|
4
|
-
var react_1 = require("react");
|
|
5
|
-
var RecyclerViewContextProvider_1 = require("../RecyclerViewContextProvider");
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useRecyclerViewContext } from "../RecyclerViewContextProvider";
|
|
6
3
|
/**
|
|
7
4
|
* Returns a function that can help create a mapping key for the items.
|
|
8
5
|
* Useful when doing .map on items to create a list of components.
|
|
9
6
|
* Using this ensures that performance is optimal for FlashList
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
export const useMappingHelper = () => {
|
|
9
|
+
const recyclerViewContext = useRecyclerViewContext();
|
|
10
|
+
const getMappingKey = useCallback((itemKey, index) => {
|
|
14
11
|
return recyclerViewContext ? index : itemKey;
|
|
15
12
|
}, [recyclerViewContext]);
|
|
16
|
-
return { getMappingKey
|
|
13
|
+
return { getMappingKey };
|
|
17
14
|
};
|
|
18
|
-
exports.useMappingHelper = useMappingHelper;
|
|
19
15
|
//# sourceMappingURL=useMappingHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMappingHelper.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMappingHelper.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useMappingHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,OAAiC,EAAE,KAAa,EAAE,EAAE;QACnD,OAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.useOnLoad = exports.useOnListLoad = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var react_1 = require("react");
|
|
6
|
-
var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
|
|
1
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
+
import { useUnmountAwareAnimationFrame } from "./useUnmountAwareCallbacks";
|
|
7
3
|
// import { ToastAndroid } from "react-native";
|
|
8
4
|
/**
|
|
9
5
|
* Hook to track when the RecyclerView has loaded its items and notify when loading is complete.
|
|
@@ -14,23 +10,23 @@ var useUnmountAwareCallbacks_1 = require("./useUnmountAwareCallbacks");
|
|
|
14
10
|
* @param onLoad - Optional callback function that will be called when the list has loaded with timing information
|
|
15
11
|
* @returns Object containing isLoaded state indicating whether the list has completed initial rendering
|
|
16
12
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
export const useOnListLoad = (recyclerViewManager, onLoad) => {
|
|
14
|
+
const loadStartTimeRef = useRef(Date.now());
|
|
15
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
16
|
+
const dataLength = recyclerViewManager.getDataLength();
|
|
21
17
|
// const dataCollector = useRef<number[]>([]);
|
|
22
|
-
|
|
18
|
+
const { requestAnimationFrame } = useUnmountAwareAnimationFrame();
|
|
23
19
|
// Track render cycles by collecting elapsed time on each render
|
|
24
20
|
// useEffect(() => {
|
|
25
21
|
// const elapsedTimeInMs = Date.now() - loadStartTimeRef.current;
|
|
26
22
|
// dataCollector.current?.push(elapsedTimeInMs);
|
|
27
23
|
// });
|
|
28
|
-
|
|
24
|
+
useMemo(() => {
|
|
29
25
|
loadStartTimeRef.current = Date.now();
|
|
30
26
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
27
|
}, [dataLength]);
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
useOnLoad(recyclerViewManager, () => {
|
|
29
|
+
const elapsedTimeInMs = Date.now() - loadStartTimeRef.current;
|
|
34
30
|
// Commented code below was used for debugging purposes
|
|
35
31
|
// to display all collected timing data points
|
|
36
32
|
// const dataCollectorString = dataCollector.current
|
|
@@ -42,15 +38,14 @@ var useOnListLoad = function (recyclerViewManager, onLoad) {
|
|
|
42
38
|
// );
|
|
43
39
|
// console.log("----------> dataCollector", dataCollectorString);
|
|
44
40
|
// console.log("----------> FlashList v2 load in", `${elapsedTimeInMs} ms`);
|
|
45
|
-
requestAnimationFrame(
|
|
41
|
+
requestAnimationFrame(() => {
|
|
46
42
|
recyclerViewManager.isFirstPaintOnUiComplete = true;
|
|
47
|
-
onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs
|
|
43
|
+
onLoad === null || onLoad === void 0 ? void 0 : onLoad({ elapsedTimeInMs });
|
|
48
44
|
setIsLoaded(true);
|
|
49
45
|
});
|
|
50
46
|
});
|
|
51
|
-
return { isLoaded
|
|
47
|
+
return { isLoaded };
|
|
52
48
|
};
|
|
53
|
-
exports.useOnListLoad = useOnListLoad;
|
|
54
49
|
/**
|
|
55
50
|
* Core hook that detects when a RecyclerView has completed its initial layout.
|
|
56
51
|
* This hook monitors the RecyclerViewManager and triggers the provided callback
|
|
@@ -59,9 +54,9 @@ exports.useOnListLoad = useOnListLoad;
|
|
|
59
54
|
* @param recyclerViewManager - The RecyclerViewManager instance to monitor
|
|
60
55
|
* @param onLoad - Callback function that will be called once when the first layout is complete
|
|
61
56
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
export const useOnLoad = (recyclerViewManager, onLoad) => {
|
|
58
|
+
const isLoaded = useRef(false);
|
|
59
|
+
useEffect(() => {
|
|
65
60
|
// Only trigger onLoad callback once when first layout is complete
|
|
66
61
|
if (recyclerViewManager.getIsFirstLayoutComplete() && !isLoaded.current) {
|
|
67
62
|
isLoaded.current = true;
|
|
@@ -69,5 +64,4 @@ var useOnLoad = function (recyclerViewManager, onLoad) {
|
|
|
69
64
|
}
|
|
70
65
|
});
|
|
71
66
|
};
|
|
72
|
-
exports.useOnLoad = useOnLoad;
|
|
73
67
|
//# sourceMappingURL=useOnLoad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useOnLoad.js","sourceRoot":"","sources":["../../../src/recyclerview/hooks/useOnLoad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,+CAA+C;AAE/C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,mBAA2C,EAC3C,MAAoD,EAC7B,EAAE;IACzB,MAAM,gBAAgB,GAAG,MAAM,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;IACvD,8CAA8C;IAC9C,MAAM,EAAE,qBAAqB,EAAE,GAAG,6BAA6B,EAAE,CAAC;IAClE,gEAAgE;IAChE,oBAAoB;IACpB,mEAAmE;IACnE,kDAAkD;IAClD,MAAM;IAEN,OAAO,CAAC,GAAG,EAAE;QACX,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,uDAAuD;IACzD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,MAAM,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,GAAG,EAAE;YACzB,mBAAmB,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACpD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,EAAE,eAAe,EAAE,CAAC,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,mBAA2C,EAC3C,MAAkB,EAClB,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,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"}
|
|
@@ -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,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;AAO7D;;;;;;;;;;;;;;;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;;;;;
|
|
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;AAO7D;;;;;;;;;;;;;;;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;;;;;EAwkBlD"}
|