@shopify/flash-list 2.0.4-alpha.1 → 2.1.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 +9 -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 +109 -107
- 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.js +16 -20
- package/dist/recyclerview/ViewHolder.js.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.js +34 -40
- 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.js +24 -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 +8 -1
- package/src/benchmark/useBenchmark.ts +47 -4
- package/src/benchmark/useFlatListBenchmark.ts +38 -5
- package/src/recyclerview/RecyclerView.tsx +7 -5
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
- 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 +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"}
|