@shopify/flash-list 2.0.0-alpha.2 → 2.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -96
- package/android/src/main/kotlin/com/shopify/reactnative/flash_list/BlankAreaEvent.kt +2 -2
- package/dist/AnimatedFlashList.d.ts +0 -1
- package/dist/AnimatedFlashList.d.ts.map +1 -1
- package/dist/AnimatedFlashList.js +3 -3
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.d.ts +9 -0
- package/dist/FlashList.d.ts.map +1 -1
- package/dist/FlashList.js +22 -3
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +33 -13
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.d.ts +305 -0
- package/dist/FlashListRef.d.ts.map +1 -0
- package/dist/FlashListRef.js +3 -0
- package/dist/FlashListRef.js.map +1 -0
- package/dist/GridLayoutProviderWithProps.js +1 -2
- package/dist/GridLayoutProviderWithProps.js.map +1 -1
- package/dist/MasonryFlashList.d.ts +2 -2
- package/dist/MasonryFlashList.d.ts.map +1 -1
- package/dist/MasonryFlashList.js.map +1 -1
- package/dist/PureComponentWrapper.js +1 -1
- package/dist/PureComponentWrapper.js.map +1 -1
- package/dist/__tests__/AverageWindow.test.js.map +1 -1
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts +2 -0
- package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +1 -0
- package/dist/__tests__/ConsecutiveNumbers.test.js +224 -0
- package/dist/__tests__/ConsecutiveNumbers.test.js.map +1 -0
- package/dist/__tests__/FlashList.test.js.map +1 -1
- package/dist/__tests__/GridLayoutManager.test.d.ts +2 -0
- package/dist/__tests__/GridLayoutManager.test.d.ts.map +1 -0
- package/dist/__tests__/GridLayoutManager.test.js +69 -0
- package/dist/__tests__/GridLayoutManager.test.js.map +1 -0
- package/dist/__tests__/GridLayoutProviderWithProps.test.js.map +1 -1
- package/dist/__tests__/LayoutCommitObserver.test.d.ts +2 -0
- package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +1 -0
- package/dist/__tests__/LayoutCommitObserver.test.js +35 -0
- package/dist/__tests__/LayoutCommitObserver.test.js.map +1 -0
- package/dist/__tests__/LinearLayoutManager.test.d.ts +2 -0
- package/dist/__tests__/LinearLayoutManager.test.d.ts.map +1 -0
- package/dist/__tests__/LinearLayoutManager.test.js +140 -0
- package/dist/__tests__/LinearLayoutManager.test.js.map +1 -0
- package/dist/__tests__/MasonryFlashList.test.js.map +1 -1
- package/dist/__tests__/MasonryLayoutManager.test.d.ts +2 -0
- package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +1 -0
- package/dist/__tests__/MasonryLayoutManager.test.js +148 -0
- package/dist/__tests__/MasonryLayoutManager.test.js.map +1 -0
- package/dist/__tests__/RecyclerView.test.d.ts +2 -0
- package/dist/__tests__/RecyclerView.test.d.ts.map +1 -0
- package/dist/__tests__/RecyclerView.test.js +103 -0
- package/dist/__tests__/RecyclerView.test.js.map +1 -0
- package/dist/__tests__/RenderStackManager.test.d.ts +2 -0
- package/dist/__tests__/RenderStackManager.test.d.ts.map +1 -0
- package/dist/__tests__/RenderStackManager.test.js +485 -0
- package/dist/__tests__/RenderStackManager.test.js.map +1 -0
- package/dist/__tests__/ViewabilityHelper.test.js.map +1 -1
- package/dist/__tests__/findVisibleIndex.test.d.ts +2 -0
- package/dist/__tests__/findVisibleIndex.test.d.ts.map +1 -0
- package/dist/__tests__/findVisibleIndex.test.js +259 -0
- package/dist/__tests__/findVisibleIndex.test.js.map +1 -0
- package/dist/__tests__/helpers/createLayoutManager.d.ts +34 -0
- package/dist/__tests__/helpers/createLayoutManager.d.ts.map +1 -0
- package/dist/__tests__/helpers/createLayoutManager.js +110 -0
- package/dist/__tests__/helpers/createLayoutManager.js.map +1 -0
- package/dist/__tests__/helpers/mountFlashList.d.ts +2 -2
- package/dist/__tests__/helpers/mountFlashList.d.ts.map +1 -1
- package/dist/__tests__/helpers/mountFlashList.js +2 -2
- package/dist/__tests__/helpers/mountFlashList.js.map +1 -1
- package/dist/__tests__/helpers/mountMasonryFlashList.d.ts +2 -2
- package/dist/__tests__/helpers/mountMasonryFlashList.d.ts.map +1 -1
- package/dist/__tests__/helpers/mountMasonryFlashList.js +2 -2
- package/dist/__tests__/helpers/mountMasonryFlashList.js.map +1 -1
- package/dist/__tests__/useBlankAreaTracker.test.js.map +1 -1
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +2 -0
- package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +1 -0
- package/dist/__tests__/useUnmountAwareCallbacks.test.js +185 -0
- package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +1 -0
- package/dist/benchmark/AutoScrollHelper.js +2 -2
- package/dist/benchmark/AutoScrollHelper.js.map +1 -1
- package/dist/benchmark/JSFPSMonitor.js.map +1 -1
- package/dist/benchmark/roundToDecimalPlaces.js +1 -2
- package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
- package/dist/benchmark/useBenchmark.js +2 -28
- package/dist/benchmark/useBenchmark.js.map +1 -1
- package/dist/benchmark/useBlankAreaTracker.js +1 -2
- package/dist/benchmark/useBlankAreaTracker.js.map +1 -1
- package/dist/benchmark/useDataMultiplier.js +1 -2
- package/dist/benchmark/useDataMultiplier.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts +0 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +9 -9
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/enableNewCore.d.ts.map +1 -1
- package/dist/enableNewCore.js +4 -4
- package/dist/enableNewCore.js.map +1 -1
- package/dist/errors/CustomError.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/native/auto-layout/AutoLayoutView.d.ts +1 -1
- package/dist/native/auto-layout/AutoLayoutView.d.ts.map +1 -1
- package/dist/native/auto-layout/AutoLayoutView.js +1 -1
- package/dist/native/auto-layout/AutoLayoutView.js.map +1 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +1 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +1 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.android.d.ts +2 -0
- package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.android.js +2 -0
- package/dist/native/config/PlatformHelper.android.js.map +1 -1
- package/dist/native/config/PlatformHelper.d.ts +2 -0
- package/dist/native/config/PlatformHelper.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.ios.d.ts +2 -0
- package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.ios.js +2 -0
- package/dist/native/config/PlatformHelper.ios.js.map +1 -1
- package/dist/native/config/PlatformHelper.js +2 -0
- package/dist/native/config/PlatformHelper.js.map +1 -1
- package/dist/native/config/PlatformHelper.web.d.ts +2 -0
- package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.web.js +3 -1
- package/dist/native/config/PlatformHelper.web.js.map +1 -1
- package/dist/recyclerview/LayoutCommitObserver.d.ts +12 -0
- package/dist/recyclerview/LayoutCommitObserver.d.ts.map +1 -0
- package/dist/recyclerview/LayoutCommitObserver.js +62 -0
- package/dist/recyclerview/LayoutCommitObserver.js.map +1 -0
- package/dist/recyclerview/RecyclerView.d.ts +3 -2
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerView.js +133 -69
- package/dist/recyclerview/RecyclerView.js.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts +41 -7
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewContextProvider.js +6 -2
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.d.ts +31 -7
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/RecyclerViewManager.js +154 -117
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/RecyclerViewProps.d.ts +1 -1
- package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -1
- package/dist/recyclerview/RenderStackManager.d.ts +86 -0
- package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
- package/dist/recyclerview/RenderStackManager.js +343 -0
- package/dist/recyclerview/RenderStackManager.js.map +1 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolder.js +8 -6
- package/dist/recyclerview/ViewHolder.js.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.d.ts +10 -4
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
- package/dist/recyclerview/ViewHolderCollection.js +26 -10
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.d.ts +2 -1
- package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
- package/dist/recyclerview/components/ScrollAnchor.js +12 -9
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.d.ts +2 -2
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
- package/dist/recyclerview/components/StickyHeaders.js +44 -45
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts +1 -1
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts.map +1 -1
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js +2 -2
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +48 -2
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js +89 -19
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +11 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js +42 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
- package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
- package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/VelocityTracker.js +70 -0
- package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
- package/dist/recyclerview/hooks/useBoundDetection.d.ts +1 -3
- package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useBoundDetection.js +60 -28
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.d.ts +3 -1
- package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useLayoutState.js +6 -5
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
- package/dist/recyclerview/hooks/useMappingHelper.d.ts +9 -0
- package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useMappingHelper.js +19 -0
- package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -0
- package/dist/recyclerview/hooks/useOnLoad.d.ts +2 -2
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useOnLoad.js +9 -10
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +5 -49
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewController.js +343 -191
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +2 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +11 -1
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.d.ts +4 -2
- package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useRecyclingState.js +3 -4
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useSecondaryProps.js +15 -12
- package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +15 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +63 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts +0 -1
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -1
- package/dist/recyclerview/hooks/useUnmountFlag.js +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +18 -4
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -25
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +36 -21
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/LayoutManager.js +96 -28
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts +1 -2
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js +3 -3
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +9 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -1
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +30 -16
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
- package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -2
- package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
- package/dist/recyclerview/utils/componentUtils.d.ts +1 -1
- package/dist/recyclerview/utils/componentUtils.d.ts.map +1 -1
- package/dist/recyclerview/utils/componentUtils.js.map +1 -1
- package/dist/recyclerview/utils/findVisibleIndex.d.ts.map +1 -1
- package/dist/recyclerview/utils/findVisibleIndex.js +3 -5
- package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.d.ts +24 -28
- package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -1
- package/dist/recyclerview/utils/measureLayout.js +36 -6
- package/dist/recyclerview/utils/measureLayout.js.map +1 -1
- package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
- package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
- package/dist/recyclerview/utils/measureLayout.web.js +87 -0
- package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
- package/dist/specs/AutoLayoutNativeComponent.d.ts +1 -2
- package/dist/specs/AutoLayoutNativeComponent.d.ts.map +1 -1
- package/dist/specs/CellContainerNativeComponent.d.ts +0 -1
- package/dist/specs/CellContainerNativeComponent.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/AverageWindow.js.map +1 -1
- package/dist/utils/ContentContainerUtils.d.ts.map +1 -1
- package/dist/utils/ContentContainerUtils.js.map +1 -1
- package/dist/viewability/ViewToken.d.ts +2 -2
- package/dist/viewability/ViewToken.d.ts.map +1 -1
- package/dist/viewability/ViewabilityHelper.js +1 -1
- package/dist/viewability/ViewabilityHelper.js.map +1 -1
- package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
- package/dist/viewability/ViewabilityManager.js +11 -5
- package/dist/viewability/ViewabilityManager.js.map +1 -1
- package/jestSetup.js +30 -11
- package/package.json +4 -3
- package/src/AnimatedFlashList.ts +3 -2
- package/src/FlashList.tsx +25 -1
- package/src/FlashListProps.ts +42 -11
- package/src/FlashListRef.ts +320 -0
- package/src/MasonryFlashList.tsx +2 -2
- package/src/__tests__/ConsecutiveNumbers.test.ts +232 -0
- package/src/__tests__/GridLayoutManager.test.ts +113 -0
- package/src/__tests__/LayoutCommitObserver.test.tsx +60 -0
- package/src/__tests__/LinearLayoutManager.test.ts +227 -0
- package/src/__tests__/MasonryLayoutManager.test.ts +202 -0
- package/src/__tests__/RecyclerView.test.tsx +144 -0
- package/src/__tests__/RenderStackManager.test.ts +574 -0
- package/src/__tests__/findVisibleIndex.test.ts +369 -0
- package/src/__tests__/helpers/createLayoutManager.ts +141 -0
- package/src/__tests__/useUnmountAwareCallbacks.test.tsx +285 -0
- package/src/benchmark/useBenchmark.ts +0 -37
- package/src/benchmark/useFlatListBenchmark.ts +2 -2
- package/src/enableNewCore.ts +3 -1
- package/src/index.ts +14 -3
- package/src/native/config/PlatformHelper.android.ts +2 -0
- package/src/native/config/PlatformHelper.ios.ts +2 -0
- package/src/native/config/PlatformHelper.ts +2 -0
- package/src/native/config/PlatformHelper.web.ts +3 -1
- package/src/recyclerview/LayoutCommitObserver.tsx +74 -0
- package/src/recyclerview/RecyclerView.tsx +178 -89
- package/src/recyclerview/RecyclerViewContextProvider.ts +53 -7
- package/src/recyclerview/RecyclerViewManager.ts +176 -97
- package/src/recyclerview/RecyclerViewProps.ts +2 -1
- package/src/recyclerview/RenderStackManager.ts +317 -0
- package/src/recyclerview/ViewHolder.tsx +13 -6
- package/src/recyclerview/ViewHolderCollection.tsx +45 -16
- package/src/recyclerview/components/ScrollAnchor.tsx +24 -11
- package/src/recyclerview/components/StickyHeaders.tsx +70 -58
- package/src/recyclerview/helpers/ConsecutiveNumbers.ts +2 -2
- package/src/recyclerview/helpers/EngagedIndicesTracker.ts +135 -25
- package/src/recyclerview/helpers/RenderTimeTracker.ts +42 -0
- package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
- package/src/recyclerview/hooks/useBoundDetection.ts +74 -25
- package/src/recyclerview/hooks/useLayoutState.ts +15 -6
- package/src/recyclerview/hooks/useMappingHelper.ts +20 -0
- package/src/recyclerview/hooks/useOnLoad.ts +11 -10
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +380 -241
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +13 -1
- package/src/recyclerview/hooks/useRecyclingState.ts +11 -7
- package/src/recyclerview/hooks/useSecondaryProps.tsx +12 -7
- package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +73 -0
- package/src/recyclerview/hooks/useUnmountFlag.ts +1 -0
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +68 -27
- package/src/recyclerview/layout-managers/LayoutManager.ts +116 -42
- package/src/recyclerview/layout-managers/LinearLayoutManager.ts +12 -8
- package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +34 -13
- package/src/recyclerview/utils/componentUtils.ts +1 -1
- package/src/recyclerview/utils/findVisibleIndex.ts +1 -2
- package/src/recyclerview/utils/measureLayout.ts +41 -2
- package/src/recyclerview/utils/measureLayout.web.ts +102 -0
- package/src/viewability/ViewToken.ts +2 -2
- package/src/viewability/ViewabilityHelper.ts +1 -1
- package/src/viewability/ViewabilityManager.ts +16 -9
- package/dist/recyclerview/RecycleKeyManager.d.ts +0 -82
- package/dist/recyclerview/RecycleKeyManager.d.ts.map +0 -1
- package/dist/recyclerview/RecycleKeyManager.js +0 -135
- package/dist/recyclerview/RecycleKeyManager.js.map +0 -1
- package/src/recyclerview/RecycleKeyManager.ts +0 -185
|
@@ -2,98 +2,88 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RecyclerViewManager = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
var ViewabilityManager_1 = tslib_1.__importDefault(require("../viewability/ViewabilityManager"));
|
|
5
6
|
var GridLayoutManager_1 = require("./layout-managers/GridLayoutManager");
|
|
6
7
|
var LinearLayoutManager_1 = require("./layout-managers/LinearLayoutManager");
|
|
7
8
|
var MasonryLayoutManager_1 = require("./layout-managers/MasonryLayoutManager");
|
|
8
|
-
var RecycleKeyManager_1 = require("./RecycleKeyManager");
|
|
9
9
|
var EngagedIndicesTracker_1 = require("./helpers/EngagedIndicesTracker");
|
|
10
|
-
var
|
|
11
|
-
// Abstracts layout manager,
|
|
10
|
+
var RenderStackManager_1 = require("./RenderStackManager");
|
|
11
|
+
// Abstracts layout manager, render stack manager and viewability manager and generates render stack (progressively on load)
|
|
12
12
|
var RecyclerViewManager = /** @class */ (function () {
|
|
13
13
|
function RecyclerViewManager(props) {
|
|
14
14
|
var _this = this;
|
|
15
|
-
this.initialDrawBatchSize =
|
|
15
|
+
this.initialDrawBatchSize = 2;
|
|
16
16
|
// Map of index to key
|
|
17
|
-
this.renderStack = new Map();
|
|
18
17
|
this.isFirstLayoutComplete = false;
|
|
19
18
|
this.hasRenderedProgressively = false;
|
|
20
|
-
this.
|
|
19
|
+
this.progressiveRenderCount = 0;
|
|
20
|
+
this._isDisposed = false;
|
|
21
|
+
this._isLayoutManagerDirty = false;
|
|
22
|
+
this._animationOptimizationsEnabled = false;
|
|
21
23
|
this.firstItemOffset = 0;
|
|
24
|
+
this.ignoreScrollEvents = false;
|
|
22
25
|
// updates render stack based on the engaged indices which are sorted. Recycles unused keys.
|
|
23
|
-
// TODO: Call getKey anyway if stableIds are present
|
|
24
26
|
this.updateRenderStack = function (engagedIndices) {
|
|
25
|
-
|
|
26
|
-
var _d, _e;
|
|
27
|
-
//console.log("updateRenderStack", engagedIndices);
|
|
28
|
-
var newRenderStack = new Map();
|
|
29
|
-
try {
|
|
30
|
-
for (var _f = tslib_1.__values(_this.renderStack), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
31
|
-
var _h = tslib_1.__read(_g.value, 2), index = _h[0], key = _h[1];
|
|
32
|
-
if (!engagedIndices.includes(index)) {
|
|
33
|
-
_this.recycleKeyManager.recycleKey(key);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
|
-
finally {
|
|
39
|
-
try {
|
|
40
|
-
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
41
|
-
}
|
|
42
|
-
finally { if (e_1) throw e_1.error; }
|
|
43
|
-
}
|
|
44
|
-
if (_this.disableRecycling) {
|
|
45
|
-
_this.recycleKeyManager.clearPool();
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
|
|
49
|
-
var index = engagedIndices_1_1.value;
|
|
50
|
-
var newKey = _this.recycleKeyManager.getKey(_this.getItemType(index), _this.getStableId(index), _this.renderStack.get(index));
|
|
51
|
-
newRenderStack.set(index, newKey);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
55
|
-
finally {
|
|
56
|
-
try {
|
|
57
|
-
if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_b = engagedIndices_1.return)) _b.call(engagedIndices_1);
|
|
58
|
-
}
|
|
59
|
-
finally { if (e_2) throw e_2.error; }
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
// DANGER
|
|
63
|
-
for (var _j = tslib_1.__values(_this.renderStack), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
64
|
-
var _l = tslib_1.__read(_k.value, 2), index = _l[0], key = _l[1];
|
|
65
|
-
if (_this.recycleKeyManager.hasKeyInPool(key) &&
|
|
66
|
-
!newRenderStack.has(index) &&
|
|
67
|
-
index < ((_e = (_d = _this.props.data) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0)) {
|
|
68
|
-
newRenderStack.set(index, key);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
73
|
-
finally {
|
|
74
|
-
try {
|
|
75
|
-
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
76
|
-
}
|
|
77
|
-
finally { if (e_3) throw e_3.error; }
|
|
78
|
-
}
|
|
79
|
-
_this.renderStack = newRenderStack;
|
|
27
|
+
_this.renderStackManager.sync(_this.getDataKey, _this.getItemType, engagedIndices, _this.getDataLength());
|
|
80
28
|
};
|
|
81
|
-
this.
|
|
29
|
+
this.getDataKey = this.getDataKey.bind(this);
|
|
30
|
+
this.getItemType = this.getItemType.bind(this);
|
|
31
|
+
this.overrideItemLayout = this.overrideItemLayout.bind(this);
|
|
32
|
+
this.propsRef = props;
|
|
82
33
|
this.engagedIndicesTracker = new EngagedIndicesTracker_1.RVEngagedIndicesTrackerImpl();
|
|
83
|
-
this.
|
|
34
|
+
this.renderStackManager = new RenderStackManager_1.RenderStackManager(props.maxItemsInRecyclePool);
|
|
84
35
|
this.itemViewabilityManager = new ViewabilityManager_1.default(this);
|
|
85
36
|
}
|
|
37
|
+
Object.defineProperty(RecyclerViewManager.prototype, "animationOptimizationsEnabled", {
|
|
38
|
+
get: function () {
|
|
39
|
+
return this._animationOptimizationsEnabled;
|
|
40
|
+
},
|
|
41
|
+
set: function (value) {
|
|
42
|
+
this._animationOptimizationsEnabled = value;
|
|
43
|
+
this.renderStackManager.disableRecycling = value;
|
|
44
|
+
},
|
|
45
|
+
enumerable: false,
|
|
46
|
+
configurable: true
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(RecyclerViewManager.prototype, "isOffsetProjectionEnabled", {
|
|
49
|
+
get: function () {
|
|
50
|
+
return this.engagedIndicesTracker.enableOffsetProjection;
|
|
51
|
+
},
|
|
52
|
+
enumerable: false,
|
|
53
|
+
configurable: true
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(RecyclerViewManager.prototype, "isDisposed", {
|
|
56
|
+
get: function () {
|
|
57
|
+
return this._isDisposed;
|
|
58
|
+
},
|
|
59
|
+
enumerable: false,
|
|
60
|
+
configurable: true
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(RecyclerViewManager.prototype, "numColumns", {
|
|
63
|
+
get: function () {
|
|
64
|
+
var _a;
|
|
65
|
+
return (_a = this.propsRef.numColumns) !== null && _a !== void 0 ? _a : 1;
|
|
66
|
+
},
|
|
67
|
+
enumerable: false,
|
|
68
|
+
configurable: true
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(RecyclerViewManager.prototype, "props", {
|
|
71
|
+
get: function () {
|
|
72
|
+
return this.propsRef;
|
|
73
|
+
},
|
|
74
|
+
enumerable: false,
|
|
75
|
+
configurable: true
|
|
76
|
+
});
|
|
77
|
+
RecyclerViewManager.prototype.setOffsetProjectionEnabled = function (value) {
|
|
78
|
+
this.engagedIndicesTracker.enableOffsetProjection = value;
|
|
79
|
+
};
|
|
86
80
|
RecyclerViewManager.prototype.updateProps = function (props) {
|
|
87
|
-
var _a, _b;
|
|
88
|
-
this.
|
|
81
|
+
var _a, _b, _c;
|
|
82
|
+
this.propsRef = props;
|
|
89
83
|
this.engagedIndicesTracker.drawDistance =
|
|
90
84
|
(_a = props.drawDistance) !== null && _a !== void 0 ? _a : this.engagedIndicesTracker.drawDistance;
|
|
91
|
-
|
|
92
|
-
this.initialDrawBatchSize
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this.initialDrawBatchSize = ((_b = props.numColumns) !== null && _b !== void 0 ? _b : 1) * 2;
|
|
96
|
-
}
|
|
85
|
+
this.initialDrawBatchSize =
|
|
86
|
+
(_c = (_b = this.propsRef.overrideProps) === null || _b === void 0 ? void 0 : _b.initialDrawBatchSize) !== null && _c !== void 0 ? _c : this.initialDrawBatchSize;
|
|
97
87
|
};
|
|
98
88
|
/**
|
|
99
89
|
* Updates the scroll offset and returns the engaged indices if any
|
|
@@ -101,7 +91,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
101
91
|
* @param velocity
|
|
102
92
|
*/
|
|
103
93
|
RecyclerViewManager.prototype.updateScrollOffset = function (offset, velocity) {
|
|
104
|
-
if (this.layoutManager) {
|
|
94
|
+
if (this.layoutManager && !this._isDisposed) {
|
|
105
95
|
var engagedIndices = this.engagedIndicesTracker.updateScrollOffset(offset - this.firstItemOffset, velocity, this.layoutManager);
|
|
106
96
|
if (engagedIndices) {
|
|
107
97
|
this.updateRenderStack(engagedIndices);
|
|
@@ -110,6 +100,9 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
110
100
|
}
|
|
111
101
|
return undefined;
|
|
112
102
|
};
|
|
103
|
+
RecyclerViewManager.prototype.updateAverageRenderTime = function (time) {
|
|
104
|
+
this.engagedIndicesTracker.averageRenderTime = time;
|
|
105
|
+
};
|
|
113
106
|
RecyclerViewManager.prototype.getIsFirstLayoutComplete = function () {
|
|
114
107
|
return this.isFirstLayoutComplete;
|
|
115
108
|
};
|
|
@@ -119,6 +112,14 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
119
112
|
}
|
|
120
113
|
return this.layoutManager.getLayout(index);
|
|
121
114
|
};
|
|
115
|
+
RecyclerViewManager.prototype.tryGetLayout = function (index) {
|
|
116
|
+
if (this.layoutManager &&
|
|
117
|
+
index >= 0 &&
|
|
118
|
+
index < this.layoutManager.getLayoutCount()) {
|
|
119
|
+
return this.layoutManager.getLayout(index);
|
|
120
|
+
}
|
|
121
|
+
return undefined;
|
|
122
|
+
};
|
|
122
123
|
// Doesn't include header / foot etc
|
|
123
124
|
RecyclerViewManager.prototype.getChildContainerDimensions = function () {
|
|
124
125
|
if (!this.layoutManager) {
|
|
@@ -127,7 +128,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
127
128
|
return this.layoutManager.getLayoutSize();
|
|
128
129
|
};
|
|
129
130
|
RecyclerViewManager.prototype.getRenderStack = function () {
|
|
130
|
-
return this.
|
|
131
|
+
return this.renderStackManager.getRenderStack();
|
|
131
132
|
};
|
|
132
133
|
RecyclerViewManager.prototype.getWindowSize = function () {
|
|
133
134
|
if (!this.layoutManager) {
|
|
@@ -139,46 +140,58 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
139
140
|
RecyclerViewManager.prototype.getLastScrollOffset = function () {
|
|
140
141
|
return this.engagedIndicesTracker.scrollOffset;
|
|
141
142
|
};
|
|
143
|
+
RecyclerViewManager.prototype.getMaxScrollOffset = function () {
|
|
144
|
+
return Math.max(0, (this.propsRef.horizontal
|
|
145
|
+
? this.getChildContainerDimensions().width
|
|
146
|
+
: this.getChildContainerDimensions().height) -
|
|
147
|
+
(this.propsRef.horizontal
|
|
148
|
+
? this.getWindowSize().width
|
|
149
|
+
: this.getWindowSize().height) +
|
|
150
|
+
this.firstItemOffset);
|
|
151
|
+
};
|
|
142
152
|
// Doesn't include first item offset correction
|
|
143
153
|
RecyclerViewManager.prototype.getAbsoluteLastScrollOffset = function () {
|
|
144
154
|
return this.engagedIndicesTracker.scrollOffset + this.firstItemOffset;
|
|
145
155
|
};
|
|
156
|
+
RecyclerViewManager.prototype.setScrollDirection = function (scrollDirection) {
|
|
157
|
+
this.engagedIndicesTracker.setScrollDirection(scrollDirection);
|
|
158
|
+
};
|
|
159
|
+
RecyclerViewManager.prototype.resetVelocityCompute = function () {
|
|
160
|
+
this.engagedIndicesTracker.resetVelocityHistory();
|
|
161
|
+
};
|
|
146
162
|
RecyclerViewManager.prototype.updateLayoutParams = function (windowSize, firstItemOffset) {
|
|
147
|
-
var
|
|
148
|
-
var _a, _b, _c, _d, _e;
|
|
163
|
+
var _a, _b;
|
|
149
164
|
this.firstItemOffset = firstItemOffset;
|
|
150
165
|
var LayoutManagerClass = this.getLayoutManagerClass();
|
|
151
166
|
if (this.layoutManager &&
|
|
152
167
|
Boolean((_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.isHorizontal()) !==
|
|
153
|
-
Boolean(this.
|
|
168
|
+
Boolean(this.propsRef.horizontal)) {
|
|
154
169
|
throw new Error("Horizontal prop cannot be toggled, you can use a key on FlashList to recreate it.");
|
|
155
170
|
}
|
|
171
|
+
if (this._isLayoutManagerDirty) {
|
|
172
|
+
this.layoutManager = undefined;
|
|
173
|
+
this._isLayoutManagerDirty = false;
|
|
174
|
+
}
|
|
175
|
+
var layoutManagerParams = {
|
|
176
|
+
windowSize: windowSize,
|
|
177
|
+
maxColumns: this.numColumns,
|
|
178
|
+
horizontal: Boolean(this.propsRef.horizontal),
|
|
179
|
+
optimizeItemArrangement: (_b = this.propsRef.optimizeItemArrangement) !== null && _b !== void 0 ? _b : true,
|
|
180
|
+
overrideItemLayout: this.overrideItemLayout,
|
|
181
|
+
getItemType: this.getItemType,
|
|
182
|
+
};
|
|
156
183
|
if (!(this.layoutManager instanceof LayoutManagerClass)) {
|
|
157
|
-
//console.log("-----> new LayoutManagerClass");
|
|
158
|
-
this.layoutManager = new LayoutManagerClass(
|
|
159
|
-
windowSize: windowSize,
|
|
160
|
-
maxColumns: (_b = this.props.numColumns) !== null && _b !== void 0 ? _b : 1,
|
|
161
|
-
horizontal: !!this.props.horizontal,
|
|
162
|
-
optimizeItemArrangement: (_c = this.props.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
|
|
163
|
-
overrideItemLayout: function (index, layout) {
|
|
164
|
-
var _a, _b, _c;
|
|
165
|
-
(_b = (_a = _this.props) === null || _a === void 0 ? void 0 : _a.overrideItemLayout) === null || _b === void 0 ? void 0 : _b.call(_a, layout, _this.props.data[index], index, (_c = _this.props.numColumns) !== null && _c !== void 0 ? _c : 1, _this.props.extraData);
|
|
166
|
-
},
|
|
167
|
-
}, this.layoutManager);
|
|
184
|
+
// console.log("-----> new LayoutManagerClass");
|
|
185
|
+
this.layoutManager = new LayoutManagerClass(layoutManagerParams, this.layoutManager);
|
|
168
186
|
}
|
|
169
187
|
else {
|
|
170
|
-
this.layoutManager.updateLayoutParams(
|
|
171
|
-
windowSize: windowSize,
|
|
172
|
-
maxColumns: (_d = this.props.numColumns) !== null && _d !== void 0 ? _d : 1,
|
|
173
|
-
horizontal: !!this.props.horizontal,
|
|
174
|
-
optimizeItemArrangement: (_e = this.props.optimizeItemArrangement) !== null && _e !== void 0 ? _e : true,
|
|
175
|
-
});
|
|
188
|
+
this.layoutManager.updateLayoutParams(layoutManagerParams);
|
|
176
189
|
}
|
|
177
190
|
};
|
|
178
191
|
RecyclerViewManager.prototype.hasLayout = function () {
|
|
179
192
|
return this.layoutManager !== undefined;
|
|
180
193
|
};
|
|
181
|
-
RecyclerViewManager.prototype.
|
|
194
|
+
RecyclerViewManager.prototype.computeVisibleIndices = function () {
|
|
182
195
|
if (!this.layoutManager) {
|
|
183
196
|
throw new Error("LayoutManager is not initialized, visible indices are not unavailable");
|
|
184
197
|
}
|
|
@@ -199,7 +212,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
199
212
|
return true;
|
|
200
213
|
}
|
|
201
214
|
if (this.hasRenderedProgressively) {
|
|
202
|
-
return this.recomputeEngagedIndices() !== undefined;
|
|
215
|
+
return this.recomputeEngagedIndices() !== undefined;
|
|
203
216
|
}
|
|
204
217
|
else {
|
|
205
218
|
this.renderProgressively();
|
|
@@ -209,9 +222,9 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
209
222
|
RecyclerViewManager.prototype.computeItemViewability = function () {
|
|
210
223
|
// Using higher buffer for masonry to avoid missing items
|
|
211
224
|
this.itemViewabilityManager.shouldListenToVisibleIndices &&
|
|
212
|
-
this.itemViewabilityManager.updateViewableItems(this.
|
|
225
|
+
this.itemViewabilityManager.updateViewableItems(this.propsRef.masonry
|
|
213
226
|
? this.engagedIndicesTracker.getEngagedIndices().toArray()
|
|
214
|
-
: this.
|
|
227
|
+
: this.computeVisibleIndices().toArray());
|
|
215
228
|
};
|
|
216
229
|
RecyclerViewManager.prototype.recordInteraction = function () {
|
|
217
230
|
this.itemViewabilityManager.recordInteraction();
|
|
@@ -222,8 +235,8 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
222
235
|
RecyclerViewManager.prototype.processDataUpdate = function () {
|
|
223
236
|
var _a, _b;
|
|
224
237
|
if (this.hasLayout()) {
|
|
225
|
-
this.modifyChildrenLayout([], (_b = (_a = this.
|
|
226
|
-
if (!this.recomputeEngagedIndices()) {
|
|
238
|
+
this.modifyChildrenLayout([], (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
239
|
+
if (this.hasRenderedProgressively && !this.recomputeEngagedIndices()) {
|
|
227
240
|
// recomputeEngagedIndices will update the render stack if there are any changes in the engaged indices.
|
|
228
241
|
// It's important to update render stack so that elements are assgined right keys incase items were deleted.
|
|
229
242
|
this.updateRenderStack(this.engagedIndicesTracker.getEngagedIndices());
|
|
@@ -233,31 +246,52 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
233
246
|
RecyclerViewManager.prototype.recomputeEngagedIndices = function () {
|
|
234
247
|
return this.updateScrollOffset(this.getAbsoluteLastScrollOffset());
|
|
235
248
|
};
|
|
249
|
+
RecyclerViewManager.prototype.restoreIfNeeded = function () {
|
|
250
|
+
if (this._isDisposed) {
|
|
251
|
+
this._isDisposed = false;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
236
254
|
RecyclerViewManager.prototype.dispose = function () {
|
|
255
|
+
this._isDisposed = true;
|
|
237
256
|
this.itemViewabilityManager.dispose();
|
|
238
257
|
};
|
|
258
|
+
RecyclerViewManager.prototype.markLayoutManagerDirty = function () {
|
|
259
|
+
this._isLayoutManagerDirty = true;
|
|
260
|
+
};
|
|
239
261
|
RecyclerViewManager.prototype.getInitialScrollIndex = function () {
|
|
240
262
|
var _a, _b;
|
|
241
|
-
return ((_a = this.
|
|
263
|
+
return ((_a = this.propsRef.initialScrollIndex) !== null && _a !== void 0 ? _a : (((_b = this.propsRef.maintainVisibleContentPosition) === null || _b === void 0 ? void 0 : _b.startRenderingFromBottom)
|
|
242
264
|
? this.getDataLength() - 1
|
|
243
265
|
: undefined));
|
|
244
266
|
};
|
|
267
|
+
RecyclerViewManager.prototype.shouldMaintainVisibleContentPosition = function () {
|
|
268
|
+
var _a;
|
|
269
|
+
// Return true if maintainVisibleContentPosition is enabled and not horizontal
|
|
270
|
+
return (!((_a = this.propsRef.maintainVisibleContentPosition) === null || _a === void 0 ? void 0 : _a.disabled) &&
|
|
271
|
+
!this.propsRef.horizontal);
|
|
272
|
+
};
|
|
245
273
|
RecyclerViewManager.prototype.getDataLength = function () {
|
|
246
274
|
var _a, _b;
|
|
247
|
-
return (_b = (_a = this.
|
|
275
|
+
return (_b = (_a = this.propsRef.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
276
|
+
};
|
|
277
|
+
RecyclerViewManager.prototype.hasStableDataKeys = function () {
|
|
278
|
+
return Boolean(this.propsRef.keyExtractor);
|
|
279
|
+
};
|
|
280
|
+
RecyclerViewManager.prototype.getDataKey = function (index) {
|
|
281
|
+
var _a, _b, _c;
|
|
282
|
+
return ((_c = (_b = (_a = this.propsRef).keyExtractor) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : index.toString());
|
|
248
283
|
};
|
|
249
284
|
RecyclerViewManager.prototype.getLayoutManagerClass = function () {
|
|
250
|
-
var _a, _b;
|
|
251
285
|
// throw errors for incompatible props
|
|
252
|
-
if (this.
|
|
286
|
+
if (this.propsRef.masonry && this.propsRef.horizontal) {
|
|
253
287
|
throw new Error("Masonry and horizontal props are incompatible");
|
|
254
288
|
}
|
|
255
|
-
if (
|
|
289
|
+
if (this.numColumns > 1 && this.propsRef.horizontal) {
|
|
256
290
|
throw new Error("numColumns and horizontal props are incompatible");
|
|
257
291
|
}
|
|
258
|
-
return this.
|
|
292
|
+
return this.propsRef.masonry
|
|
259
293
|
? MasonryLayoutManager_1.RVMasonryLayoutManagerImpl
|
|
260
|
-
:
|
|
294
|
+
: this.numColumns > 1 && !this.propsRef.horizontal
|
|
261
295
|
? GridLayoutManager_1.RVGridLayoutManagerImpl
|
|
262
296
|
: LinearLayoutManager_1.RVLinearLayoutManagerImpl;
|
|
263
297
|
};
|
|
@@ -268,7 +302,7 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
268
302
|
}
|
|
269
303
|
var initialScrollIndex = this.getInitialScrollIndex();
|
|
270
304
|
var initialItemLayout = (_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.getLayout(initialScrollIndex !== null && initialScrollIndex !== void 0 ? initialScrollIndex : 0);
|
|
271
|
-
var initialItemOffset = this.
|
|
305
|
+
var initialItemOffset = this.propsRef.horizontal
|
|
272
306
|
? initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.x
|
|
273
307
|
: initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.y;
|
|
274
308
|
if (initialScrollIndex !== undefined) {
|
|
@@ -283,17 +317,18 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
283
317
|
initialItemOffset !== null && initialItemOffset !== void 0 ? initialItemOffset : 0 + this.firstItemOffset;
|
|
284
318
|
}
|
|
285
319
|
else {
|
|
286
|
-
//console.log("initialItemOffset", initialItemOffset, this.firstItemOffset);
|
|
320
|
+
// console.log("initialItemOffset", initialItemOffset, this.firstItemOffset);
|
|
287
321
|
this.engagedIndicesTracker.scrollOffset =
|
|
288
322
|
(initialItemOffset !== null && initialItemOffset !== void 0 ? initialItemOffset : 0) - this.firstItemOffset;
|
|
289
323
|
}
|
|
290
324
|
};
|
|
291
325
|
RecyclerViewManager.prototype.renderProgressively = function () {
|
|
326
|
+
this.progressiveRenderCount++;
|
|
292
327
|
var layoutManager = this.layoutManager;
|
|
293
328
|
if (layoutManager) {
|
|
294
329
|
this.applyInitialScrollAdjustment();
|
|
295
|
-
var visibleIndices = this.
|
|
296
|
-
//console.log("---------> visibleIndices", visibleIndices);
|
|
330
|
+
var visibleIndices = this.computeVisibleIndices();
|
|
331
|
+
// console.log("---------> visibleIndices", visibleIndices);
|
|
297
332
|
this.hasRenderedProgressively = visibleIndices.every(function (index) {
|
|
298
333
|
return layoutManager.getLayout(index).isHeightMeasured &&
|
|
299
334
|
layoutManager.getLayout(index).isWidthMeasured;
|
|
@@ -301,21 +336,23 @@ var RecyclerViewManager = /** @class */ (function () {
|
|
|
301
336
|
if (this.hasRenderedProgressively) {
|
|
302
337
|
this.isFirstLayoutComplete = true;
|
|
303
338
|
}
|
|
339
|
+
var batchSize = this.numColumns *
|
|
340
|
+
Math.pow(this.initialDrawBatchSize, Math.ceil(this.progressiveRenderCount / 5));
|
|
304
341
|
// If everything is measured then render stack will be in sync. The buffer items will get rendered in the next update
|
|
305
342
|
// triggered by the useOnLoad hook.
|
|
306
343
|
!this.hasRenderedProgressively &&
|
|
307
344
|
this.updateRenderStack(
|
|
308
|
-
// pick first n indices from visible ones
|
|
309
|
-
visibleIndices.slice(0, Math.min(visibleIndices.length, this.
|
|
345
|
+
// pick first n indices from visible ones based on batch size
|
|
346
|
+
visibleIndices.slice(0, Math.min(visibleIndices.length, this.getRenderStack().size + batchSize)));
|
|
310
347
|
}
|
|
311
348
|
};
|
|
312
349
|
RecyclerViewManager.prototype.getItemType = function (index) {
|
|
313
350
|
var _a, _b, _c;
|
|
314
|
-
return ((_c = (_b = (_a = this.
|
|
351
|
+
return ((_c = (_b = (_a = this.propsRef).getItemType) === null || _b === void 0 ? void 0 : _b.call(_a, this.propsRef.data[index], index)) !== null && _c !== void 0 ? _c : "default").toString();
|
|
315
352
|
};
|
|
316
|
-
RecyclerViewManager.prototype.
|
|
317
|
-
var _a, _b
|
|
318
|
-
|
|
353
|
+
RecyclerViewManager.prototype.overrideItemLayout = function (index, layout) {
|
|
354
|
+
var _a, _b;
|
|
355
|
+
(_b = (_a = this.propsRef) === null || _a === void 0 ? void 0 : _a.overrideItemLayout) === null || _b === void 0 ? void 0 : _b.call(_a, layout, this.propsRef.data[index], index, this.numColumns, this.propsRef.extraData);
|
|
319
356
|
};
|
|
320
357
|
return RecyclerViewManager;
|
|
321
358
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FlashListProps } from "../FlashListProps";
|
|
2
1
|
import { ScrollViewProps } from "react-native";
|
|
2
|
+
import { FlashListProps } from "../FlashListProps";
|
|
3
3
|
export interface RecyclerViewProps<TItem> extends Omit<FlashListProps<TItem>, "contentContainerStyle"> {
|
|
4
4
|
/**
|
|
5
5
|
* Style for the RecyclerView's parent container.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecyclerViewProps.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RecyclerViewProps.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,iBAAiB,CAAC,KAAK,CACtC,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAC5D;;OAEG;IACH,qBAAqB,CAAC,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;CAClE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ConsecutiveNumbers } from "./helpers/ConsecutiveNumbers";
|
|
2
|
+
/**
|
|
3
|
+
* Manages the recycling of rendered items in a virtualized list.
|
|
4
|
+
* This class handles tracking, recycling, and reusing item keys to optimize
|
|
5
|
+
* rendering performance by minimizing creation/destruction of components.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RenderStackManager {
|
|
8
|
+
disableRecycling: boolean;
|
|
9
|
+
private maxItemsInRecyclePool;
|
|
10
|
+
private recycleKeyPools;
|
|
11
|
+
private keyMap;
|
|
12
|
+
private stableIdMap;
|
|
13
|
+
private keyCounter;
|
|
14
|
+
private unProcessedIndices;
|
|
15
|
+
/**
|
|
16
|
+
* @param maxItemsInRecyclePool - Maximum number of items that can be in the recycle pool
|
|
17
|
+
*/
|
|
18
|
+
constructor(maxItemsInRecyclePool?: number);
|
|
19
|
+
/**
|
|
20
|
+
* Synchronizes the render stack with the current state of data.
|
|
21
|
+
* This method is the core orchestrator that:
|
|
22
|
+
* 1. Recycles keys for items that are no longer valid
|
|
23
|
+
* 2. Updates existing keys for items that remain visible
|
|
24
|
+
* 3. Assigns new keys for newly visible items
|
|
25
|
+
* 4. Cleans up excess items to maintain the recycling pool size
|
|
26
|
+
*
|
|
27
|
+
* @param getStableId - Function to get a stable identifier for an item at a specific index
|
|
28
|
+
* @param getItemType - Function to get the type of an item at a specific index
|
|
29
|
+
* @param engagedIndices - Collection of indices that are currently visible or engaged
|
|
30
|
+
* @param dataLength - Total length of the data set
|
|
31
|
+
*/
|
|
32
|
+
sync(getStableId: (index: number) => string, getItemType: (index: number) => string, engagedIndices: ConsecutiveNumbers, dataLength: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Checks if a stable ID already has an assigned key
|
|
35
|
+
*/
|
|
36
|
+
private hasOptimizedKey;
|
|
37
|
+
/**
|
|
38
|
+
* Cleans up stale keys and manages the recycle pool size.
|
|
39
|
+
* This ensures we don't maintain references to items that are no longer in the dataset,
|
|
40
|
+
* and limits the number of recycled items to avoid excessive memory usage.
|
|
41
|
+
*/
|
|
42
|
+
private cleanup;
|
|
43
|
+
/**
|
|
44
|
+
* Places a key back into its type-specific recycle pool for future reuse
|
|
45
|
+
*/
|
|
46
|
+
private recycleKey;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the current render stack containing all active keys and their metadata
|
|
49
|
+
*/
|
|
50
|
+
getRenderStack(): Map<string, {
|
|
51
|
+
itemType: string;
|
|
52
|
+
index: number;
|
|
53
|
+
stableId: string;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Syncs an individual item by assigning it an appropriate key.
|
|
57
|
+
* Will use an existing key if available, or generate a new one.
|
|
58
|
+
*
|
|
59
|
+
* @returns The key assigned to the item
|
|
60
|
+
*/
|
|
61
|
+
private syncItem;
|
|
62
|
+
/**
|
|
63
|
+
* Clears all recycled keys from the pool, effectively resetting the recycling system.
|
|
64
|
+
* This operation does not affect currently active keys.
|
|
65
|
+
*/
|
|
66
|
+
private clearRecyclePool;
|
|
67
|
+
/**
|
|
68
|
+
* Generates a unique sequential key using an internal counter.
|
|
69
|
+
* @returns A unique key as a string
|
|
70
|
+
*/
|
|
71
|
+
private generateKey;
|
|
72
|
+
/**
|
|
73
|
+
* Removes a specific key from its type's recycle pool
|
|
74
|
+
*/
|
|
75
|
+
private deleteKeyFromRecyclePool;
|
|
76
|
+
/**
|
|
77
|
+
* Gets or creates a recycle pool for a specific item type
|
|
78
|
+
*/
|
|
79
|
+
private getRecyclePoolForType;
|
|
80
|
+
/**
|
|
81
|
+
* Retrieves and removes a key from the type's recycle pool
|
|
82
|
+
* @returns A recycled key or undefined if none available
|
|
83
|
+
*/
|
|
84
|
+
private getKeyFromRecyclePool;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=RenderStackManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderStackManager.d.ts","sourceRoot":"","sources":["../../src/recyclerview/RenderStackManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,kBAAkB;IACtB,gBAAgB,UAAS;IAGhC,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,eAAe,CAA2B;IAGlD,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,WAAW,CAAsB;IAGzC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,kBAAkB,CAAc;IAExC;;OAEG;gBACS,qBAAqB,GAAE,MAAgC;IASnE;;;;;;;;;;;;OAYG;IACI,IAAI,CACT,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACtC,cAAc,EAAE,kBAAkB,EAClC,UAAU,EAAE,MAAM;IAmEpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IA8Df;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;OAEG;IACI,cAAc;kBA7MP,MAAM;eAAS,MAAM;kBAAY,MAAM;;IAiNrD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA+BhB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAS9B"}
|