@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":"useDataMultiplier.js","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDataMultiplier.js","sourceRoot":"","sources":["../../src/benchmark/useDataMultiplier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAI,IAAS,EAAE,KAAa;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -8,5 +8,8 @@ export interface FlatListBenchmarkParams extends BenchmarkParams {
|
|
|
8
8
|
* Target offset is mandatory in params.
|
|
9
9
|
* It's recommended to remove pagination while running the benchmark. Removing the onEndReached callback is the easiest way to do that.
|
|
10
10
|
*/
|
|
11
|
-
export declare function useFlatListBenchmark(flatListRef: React.RefObject<FlatList<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params: FlatListBenchmarkParams):
|
|
11
|
+
export declare function useFlatListBenchmark(flatListRef: React.RefObject<FlatList<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params: FlatListBenchmarkParams): {
|
|
12
|
+
startBenchmark: () => void;
|
|
13
|
+
isBenchmarkRunning: boolean;
|
|
14
|
+
};
|
|
12
15
|
//# sourceMappingURL=useFlatListBenchmark.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFlatListBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EACL,eAAe,EACf,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC3C,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,EAAE,uBAAuB
|
|
1
|
+
{"version":3,"file":"useFlatListBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EACL,eAAe,EACf,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC3C,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,EAAE,uBAAuB;;;EAuEhC"}
|
|
@@ -1,101 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var ErrorMessages_1 = require("../errors/ErrorMessages");
|
|
7
|
-
var AutoScrollHelper_1 = require("./AutoScrollHelper");
|
|
8
|
-
var JSFPSMonitor_1 = require("./JSFPSMonitor");
|
|
9
|
-
var useBenchmark_1 = require("./useBenchmark");
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { ErrorMessages } from "../errors/ErrorMessages";
|
|
3
|
+
import { autoScroll, Cancellable } from "./AutoScrollHelper";
|
|
4
|
+
import { JSFPSMonitor } from "./JSFPSMonitor";
|
|
5
|
+
import { getFormattedString, } from "./useBenchmark";
|
|
10
6
|
/**
|
|
11
7
|
* Runs the benchmark on FlatList and calls the callback method with the result.
|
|
12
8
|
* Target offset is mandatory in params.
|
|
13
9
|
* It's recommended to remove pagination while running the benchmark. Removing the onEndReached callback is the easiest way to do that.
|
|
14
10
|
*/
|
|
15
|
-
function useFlatListBenchmark(flatListRef, callback, params) {
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
export function useFlatListBenchmark(flatListRef, callback, params) {
|
|
12
|
+
const [isBenchmarkRunning, setIsBenchmarkRunning] = useState(false);
|
|
13
|
+
const cancellableRef = useRef(null);
|
|
14
|
+
const startBenchmark = useCallback(() => {
|
|
18
15
|
var _a;
|
|
19
|
-
|
|
16
|
+
if (isBenchmarkRunning) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const cancellable = new Cancellable();
|
|
20
|
+
cancellableRef.current = cancellable;
|
|
20
21
|
if (flatListRef.current && flatListRef.current.props) {
|
|
21
22
|
if (!(Number((_a = flatListRef.current.props.data) === null || _a === void 0 ? void 0 : _a.length) > 0)) {
|
|
22
|
-
throw new Error(
|
|
23
|
+
throw new Error(ErrorMessages.dataEmptyCannotRunBenchmark);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
26
|
+
setIsBenchmarkRunning(true);
|
|
27
|
+
const runBenchmark = async () => {
|
|
28
|
+
const jsFPSMonitor = new JSFPSMonitor();
|
|
29
|
+
jsFPSMonitor.startTracking();
|
|
30
|
+
for (let i = 0; i < (params.repeatCount || 1); i++) {
|
|
31
|
+
await runScrollBenchmark(flatListRef, params.targetOffset, cancellable, params.speedMultiplier || 1);
|
|
32
|
+
}
|
|
33
|
+
const jsProfilerResponse = jsFPSMonitor.stopAndGetData();
|
|
34
|
+
const result = {
|
|
35
|
+
js: jsProfilerResponse,
|
|
36
|
+
suggestions: [],
|
|
37
|
+
interrupted: cancellable.isCancelled(),
|
|
38
|
+
};
|
|
39
|
+
if (!cancellable.isCancelled()) {
|
|
40
|
+
result.formattedString = getFormattedString(result);
|
|
41
|
+
}
|
|
42
|
+
callback(result);
|
|
43
|
+
setIsBenchmarkRunning(false);
|
|
44
|
+
};
|
|
45
|
+
runBenchmark();
|
|
46
|
+
}, [
|
|
47
|
+
callback,
|
|
48
|
+
flatListRef,
|
|
49
|
+
isBenchmarkRunning,
|
|
50
|
+
params.repeatCount,
|
|
51
|
+
params.speedMultiplier,
|
|
52
|
+
params.targetOffset,
|
|
53
|
+
]);
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (params.startManually) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const cancelTimeout = setTimeout(() => {
|
|
59
|
+
startBenchmark();
|
|
60
|
+
}, params.startDelayInMs || 3000);
|
|
61
|
+
return () => {
|
|
59
62
|
clearTimeout(cancelTimeout);
|
|
60
|
-
|
|
63
|
+
if (cancellableRef.current) {
|
|
64
|
+
cancellableRef.current.cancel();
|
|
65
|
+
}
|
|
61
66
|
};
|
|
62
67
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
68
|
}, []);
|
|
64
|
-
return
|
|
69
|
+
return { startBenchmark, isBenchmarkRunning };
|
|
65
70
|
}
|
|
66
71
|
/**
|
|
67
72
|
* Scrolls to the target offset and then back to 0
|
|
68
73
|
*/
|
|
69
|
-
function runScrollBenchmark(flatListRef, targetOffset, cancellable, scrollSpeedMultiplier) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable)];
|
|
90
|
-
case 1:
|
|
91
|
-
_b.sent();
|
|
92
|
-
return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable)];
|
|
93
|
-
case 2:
|
|
94
|
-
_b.sent();
|
|
95
|
-
_b.label = 3;
|
|
96
|
-
case 3: return [2 /*return*/];
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
});
|
|
74
|
+
async function runScrollBenchmark(flatListRef, targetOffset, cancellable, scrollSpeedMultiplier) {
|
|
75
|
+
var _a;
|
|
76
|
+
if (flatListRef.current) {
|
|
77
|
+
const horizontal = Boolean((_a = flatListRef.current.props) === null || _a === void 0 ? void 0 : _a.horizontal);
|
|
78
|
+
const fromX = 0;
|
|
79
|
+
const fromY = 0;
|
|
80
|
+
const toX = horizontal ? targetOffset : 0;
|
|
81
|
+
const toY = horizontal ? 0 : targetOffset;
|
|
82
|
+
const scrollNow = (x, y) => {
|
|
83
|
+
var _a;
|
|
84
|
+
(_a = flatListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
|
|
85
|
+
offset: horizontal ? x : y,
|
|
86
|
+
animated: false,
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
await autoScroll(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable);
|
|
90
|
+
await autoScroll(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable);
|
|
91
|
+
}
|
|
100
92
|
}
|
|
101
93
|
//# sourceMappingURL=useFlatListBenchmark.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFlatListBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFlatListBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useFlatListBenchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ErrorMessages = void 0;
|
|
4
|
-
exports.ErrorMessages = {
|
|
1
|
+
export const ErrorMessages = {
|
|
5
2
|
multipleViewabilityThresholdTypesNotSupported: "You can set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold. Specifying both is not supported.",
|
|
6
3
|
flashListV2OnlySupportsNewArchitecture: "FlashList v2 is only supported on new architecture",
|
|
7
4
|
layoutManagerNotInitializedLayoutInfo: "LayoutManager is not initialized, layout info is unavailable",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorMessages.js","sourceRoot":"","sources":["../../src/errors/ErrorMessages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ErrorMessages.js","sourceRoot":"","sources":["../../src/errors/ErrorMessages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,6CAA6C,EAC3C,+HAA+H;IACjI,sCAAsC,EACpC,oDAAoD;IACtD,qCAAqC,EACnC,8DAA8D;IAChE,yCAAyC,EACvC,yEAAyE;IAC3E,qCAAqC,EACnC,8DAA8D;IAChE,6BAA6B,EAC3B,mFAAmF;IACrF,yCAAyC,EACvC,uEAAuE;IACzE,gCAAgC,EAC9B,+CAA+C;IACjD,mCAAmC,EACjC,kDAAkD;IACpD,gBAAgB,EAAE,yCAAyC;IAC3D,wBAAwB,EACtB,qEAAqE;IACvE,2BAA2B,EAAE,qCAAqC;IAClE,sCAAsC,EACpC,0DAA0D;CAC7D,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WarningMessages = void 0;
|
|
4
|
-
exports.WarningMessages = {
|
|
1
|
+
export const WarningMessages = {
|
|
5
2
|
keyExtractorNotDefinedForAnimation: "keyExtractor is not defined. This might cause the animations to not work as expected.",
|
|
6
3
|
keyExtractorNotDefinedForMVCP: "keyExtractor is not defined, maintainVisibleContentPosition may not work as expected.",
|
|
7
4
|
exceededMaxRendersWithoutCommit: "Exceeded max renders without commit. This might mean that you have duplicate keys in your keyExtractor output or your list is nested in a ScrollView causing a lot of items to render at once. " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarningMessages.js","sourceRoot":"","sources":["../../src/errors/WarningMessages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WarningMessages.js","sourceRoot":"","sources":["../../src/errors/WarningMessages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kCAAkC,EAChC,uFAAuF;IACzF,6BAA6B,EAC3B,uFAAuF;IACzF,+BAA+B,EAC7B,iMAAiM;QACjM,wGAAwG;CAC3G,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,38 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LayoutCommitObserver = exports.useFlashListContext = exports.Cancellable = exports.autoScroll = exports.JSFPSMonitor = exports.useMappingHelper = exports.useRecyclingState = exports.useLayoutState = exports.useFlatListBenchmark = exports.useDataMultiplier = exports.useBenchmark = exports.AnimatedFlashList = exports.RenderTargetOptions = exports.FlashList = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
1
|
// Keep this unmodified for TS type checking
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Object.defineProperty(exports, "useRecyclingState", { enumerable: true, get: function () { return useRecyclingState_1.useRecyclingState; } });
|
|
24
|
-
var useMappingHelper_1 = require("./recyclerview/hooks/useMappingHelper");
|
|
25
|
-
Object.defineProperty(exports, "useMappingHelper", { enumerable: true, get: function () { return useMappingHelper_1.useMappingHelper; } });
|
|
26
|
-
var JSFPSMonitor_1 = require("./benchmark/JSFPSMonitor");
|
|
27
|
-
Object.defineProperty(exports, "JSFPSMonitor", { enumerable: true, get: function () { return JSFPSMonitor_1.JSFPSMonitor; } });
|
|
28
|
-
var AutoScrollHelper_1 = require("./benchmark/AutoScrollHelper");
|
|
29
|
-
Object.defineProperty(exports, "autoScroll", { enumerable: true, get: function () { return AutoScrollHelper_1.autoScroll; } });
|
|
30
|
-
Object.defineProperty(exports, "Cancellable", { enumerable: true, get: function () { return AutoScrollHelper_1.Cancellable; } });
|
|
31
|
-
var RecyclerViewContextProvider_1 = require("./recyclerview/RecyclerViewContextProvider");
|
|
32
|
-
Object.defineProperty(exports, "useFlashListContext", { enumerable: true, get: function () { return RecyclerViewContextProvider_1.useFlashListContext; } });
|
|
33
|
-
var LayoutCommitObserver_1 = require("./recyclerview/LayoutCommitObserver");
|
|
34
|
-
Object.defineProperty(exports, "LayoutCommitObserver", { enumerable: true, get: function () { return LayoutCommitObserver_1.LayoutCommitObserver; } });
|
|
35
|
-
if (!(0, isNewArch_1.isNewArch)()) {
|
|
36
|
-
throw new Error(ErrorMessages_1.ErrorMessages.flashListV2OnlySupportsNewArchitecture);
|
|
2
|
+
import { isNewArch } from "./isNewArch";
|
|
3
|
+
import { ErrorMessages } from "./errors/ErrorMessages";
|
|
4
|
+
export { FlashList } from "./FlashList";
|
|
5
|
+
export { RenderTargetOptions, } from "./FlashListProps";
|
|
6
|
+
export { default as AnimatedFlashList } from "./AnimatedFlashList";
|
|
7
|
+
export { useBenchmark, } from "./benchmark/useBenchmark";
|
|
8
|
+
export { useDataMultiplier } from "./benchmark/useDataMultiplier";
|
|
9
|
+
export { useFlatListBenchmark, } from "./benchmark/useFlatListBenchmark";
|
|
10
|
+
export { useLayoutState } from "./recyclerview/hooks/useLayoutState";
|
|
11
|
+
export { useRecyclingState } from "./recyclerview/hooks/useRecyclingState";
|
|
12
|
+
export { useMappingHelper } from "./recyclerview/hooks/useMappingHelper";
|
|
13
|
+
export { JSFPSMonitor } from "./benchmark/JSFPSMonitor";
|
|
14
|
+
export { autoScroll, Cancellable } from "./benchmark/AutoScrollHelper";
|
|
15
|
+
export { useFlashListContext } from "./recyclerview/RecyclerViewContextProvider";
|
|
16
|
+
export { LayoutCommitObserver, } from "./recyclerview/LayoutCommitObserver";
|
|
17
|
+
if (!isNewArch()) {
|
|
18
|
+
throw new Error(ErrorMessages.flashListV2OnlySupportsNewArchitecture);
|
|
37
19
|
}
|
|
38
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAKL,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,YAAY,GAGb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,oBAAoB,GAErB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAe,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EACL,oBAAoB,GAErB,MAAM,qCAAqC,CAAC;AAE7C,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IACjB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/isNewArch.js
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var react_native_1 = require("react-native");
|
|
5
|
-
var _isNewArch;
|
|
6
|
-
function isNewArch() {
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
let _isNewArch;
|
|
3
|
+
export function isNewArch() {
|
|
7
4
|
if (_isNewArch !== undefined) {
|
|
8
5
|
return _isNewArch;
|
|
9
6
|
}
|
|
10
7
|
else {
|
|
11
8
|
try {
|
|
12
9
|
// Check for Fabric UI Manager
|
|
13
|
-
|
|
10
|
+
const hasFabricUIManager = Boolean(global === null || global === void 0 ? void 0 : global.nativeFabricUIManager);
|
|
14
11
|
// Check for TurboModule system
|
|
15
|
-
|
|
12
|
+
const hasTurboModule = Boolean(global === null || global === void 0 ? void 0 : global.__turboModuleProxy);
|
|
16
13
|
_isNewArch =
|
|
17
|
-
hasFabricUIManager || hasTurboModule ||
|
|
14
|
+
hasFabricUIManager || hasTurboModule || Platform.OS === "web";
|
|
18
15
|
}
|
|
19
16
|
catch (_a) {
|
|
20
17
|
_isNewArch = true;
|
package/dist/isNewArch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isNewArch.js","sourceRoot":"","sources":["../src/isNewArch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isNewArch.js","sourceRoot":"","sources":["../src/isNewArch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,IAAI,UAA+B,CAAC;AAEpC,MAAM,UAAU,SAAS;IACvB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,kBAAkB,GAAG,OAAO,CAC/B,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,qBAAqB,CACvC,CAAC;YAEF,+BAA+B;YAC/B,MAAM,cAAc,GAAG,OAAO,CAAE,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,kBAAkB,CAAC,CAAC;YAEpE,UAAU;gBACR,kBAAkB,IAAI,cAAc,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC;QAClE,CAAC;QAAC,WAAM,CAAC;YACP,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlatformConfig = void 0;
|
|
4
|
-
var PlatformConfig = {
|
|
1
|
+
const PlatformConfig = {
|
|
5
2
|
defaultDrawDistance: 250,
|
|
6
3
|
supportsOffsetCorrection: true,
|
|
7
4
|
trackAverageRenderTimeForOffsetProjection: true,
|
|
8
5
|
};
|
|
9
|
-
|
|
6
|
+
export { PlatformConfig };
|
|
10
7
|
//# sourceMappingURL=PlatformHelper.android.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformHelper.android.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.android.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformHelper.android.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.android.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,IAAI;IAC9B,yCAAyC,EAAE,IAAI;CAChD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlatformConfig = void 0;
|
|
4
|
-
var PlatformConfig = {
|
|
1
|
+
const PlatformConfig = {
|
|
5
2
|
defaultDrawDistance: 250,
|
|
6
3
|
supportsOffsetCorrection: true,
|
|
7
4
|
trackAverageRenderTimeForOffsetProjection: false,
|
|
8
5
|
};
|
|
9
|
-
|
|
6
|
+
export { PlatformConfig };
|
|
10
7
|
//# sourceMappingURL=PlatformHelper.ios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformHelper.ios.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.ios.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformHelper.ios.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.ios.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,IAAI;IAC9B,yCAAyC,EAAE,KAAK;CACjD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlatformConfig = void 0;
|
|
4
|
-
var PlatformConfig = {
|
|
1
|
+
const PlatformConfig = {
|
|
5
2
|
defaultDrawDistance: 250,
|
|
6
3
|
supportsOffsetCorrection: false,
|
|
7
4
|
trackAverageRenderTimeForOffsetProjection: false,
|
|
8
5
|
};
|
|
9
|
-
|
|
6
|
+
export { PlatformConfig };
|
|
10
7
|
//# sourceMappingURL=PlatformHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformHelper.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformHelper.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,KAAK;IAC/B,yCAAyC,EAAE,KAAK;CACjD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlatformConfig = void 0;
|
|
4
|
-
var PlatformConfig = {
|
|
1
|
+
const PlatformConfig = {
|
|
5
2
|
defaultDrawDistance: 500,
|
|
6
3
|
supportsOffsetCorrection: false,
|
|
7
4
|
trackAverageRenderTimeForOffsetProjection: false,
|
|
8
5
|
};
|
|
9
|
-
|
|
6
|
+
export { PlatformConfig };
|
|
10
7
|
//# sourceMappingURL=PlatformHelper.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformHelper.web.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlatformHelper.web.js","sourceRoot":"","sources":["../../../src/native/config/PlatformHelper.web.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,KAAK;IAC/B,yCAAyC,EAAE,KAAK;CACjD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,53 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
-
var RecyclerViewContextProvider_1 = require("./RecyclerViewContextProvider");
|
|
7
|
-
var useLayoutState_1 = require("./hooks/useLayoutState");
|
|
1
|
+
import React, { useLayoutEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { RecyclerViewContextProvider, useRecyclerViewContext, } from "./RecyclerViewContextProvider";
|
|
3
|
+
import { useLayoutState } from "./hooks/useLayoutState";
|
|
8
4
|
/**
|
|
9
5
|
* LayoutCommitObserver can be used to observe when FlashList commits a layout.
|
|
10
6
|
* It is useful when your component has one or more FlashLists somewhere down the tree.
|
|
11
7
|
* LayoutCommitObserver will trigger `onCommitLayoutEffect` when all of the FlashLists in the tree have finished their first commit.
|
|
12
8
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
export const LayoutCommitObserver = React.memo((props) => {
|
|
10
|
+
const { children, onCommitLayoutEffect } = props;
|
|
11
|
+
const parentRecyclerViewContext = useRecyclerViewContext();
|
|
12
|
+
const [_, setRenderId] = useLayoutState(0);
|
|
13
|
+
const pendingChildIds = useRef(new Set()).current;
|
|
14
|
+
useLayoutEffect(() => {
|
|
19
15
|
if (pendingChildIds.size > 0) {
|
|
20
16
|
return;
|
|
21
17
|
}
|
|
22
18
|
onCommitLayoutEffect === null || onCommitLayoutEffect === void 0 ? void 0 : onCommitLayoutEffect();
|
|
23
19
|
});
|
|
24
20
|
// Create context for child components
|
|
25
|
-
|
|
21
|
+
const recyclerViewContext = useMemo(() => {
|
|
26
22
|
return {
|
|
27
|
-
layout:
|
|
28
|
-
setRenderId(
|
|
23
|
+
layout: () => {
|
|
24
|
+
setRenderId((prev) => prev + 1);
|
|
29
25
|
},
|
|
30
|
-
getRef:
|
|
26
|
+
getRef: () => {
|
|
31
27
|
var _a;
|
|
32
28
|
return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getRef()) !== null && _a !== void 0 ? _a : null;
|
|
33
29
|
},
|
|
34
|
-
getParentRef:
|
|
30
|
+
getParentRef: () => {
|
|
35
31
|
var _a;
|
|
36
32
|
return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getParentRef()) !== null && _a !== void 0 ? _a : null;
|
|
37
33
|
},
|
|
38
|
-
getParentScrollViewRef:
|
|
34
|
+
getParentScrollViewRef: () => {
|
|
39
35
|
var _a;
|
|
40
36
|
return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getParentScrollViewRef()) !== null && _a !== void 0 ? _a : null;
|
|
41
37
|
},
|
|
42
|
-
getScrollViewRef:
|
|
38
|
+
getScrollViewRef: () => {
|
|
43
39
|
var _a;
|
|
44
40
|
return (_a = parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.getScrollViewRef()) !== null && _a !== void 0 ? _a : null;
|
|
45
41
|
},
|
|
46
|
-
markChildLayoutAsPending:
|
|
42
|
+
markChildLayoutAsPending: (id) => {
|
|
47
43
|
parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.markChildLayoutAsPending(id);
|
|
48
44
|
pendingChildIds.add(id);
|
|
49
45
|
},
|
|
50
|
-
unmarkChildLayoutAsPending:
|
|
46
|
+
unmarkChildLayoutAsPending: (id) => {
|
|
51
47
|
parentRecyclerViewContext === null || parentRecyclerViewContext === void 0 ? void 0 : parentRecyclerViewContext.unmarkChildLayoutAsPending(id);
|
|
52
48
|
if (pendingChildIds.has(id)) {
|
|
53
49
|
pendingChildIds.delete(id);
|
|
@@ -56,7 +52,7 @@ exports.LayoutCommitObserver = react_1.default.memo(function (props) {
|
|
|
56
52
|
},
|
|
57
53
|
};
|
|
58
54
|
}, [parentRecyclerViewContext, pendingChildIds, setRenderId]);
|
|
59
|
-
return (
|
|
55
|
+
return (React.createElement(RecyclerViewContextProvider, { value: recyclerViewContext }, children));
|
|
60
56
|
});
|
|
61
|
-
|
|
57
|
+
LayoutCommitObserver.displayName = "LayoutCommitObserver";
|
|
62
58
|
//# sourceMappingURL=LayoutCommitObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutCommitObserver.js","sourceRoot":"","sources":["../../src/recyclerview/LayoutCommitObserver.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayoutCommitObserver.js","sourceRoot":"","sources":["../../src/recyclerview/LayoutCommitObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EAEL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAC5C,CAAC,KAAgC,EAAE,EAAE;IACnC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,yBAAyB,GAAG,sBAAsB,EAAE,CAAC;IAC3D,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IAE/D,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,EAAI,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,mBAAmB,GAAiC,OAAO,CAAC,GAAG,EAAE;QACrE,OAAO;YACL,MAAM,EAAE,GAAG,EAAE;gBACX,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;;gBACX,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,MAAM,EAAE,mCAAI,IAAI,CAAC;YACrD,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;;gBACjB,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,YAAY,EAAE,mCAAI,IAAI,CAAC;YAC3D,CAAC;YACD,sBAAsB,EAAE,GAAG,EAAE;;gBAC3B,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,sBAAsB,EAAE,mCAAI,IAAI,CAAC;YACrE,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;;gBACrB,OAAO,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,gBAAgB,EAAE,mCAAI,IAAI,CAAC;YAC/D,CAAC;YACD,wBAAwB,EAAE,CAAC,EAAU,EAAE,EAAE;gBACvC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,wBAAwB,CAAC,EAAE,CAAC,CAAC;gBACxD,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;YACD,0BAA0B,EAAE,CAAC,EAAU,EAAE,EAAE;gBACzC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,0BAA0B,CAAC,EAAE,CAAC,CAAC;gBAC1D,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3B,mBAAmB,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,yBAAyB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9D,OAAO,CACL,oBAAC,2BAA2B,IAAC,KAAK,EAAE,mBAAmB,IACpD,QAAQ,CACmB,CAC/B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecyclerView.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerView.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KASN,MAAM,OAAO,CAAC;AAQf,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkB/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"RecyclerView.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerView.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KASN,MAAM,OAAO,CAAC;AAQf,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkB/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAujBxD,KAAK,gBAAgB,GAAG,CAAC,CAAC,EACxB,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,KAC/D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAGvB,QAAA,MAAM,YAAY,EAEb,gBAAgB,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,CAAC"}
|