@shopify/flash-list 1.8.0 → 2.0.0-alpha.10
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 +179 -27
- package/dist/AnimatedFlashList.d.ts +0 -1
- package/dist/AnimatedFlashList.d.ts.map +1 -1
- package/dist/FlashList.js +2 -3
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +68 -5
- package/dist/FlashListProps.d.ts.map +1 -1
- 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 +35 -0
- 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__/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__/RecycleKeyManager.test.d.ts +2 -0
- package/dist/__tests__/RecycleKeyManager.test.d.ts.map +1 -0
- package/dist/__tests__/RecycleKeyManager.test.js +210 -0
- package/dist/__tests__/RecycleKeyManager.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 +59 -0
- package/dist/__tests__/RecyclerView.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 +111 -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 -3
- 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 +1 -2
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/enableNewCore.d.ts +3 -0
- package/dist/enableNewCore.d.ts.map +1 -0
- package/dist/enableNewCore.js +25 -0
- package/dist/enableNewCore.js.map +1 -0
- package/dist/errors/CustomError.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -8
- 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/RecycleKeyManager.d.ts +82 -0
- package/dist/recyclerview/RecycleKeyManager.d.ts.map +1 -0
- package/dist/recyclerview/RecycleKeyManager.js +135 -0
- package/dist/recyclerview/RecycleKeyManager.js.map +1 -0
- package/dist/recyclerview/RecyclerView.d.ts +12 -0
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerView.js +300 -0
- package/dist/recyclerview/RecyclerView.js.map +1 -0
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts +11 -0
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewContextProvider.js +11 -0
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts +62 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewManager.js +371 -0
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -0
- package/dist/recyclerview/RecyclerViewProps.d.ts +9 -0
- package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewProps.js +3 -0
- package/dist/recyclerview/RecyclerViewProps.js.map +1 -0
- package/dist/recyclerview/ViewHolder.d.ts +45 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -0
- package/dist/recyclerview/ViewHolder.js +96 -0
- package/dist/recyclerview/ViewHolder.js.map +1 -0
- package/dist/recyclerview/ViewHolderCollection.d.ts +57 -0
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -0
- package/dist/recyclerview/ViewHolderCollection.js +74 -0
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -0
- package/dist/recyclerview/components/CompatScroller.d.ts +7 -0
- package/dist/recyclerview/components/CompatScroller.d.ts.map +1 -0
- package/dist/recyclerview/components/CompatScroller.js +8 -0
- package/dist/recyclerview/components/CompatScroller.js.map +1 -0
- package/dist/recyclerview/components/CompatView.d.ts +7 -0
- package/dist/recyclerview/components/CompatView.d.ts.map +1 -0
- package/dist/recyclerview/components/CompatView.js +8 -0
- package/dist/recyclerview/components/CompatView.js.map +1 -0
- package/dist/recyclerview/components/ScrollAnchor.d.ts +29 -0
- package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -0
- package/dist/recyclerview/components/ScrollAnchor.js +34 -0
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -0
- package/dist/recyclerview/components/StickyHeaders.d.ts +38 -0
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -0
- package/dist/recyclerview/components/StickyHeaders.js +111 -0
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts +51 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts.map +1 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js +122 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +105 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js +209 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +10 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js +39 -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 +18 -0
- package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useBoundDetection.js +101 -0
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -0
- package/dist/recyclerview/hooks/useLayoutState.d.ts +12 -0
- package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useLayoutState.js +42 -0
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -0
- 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 +25 -0
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useOnLoad.js +74 -0
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +72 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.js +424 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +8 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +30 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclingState.d.ts +16 -0
- package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclingState.js +53 -0
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -0
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts +27 -0
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useSecondaryProps.js +96 -0
- package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +8 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +34 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts +10 -0
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.js +28 -0
- package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +65 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +201 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +282 -0
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/LayoutManager.js +254 -0
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts +51 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js +191 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +73 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +272 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts +12 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts.map +1 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.js +17 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -0
- package/dist/recyclerview/utils/componentUtils.d.ts +19 -0
- package/dist/recyclerview/utils/componentUtils.d.ts.map +1 -0
- package/dist/recyclerview/utils/componentUtils.js +32 -0
- package/dist/recyclerview/utils/componentUtils.js.map +1 -0
- package/dist/recyclerview/utils/findVisibleIndex.d.ts +24 -0
- package/dist/recyclerview/utils/findVisibleIndex.d.ts.map +1 -0
- package/dist/recyclerview/utils/findVisibleIndex.js +80 -0
- package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -0
- package/dist/recyclerview/utils/measureLayout.d.ts +52 -0
- package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -0
- package/dist/recyclerview/utils/measureLayout.js +107 -0
- package/dist/recyclerview/utils/measureLayout.js.map +1 -0
- 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 +89 -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.d.ts +13 -0
- package/dist/utils/AverageWindow.d.ts.map +1 -1
- package/dist/utils/AverageWindow.js +30 -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/ViewabilityHelper.js.map +1 -1
- package/dist/viewability/ViewabilityManager.d.ts.map +1 -1
- package/dist/viewability/ViewabilityManager.js.map +1 -1
- package/package.json +4 -3
- package/src/FlashList.tsx +1 -1
- package/src/FlashListProps.ts +73 -2
- package/src/__tests__/AverageWindow.test.ts +49 -1
- package/src/__tests__/ConsecutiveNumbers.test.ts +232 -0
- package/src/__tests__/GridLayoutManager.test.ts +113 -0
- package/src/__tests__/LinearLayoutManager.test.ts +227 -0
- package/src/__tests__/MasonryLayoutManager.test.ts +202 -0
- package/src/__tests__/RecycleKeyManager.test.ts +254 -0
- package/src/__tests__/RecyclerView.test.tsx +69 -0
- package/src/__tests__/findVisibleIndex.test.ts +369 -0
- package/src/__tests__/helpers/createLayoutManager.ts +142 -0
- package/src/__tests__/useUnmountAwareCallbacks.test.tsx +285 -0
- package/src/enableNewCore.ts +24 -0
- package/src/index.ts +27 -0
- 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/RecycleKeyManager.ts +185 -0
- package/src/recyclerview/RecyclerView.tsx +535 -0
- package/src/recyclerview/RecyclerViewContextProvider.ts +20 -0
- package/src/recyclerview/RecyclerViewManager.ts +434 -0
- package/src/recyclerview/RecyclerViewProps.ts +11 -0
- package/src/recyclerview/ViewHolder.tsx +178 -0
- package/src/recyclerview/ViewHolderCollection.tsx +165 -0
- package/src/recyclerview/components/CompatScroller.ts +9 -0
- package/src/recyclerview/components/CompatView.ts +9 -0
- package/src/recyclerview/components/ScrollAnchor.tsx +54 -0
- package/src/recyclerview/components/StickyHeaders.tsx +204 -0
- package/src/recyclerview/helpers/ConsecutiveNumbers.ts +120 -0
- package/src/recyclerview/helpers/EngagedIndicesTracker.ts +302 -0
- package/src/recyclerview/helpers/RenderTimeTracker.ts +38 -0
- package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
- package/src/recyclerview/hooks/useBoundDetection.ts +127 -0
- package/src/recyclerview/hooks/useLayoutState.ts +46 -0
- package/src/recyclerview/hooks/useMappingHelper.ts +20 -0
- package/src/recyclerview/hooks/useOnLoad.ts +81 -0
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +546 -0
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +34 -0
- package/src/recyclerview/hooks/useRecyclingState.ts +63 -0
- package/src/recyclerview/hooks/useSecondaryProps.tsx +124 -0
- package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +37 -0
- package/src/recyclerview/hooks/useUnmountFlag.ts +26 -0
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +212 -0
- package/src/recyclerview/layout-managers/LayoutManager.ts +498 -0
- package/src/recyclerview/layout-managers/LinearLayoutManager.ts +171 -0
- package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +301 -0
- package/src/recyclerview/utils/adjustOffsetForRTL.ts +17 -0
- package/src/recyclerview/utils/componentUtils.ts +28 -0
- package/src/recyclerview/utils/findVisibleIndex.ts +93 -0
- package/src/recyclerview/utils/measureLayout.ts +128 -0
- package/src/recyclerview/utils/measureLayout.web.ts +104 -0
- package/src/utils/AverageWindow.ts +33 -0
- package/src/viewability/ViewToken.ts +1 -1
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecyclerViewManager = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var ViewabilityManager_1 = tslib_1.__importDefault(require("../viewability/ViewabilityManager"));
|
|
6
|
+
var GridLayoutManager_1 = require("./layout-managers/GridLayoutManager");
|
|
7
|
+
var LinearLayoutManager_1 = require("./layout-managers/LinearLayoutManager");
|
|
8
|
+
var MasonryLayoutManager_1 = require("./layout-managers/MasonryLayoutManager");
|
|
9
|
+
var RecycleKeyManager_1 = require("./RecycleKeyManager");
|
|
10
|
+
var EngagedIndicesTracker_1 = require("./helpers/EngagedIndicesTracker");
|
|
11
|
+
// Abstracts layout manager, key manager and viewability manager and generates render stack (progressively on load)
|
|
12
|
+
var RecyclerViewManager = /** @class */ (function () {
|
|
13
|
+
function RecyclerViewManager(props) {
|
|
14
|
+
var _this = this;
|
|
15
|
+
this.initialDrawBatchSize = 1;
|
|
16
|
+
// Map of index to key
|
|
17
|
+
this.renderStack = new Map();
|
|
18
|
+
this.isFirstLayoutComplete = false;
|
|
19
|
+
this.hasRenderedProgressively = false;
|
|
20
|
+
this.allocatedKeyTracker = new Set();
|
|
21
|
+
this._isDisposed = false;
|
|
22
|
+
this.disableRecycling = false;
|
|
23
|
+
this.firstItemOffset = 0;
|
|
24
|
+
this.ignoreScrollEvents = false;
|
|
25
|
+
// updates render stack based on the engaged indices which are sorted. Recycles unused keys.
|
|
26
|
+
// TODO: Write comprehensive tests for this function
|
|
27
|
+
this.updateRenderStack = function (engagedIndices) {
|
|
28
|
+
// console.log("updateRenderStack", engagedIndices);
|
|
29
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
30
|
+
var _d, _e;
|
|
31
|
+
_this.allocatedKeyTracker.clear();
|
|
32
|
+
var newRenderStack = new Map();
|
|
33
|
+
try {
|
|
34
|
+
for (var _f = tslib_1.__values(_this.renderStack), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
35
|
+
var _h = tslib_1.__read(_g.value, 2), index = _h[0], key = _h[1];
|
|
36
|
+
if (!engagedIndices.includes(index)) {
|
|
37
|
+
_this.recycleKeyManager.recycleKey(key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
42
|
+
finally {
|
|
43
|
+
try {
|
|
44
|
+
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
45
|
+
}
|
|
46
|
+
finally { if (e_1) throw e_1.error; }
|
|
47
|
+
}
|
|
48
|
+
if (_this.disableRecycling) {
|
|
49
|
+
_this.recycleKeyManager.clearPool();
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
for (var engagedIndices_1 = tslib_1.__values(engagedIndices), engagedIndices_1_1 = engagedIndices_1.next(); !engagedIndices_1_1.done; engagedIndices_1_1 = engagedIndices_1.next()) {
|
|
53
|
+
var index = engagedIndices_1_1.value;
|
|
54
|
+
var currentKey = _this.renderStack.get(index);
|
|
55
|
+
if (currentKey &&
|
|
56
|
+
!_this.disableRecycling &&
|
|
57
|
+
!_this.allocatedKeyTracker.has(currentKey)) {
|
|
58
|
+
_this.recycleKeyManager.recycleKey(currentKey);
|
|
59
|
+
}
|
|
60
|
+
var newKey = _this.recycleKeyManager.getKey(_this.getItemType(index), _this.getStableId(index), currentKey);
|
|
61
|
+
_this.allocatedKeyTracker.add(newKey);
|
|
62
|
+
newRenderStack.set(index, newKey);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
66
|
+
finally {
|
|
67
|
+
try {
|
|
68
|
+
if (engagedIndices_1_1 && !engagedIndices_1_1.done && (_b = engagedIndices_1.return)) _b.call(engagedIndices_1);
|
|
69
|
+
}
|
|
70
|
+
finally { if (e_2) throw e_2.error; }
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
// DANGER
|
|
74
|
+
for (var _j = tslib_1.__values(_this.renderStack), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
75
|
+
var _l = tslib_1.__read(_k.value, 2), index = _l[0], key = _l[1];
|
|
76
|
+
if (_this.recycleKeyManager.hasKeyInPool(key) &&
|
|
77
|
+
!newRenderStack.has(index) &&
|
|
78
|
+
index < ((_e = (_d = _this.props.data) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0)) {
|
|
79
|
+
_this.allocatedKeyTracker.add(key);
|
|
80
|
+
newRenderStack.set(index, key);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
85
|
+
finally {
|
|
86
|
+
try {
|
|
87
|
+
if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
|
|
88
|
+
}
|
|
89
|
+
finally { if (e_3) throw e_3.error; }
|
|
90
|
+
}
|
|
91
|
+
_this.renderStack = newRenderStack;
|
|
92
|
+
};
|
|
93
|
+
this.props = props;
|
|
94
|
+
this.engagedIndicesTracker = new EngagedIndicesTracker_1.RVEngagedIndicesTrackerImpl();
|
|
95
|
+
this.recycleKeyManager = new RecycleKeyManager_1.RecycleKeyManagerImpl();
|
|
96
|
+
this.itemViewabilityManager = new ViewabilityManager_1.default(this);
|
|
97
|
+
}
|
|
98
|
+
Object.defineProperty(RecyclerViewManager.prototype, "isOffsetProjectionEnabled", {
|
|
99
|
+
get: function () {
|
|
100
|
+
return this.engagedIndicesTracker.enableOffsetProjection;
|
|
101
|
+
},
|
|
102
|
+
enumerable: false,
|
|
103
|
+
configurable: true
|
|
104
|
+
});
|
|
105
|
+
Object.defineProperty(RecyclerViewManager.prototype, "isDisposed", {
|
|
106
|
+
get: function () {
|
|
107
|
+
return this._isDisposed;
|
|
108
|
+
},
|
|
109
|
+
enumerable: false,
|
|
110
|
+
configurable: true
|
|
111
|
+
});
|
|
112
|
+
RecyclerViewManager.prototype.setOffsetProjectionEnabled = function (value) {
|
|
113
|
+
this.engagedIndicesTracker.enableOffsetProjection = value;
|
|
114
|
+
};
|
|
115
|
+
RecyclerViewManager.prototype.updateProps = function (props) {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
this.props = props;
|
|
118
|
+
this.engagedIndicesTracker.drawDistance =
|
|
119
|
+
(_a = props.drawDistance) !== null && _a !== void 0 ? _a : this.engagedIndicesTracker.drawDistance;
|
|
120
|
+
if (this.props.drawDistance === 0) {
|
|
121
|
+
this.initialDrawBatchSize = 1;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.initialDrawBatchSize = ((_b = props.numColumns) !== null && _b !== void 0 ? _b : 1) * 2;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Updates the scroll offset and returns the engaged indices if any
|
|
129
|
+
* @param offset
|
|
130
|
+
* @param velocity
|
|
131
|
+
*/
|
|
132
|
+
RecyclerViewManager.prototype.updateScrollOffset = function (offset, velocity) {
|
|
133
|
+
if (this.layoutManager && !this.isDisposed) {
|
|
134
|
+
var engagedIndices = this.engagedIndicesTracker.updateScrollOffset(offset - this.firstItemOffset, velocity, this.layoutManager);
|
|
135
|
+
if (engagedIndices) {
|
|
136
|
+
this.updateRenderStack(engagedIndices);
|
|
137
|
+
return engagedIndices;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return undefined;
|
|
141
|
+
};
|
|
142
|
+
RecyclerViewManager.prototype.updateAverageRenderTime = function (time) {
|
|
143
|
+
this.engagedIndicesTracker.averageRenderTime = time;
|
|
144
|
+
};
|
|
145
|
+
RecyclerViewManager.prototype.getIsFirstLayoutComplete = function () {
|
|
146
|
+
return this.isFirstLayoutComplete;
|
|
147
|
+
};
|
|
148
|
+
RecyclerViewManager.prototype.getLayout = function (index) {
|
|
149
|
+
if (!this.layoutManager) {
|
|
150
|
+
throw new Error("LayoutManager is not initialized, layout info is unavailable");
|
|
151
|
+
}
|
|
152
|
+
return this.layoutManager.getLayout(index);
|
|
153
|
+
};
|
|
154
|
+
// Doesn't include header / foot etc
|
|
155
|
+
RecyclerViewManager.prototype.getChildContainerDimensions = function () {
|
|
156
|
+
if (!this.layoutManager) {
|
|
157
|
+
throw new Error("LayoutManager is not initialized, child container layout is unavailable");
|
|
158
|
+
}
|
|
159
|
+
return this.layoutManager.getLayoutSize();
|
|
160
|
+
};
|
|
161
|
+
RecyclerViewManager.prototype.getRenderStack = function () {
|
|
162
|
+
return this.renderStack;
|
|
163
|
+
};
|
|
164
|
+
RecyclerViewManager.prototype.getWindowSize = function () {
|
|
165
|
+
if (!this.layoutManager) {
|
|
166
|
+
throw new Error("LayoutManager is not initialized, window size is unavailable");
|
|
167
|
+
}
|
|
168
|
+
return this.layoutManager.getWindowsSize();
|
|
169
|
+
};
|
|
170
|
+
// Includes first item offset correction
|
|
171
|
+
RecyclerViewManager.prototype.getLastScrollOffset = function () {
|
|
172
|
+
return this.engagedIndicesTracker.scrollOffset;
|
|
173
|
+
};
|
|
174
|
+
RecyclerViewManager.prototype.getMaxScrollOffset = function () {
|
|
175
|
+
return Math.max(0, (this.props.horizontal
|
|
176
|
+
? this.getChildContainerDimensions().width
|
|
177
|
+
: this.getChildContainerDimensions().height) -
|
|
178
|
+
(this.props.horizontal
|
|
179
|
+
? this.getWindowSize().width
|
|
180
|
+
: this.getWindowSize().height) +
|
|
181
|
+
this.firstItemOffset);
|
|
182
|
+
};
|
|
183
|
+
// Doesn't include first item offset correction
|
|
184
|
+
RecyclerViewManager.prototype.getAbsoluteLastScrollOffset = function () {
|
|
185
|
+
return this.engagedIndicesTracker.scrollOffset + this.firstItemOffset;
|
|
186
|
+
};
|
|
187
|
+
RecyclerViewManager.prototype.setScrollDirection = function (scrollDirection) {
|
|
188
|
+
this.engagedIndicesTracker.setScrollDirection(scrollDirection);
|
|
189
|
+
};
|
|
190
|
+
RecyclerViewManager.prototype.resetVelocityCompute = function () {
|
|
191
|
+
this.engagedIndicesTracker.resetVelocityHistory();
|
|
192
|
+
};
|
|
193
|
+
RecyclerViewManager.prototype.updateLayoutParams = function (windowSize, firstItemOffset) {
|
|
194
|
+
var _this = this;
|
|
195
|
+
var _a, _b, _c, _d, _e;
|
|
196
|
+
this.firstItemOffset = firstItemOffset;
|
|
197
|
+
var LayoutManagerClass = this.getLayoutManagerClass();
|
|
198
|
+
if (this.layoutManager &&
|
|
199
|
+
Boolean((_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.isHorizontal()) !==
|
|
200
|
+
Boolean(this.props.horizontal)) {
|
|
201
|
+
throw new Error("Horizontal prop cannot be toggled, you can use a key on FlashList to recreate it.");
|
|
202
|
+
}
|
|
203
|
+
if (!(this.layoutManager instanceof LayoutManagerClass)) {
|
|
204
|
+
// console.log("-----> new LayoutManagerClass");
|
|
205
|
+
this.layoutManager = new LayoutManagerClass({
|
|
206
|
+
windowSize: windowSize,
|
|
207
|
+
maxColumns: (_b = this.props.numColumns) !== null && _b !== void 0 ? _b : 1,
|
|
208
|
+
horizontal: Boolean(this.props.horizontal),
|
|
209
|
+
optimizeItemArrangement: (_c = this.props.optimizeItemArrangement) !== null && _c !== void 0 ? _c : true,
|
|
210
|
+
overrideItemLayout: function (index, layout) {
|
|
211
|
+
var _a, _b, _c;
|
|
212
|
+
(_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);
|
|
213
|
+
},
|
|
214
|
+
}, this.layoutManager);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
this.layoutManager.updateLayoutParams({
|
|
218
|
+
windowSize: windowSize,
|
|
219
|
+
maxColumns: (_d = this.props.numColumns) !== null && _d !== void 0 ? _d : 1,
|
|
220
|
+
horizontal: Boolean(this.props.horizontal),
|
|
221
|
+
optimizeItemArrangement: (_e = this.props.optimizeItemArrangement) !== null && _e !== void 0 ? _e : true,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
RecyclerViewManager.prototype.hasLayout = function () {
|
|
226
|
+
return this.layoutManager !== undefined;
|
|
227
|
+
};
|
|
228
|
+
RecyclerViewManager.prototype.getVisibleIndices = function () {
|
|
229
|
+
if (!this.layoutManager) {
|
|
230
|
+
throw new Error("LayoutManager is not initialized, visible indices are not unavailable");
|
|
231
|
+
}
|
|
232
|
+
return this.engagedIndicesTracker.computeVisibleIndices(this.layoutManager);
|
|
233
|
+
};
|
|
234
|
+
RecyclerViewManager.prototype.getEngagedIndices = function () {
|
|
235
|
+
return this.engagedIndicesTracker.getEngagedIndices();
|
|
236
|
+
};
|
|
237
|
+
RecyclerViewManager.prototype.modifyChildrenLayout = function (layoutInfo, dataLength) {
|
|
238
|
+
var _a, _b;
|
|
239
|
+
(_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.modifyLayout(layoutInfo, dataLength);
|
|
240
|
+
if (dataLength === 0) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
if ((_b = this.layoutManager) === null || _b === void 0 ? void 0 : _b.requiresRepaint) {
|
|
244
|
+
// console.log("requiresRepaint triggered");
|
|
245
|
+
this.layoutManager.requiresRepaint = false;
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
if (this.hasRenderedProgressively) {
|
|
249
|
+
return this.recomputeEngagedIndices() !== undefined;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.renderProgressively();
|
|
253
|
+
}
|
|
254
|
+
return !this.hasRenderedProgressively;
|
|
255
|
+
};
|
|
256
|
+
RecyclerViewManager.prototype.computeItemViewability = function () {
|
|
257
|
+
// Using higher buffer for masonry to avoid missing items
|
|
258
|
+
this.itemViewabilityManager.shouldListenToVisibleIndices &&
|
|
259
|
+
this.itemViewabilityManager.updateViewableItems(this.props.masonry
|
|
260
|
+
? this.engagedIndicesTracker.getEngagedIndices().toArray()
|
|
261
|
+
: this.getVisibleIndices().toArray());
|
|
262
|
+
};
|
|
263
|
+
RecyclerViewManager.prototype.recordInteraction = function () {
|
|
264
|
+
this.itemViewabilityManager.recordInteraction();
|
|
265
|
+
};
|
|
266
|
+
RecyclerViewManager.prototype.recomputeViewableItems = function () {
|
|
267
|
+
this.itemViewabilityManager.recomputeViewableItems();
|
|
268
|
+
};
|
|
269
|
+
RecyclerViewManager.prototype.processDataUpdate = function () {
|
|
270
|
+
var _a, _b;
|
|
271
|
+
if (this.hasLayout()) {
|
|
272
|
+
this.modifyChildrenLayout([], (_b = (_a = this.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
273
|
+
if (!this.recomputeEngagedIndices()) {
|
|
274
|
+
// recomputeEngagedIndices will update the render stack if there are any changes in the engaged indices.
|
|
275
|
+
// It's important to update render stack so that elements are assgined right keys incase items were deleted.
|
|
276
|
+
this.updateRenderStack(this.engagedIndicesTracker.getEngagedIndices());
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
RecyclerViewManager.prototype.recomputeEngagedIndices = function () {
|
|
281
|
+
return this.updateScrollOffset(this.getAbsoluteLastScrollOffset());
|
|
282
|
+
};
|
|
283
|
+
RecyclerViewManager.prototype.dispose = function () {
|
|
284
|
+
this._isDisposed = true;
|
|
285
|
+
this.itemViewabilityManager.dispose();
|
|
286
|
+
};
|
|
287
|
+
RecyclerViewManager.prototype.getInitialScrollIndex = function () {
|
|
288
|
+
var _a, _b;
|
|
289
|
+
return ((_a = this.props.initialScrollIndex) !== null && _a !== void 0 ? _a : (((_b = this.props.maintainVisibleContentPosition) === null || _b === void 0 ? void 0 : _b.startRenderingFromBottom)
|
|
290
|
+
? this.getDataLength() - 1
|
|
291
|
+
: undefined));
|
|
292
|
+
};
|
|
293
|
+
RecyclerViewManager.prototype.getDataLength = function () {
|
|
294
|
+
var _a, _b;
|
|
295
|
+
return (_b = (_a = this.props.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
296
|
+
};
|
|
297
|
+
RecyclerViewManager.prototype.getLayoutManagerClass = function () {
|
|
298
|
+
var _a, _b;
|
|
299
|
+
// throw errors for incompatible props
|
|
300
|
+
if (this.props.masonry && this.props.horizontal) {
|
|
301
|
+
throw new Error("Masonry and horizontal props are incompatible");
|
|
302
|
+
}
|
|
303
|
+
if (((_a = this.props.numColumns) !== null && _a !== void 0 ? _a : 1) > 1 && this.props.horizontal) {
|
|
304
|
+
throw new Error("numColumns and horizontal props are incompatible");
|
|
305
|
+
}
|
|
306
|
+
return this.props.masonry
|
|
307
|
+
? MasonryLayoutManager_1.RVMasonryLayoutManagerImpl
|
|
308
|
+
: ((_b = this.props.numColumns) !== null && _b !== void 0 ? _b : 1) > 1 && !this.props.horizontal
|
|
309
|
+
? GridLayoutManager_1.RVGridLayoutManagerImpl
|
|
310
|
+
: LinearLayoutManager_1.RVLinearLayoutManagerImpl;
|
|
311
|
+
};
|
|
312
|
+
RecyclerViewManager.prototype.applyInitialScrollAdjustment = function () {
|
|
313
|
+
var _a;
|
|
314
|
+
if (!this.layoutManager || this.getDataLength() === 0) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
var initialScrollIndex = this.getInitialScrollIndex();
|
|
318
|
+
var initialItemLayout = (_a = this.layoutManager) === null || _a === void 0 ? void 0 : _a.getLayout(initialScrollIndex !== null && initialScrollIndex !== void 0 ? initialScrollIndex : 0);
|
|
319
|
+
var initialItemOffset = this.props.horizontal
|
|
320
|
+
? initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.x
|
|
321
|
+
: initialItemLayout === null || initialItemLayout === void 0 ? void 0 : initialItemLayout.y;
|
|
322
|
+
if (initialScrollIndex !== undefined) {
|
|
323
|
+
// console.log(
|
|
324
|
+
// "initialItemOffset",
|
|
325
|
+
// initialScrollIndex,
|
|
326
|
+
// initialItemOffset,
|
|
327
|
+
// this.firstItemOffset
|
|
328
|
+
// );
|
|
329
|
+
this.layoutManager.recomputeLayouts(0, initialScrollIndex);
|
|
330
|
+
this.engagedIndicesTracker.scrollOffset =
|
|
331
|
+
initialItemOffset !== null && initialItemOffset !== void 0 ? initialItemOffset : 0 + this.firstItemOffset;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
// console.log("initialItemOffset", initialItemOffset, this.firstItemOffset);
|
|
335
|
+
this.engagedIndicesTracker.scrollOffset =
|
|
336
|
+
(initialItemOffset !== null && initialItemOffset !== void 0 ? initialItemOffset : 0) - this.firstItemOffset;
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
RecyclerViewManager.prototype.renderProgressively = function () {
|
|
340
|
+
var layoutManager = this.layoutManager;
|
|
341
|
+
if (layoutManager) {
|
|
342
|
+
this.applyInitialScrollAdjustment();
|
|
343
|
+
var visibleIndices = this.getVisibleIndices();
|
|
344
|
+
// console.log("---------> visibleIndices", visibleIndices);
|
|
345
|
+
this.hasRenderedProgressively = visibleIndices.every(function (index) {
|
|
346
|
+
return layoutManager.getLayout(index).isHeightMeasured &&
|
|
347
|
+
layoutManager.getLayout(index).isWidthMeasured;
|
|
348
|
+
});
|
|
349
|
+
if (this.hasRenderedProgressively) {
|
|
350
|
+
this.isFirstLayoutComplete = true;
|
|
351
|
+
}
|
|
352
|
+
// If everything is measured then render stack will be in sync. The buffer items will get rendered in the next update
|
|
353
|
+
// triggered by the useOnLoad hook.
|
|
354
|
+
!this.hasRenderedProgressively &&
|
|
355
|
+
this.updateRenderStack(
|
|
356
|
+
// pick first n indices from visible ones and n is size of renderStack
|
|
357
|
+
visibleIndices.slice(0, Math.min(visibleIndices.length, this.renderStack.size + this.initialDrawBatchSize)));
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
RecyclerViewManager.prototype.getItemType = function (index) {
|
|
361
|
+
var _a, _b, _c;
|
|
362
|
+
return ((_c = (_b = (_a = this.props).getItemType) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.data[index], index)) !== null && _c !== void 0 ? _c : "default").toString();
|
|
363
|
+
};
|
|
364
|
+
RecyclerViewManager.prototype.getStableId = function (index) {
|
|
365
|
+
var _a, _b, _c;
|
|
366
|
+
return ((_c = (_b = (_a = this.props).keyExtractor) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.data[index], index)) !== null && _c !== void 0 ? _c : index.toString());
|
|
367
|
+
};
|
|
368
|
+
return RecyclerViewManager;
|
|
369
|
+
}());
|
|
370
|
+
exports.RecyclerViewManager = RecyclerViewManager;
|
|
371
|
+
//# sourceMappingURL=RecyclerViewManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecyclerViewManager.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ScrollViewProps } from "react-native";
|
|
2
|
+
import { FlashListProps } from "../FlashListProps";
|
|
3
|
+
export interface RecyclerViewProps<TItem> extends Omit<FlashListProps<TItem>, "contentContainerStyle"> {
|
|
4
|
+
/**
|
|
5
|
+
* Style for the RecyclerView's parent container.
|
|
6
|
+
*/
|
|
7
|
+
contentContainerStyle?: ScrollViewProps["contentContainerStyle"];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=RecyclerViewProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"RecyclerViewProps.js","sourceRoot":"","sources":["../../src/recyclerview/RecyclerViewProps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViewHolder is a core component in FlashList that manages individual item rendering and layout.
|
|
3
|
+
* It handles the rendering of list items, separators, and manages layout updates for each item.
|
|
4
|
+
* The component is memoized to prevent unnecessary re-renders and includes layout comparison logic.
|
|
5
|
+
*/
|
|
6
|
+
import React, { RefObject } from "react";
|
|
7
|
+
import { FlashListProps, RenderTarget } from "../FlashListProps";
|
|
8
|
+
import { RVDimension, RVLayout } from "./layout-managers/LayoutManager";
|
|
9
|
+
import { CompatView } from "./components/CompatView";
|
|
10
|
+
/**
|
|
11
|
+
* Props interface for the ViewHolder component
|
|
12
|
+
* @template TItem - The type of item being rendered in the list
|
|
13
|
+
*/
|
|
14
|
+
export interface ViewHolderProps<TItem> {
|
|
15
|
+
/** Index of the item in the data array */
|
|
16
|
+
index: number;
|
|
17
|
+
/** Layout information for positioning and sizing the item */
|
|
18
|
+
layout: RVLayout;
|
|
19
|
+
/** Map to store refs for each ViewHolder instance, keyed by index */
|
|
20
|
+
refHolder: Map<number, RefObject<CompatView | null>>;
|
|
21
|
+
/** Additional data passed to renderItem that can trigger re-renders */
|
|
22
|
+
extraData: any;
|
|
23
|
+
/** Specifies the rendering target (e.g., "Cell", "StickyHeader") */
|
|
24
|
+
target: RenderTarget;
|
|
25
|
+
/** The actual item data to be rendered */
|
|
26
|
+
item: TItem;
|
|
27
|
+
/** The next item in the list, used for rendering separators */
|
|
28
|
+
trailingItem: TItem | undefined;
|
|
29
|
+
/** Function to render the item content */
|
|
30
|
+
renderItem: FlashListProps<TItem>["renderItem"];
|
|
31
|
+
/** Optional custom component to wrap each item */
|
|
32
|
+
CellRendererComponent?: FlashListProps<TItem>["CellRendererComponent"];
|
|
33
|
+
/** Optional component to render between items */
|
|
34
|
+
ItemSeparatorComponent?: FlashListProps<TItem>["ItemSeparatorComponent"];
|
|
35
|
+
/** Whether the list is horizontal or vertical */
|
|
36
|
+
horizontal?: FlashListProps<TItem>["horizontal"];
|
|
37
|
+
/** Callback when the item's size changes */
|
|
38
|
+
onSizeChanged?: (index: number, size: RVDimension) => void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Memoized ViewHolder component that prevents unnecessary re-renders by comparing props
|
|
42
|
+
* @template TItem - The type of item being rendered in the list
|
|
43
|
+
*/
|
|
44
|
+
export declare const ViewHolder: React.MemoExoticComponent<(<TItem>(props: ViewHolderProps<TItem>) => React.JSX.Element)>;
|
|
45
|
+
//# sourceMappingURL=ViewHolder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewHolder.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EACZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,EAAE,QAAQ,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACrD,uEAAuE;IACvE,SAAS,EAAE,GAAG,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,YAAY,CAAC;IACrB,0CAA0C;IAC1C,IAAI,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,0CAA0C;IAC1C,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,kDAAkD;IAClD,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACvE,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACzE,iDAAiD;IACjD,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,4CAA4C;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5D;AAmFD;;;GAGG;AACH,eAAO,MAAM,UAAU,8BAjFK,KAAK,SAAU,eAAe,CAAC,KAAK,CAAC,wBAoGhE,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ViewHolder is a core component in FlashList that manages individual item rendering and layout.
|
|
4
|
+
* It handles the rendering of list items, separators, and manages layout updates for each item.
|
|
5
|
+
* The component is memoized to prevent unnecessary re-renders and includes layout comparison logic.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ViewHolder = void 0;
|
|
9
|
+
var tslib_1 = require("tslib");
|
|
10
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
11
|
+
var CompatView_1 = require("./components/CompatView");
|
|
12
|
+
/**
|
|
13
|
+
* Internal ViewHolder component that handles the actual rendering of list items
|
|
14
|
+
* @template TItem - The type of item being rendered in the list
|
|
15
|
+
*/
|
|
16
|
+
var ViewHolderInternal = function (props) {
|
|
17
|
+
// create ref for View
|
|
18
|
+
var viewRef = (0, react_1.useRef)(null);
|
|
19
|
+
var index = props.index, refHolder = props.refHolder, layout = props.layout, onSizeChanged = props.onSizeChanged, renderItem = props.renderItem, extraData = props.extraData, item = props.item, target = props.target, CellRendererComponent = props.CellRendererComponent, ItemSeparatorComponent = props.ItemSeparatorComponent, trailingItem = props.trailingItem, horizontal = props.horizontal;
|
|
20
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
21
|
+
refHolder.set(index, viewRef);
|
|
22
|
+
return function () {
|
|
23
|
+
if (refHolder.get(index) === viewRef) {
|
|
24
|
+
refHolder.delete(index);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}, [index, refHolder]);
|
|
28
|
+
var onLayout = (0, react_1.useCallback)(function (event) {
|
|
29
|
+
onSizeChanged === null || onSizeChanged === void 0 ? void 0 : onSizeChanged(index, event.nativeEvent.layout);
|
|
30
|
+
}, [index, onSizeChanged]);
|
|
31
|
+
var separator = (0, react_1.useMemo)(function () {
|
|
32
|
+
return ItemSeparatorComponent ? (react_1.default.createElement(ItemSeparatorComponent, { leadingItem: item, trailingItem: trailingItem })) : null;
|
|
33
|
+
}, [ItemSeparatorComponent, item, trailingItem]);
|
|
34
|
+
// console.log("ViewHolder re-render", index);
|
|
35
|
+
var children = (0, react_1.useMemo)(function () {
|
|
36
|
+
var _a;
|
|
37
|
+
return (_a = renderItem === null || renderItem === void 0 ? void 0 : renderItem({ item: item, index: index, extraData: extraData, target: target })) !== null && _a !== void 0 ? _a : null;
|
|
38
|
+
}, [item, index, extraData, target, renderItem]);
|
|
39
|
+
var style = {
|
|
40
|
+
flexDirection: horizontal ? "row" : "column",
|
|
41
|
+
position: target === "StickyHeader" ? "relative" : "absolute",
|
|
42
|
+
width: layout.enforcedWidth ? layout.width : undefined,
|
|
43
|
+
height: layout.enforcedHeight ? layout.height : undefined,
|
|
44
|
+
minHeight: layout.minHeight,
|
|
45
|
+
minWidth: layout.minWidth,
|
|
46
|
+
maxHeight: layout.maxHeight,
|
|
47
|
+
maxWidth: layout.maxWidth,
|
|
48
|
+
left: layout.x,
|
|
49
|
+
top: layout.y,
|
|
50
|
+
zIndex: 0,
|
|
51
|
+
};
|
|
52
|
+
// TODO: Fix this type issue
|
|
53
|
+
var CompatContainer = (CellRendererComponent !== null && CellRendererComponent !== void 0 ? CellRendererComponent : CompatView_1.CompatView);
|
|
54
|
+
return (react_1.default.createElement(CompatContainer, { ref: viewRef, onLayout: onLayout, style: style, index: index },
|
|
55
|
+
children,
|
|
56
|
+
separator));
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Memoized ViewHolder component that prevents unnecessary re-renders by comparing props
|
|
60
|
+
* @template TItem - The type of item being rendered in the list
|
|
61
|
+
*/
|
|
62
|
+
exports.ViewHolder = react_1.default.memo(ViewHolderInternal, function (prevProps, nextProps) {
|
|
63
|
+
// compare all props and spread layout
|
|
64
|
+
return (prevProps.index === nextProps.index &&
|
|
65
|
+
areLayoutsEqual(prevProps.layout, nextProps.layout) &&
|
|
66
|
+
prevProps.refHolder === nextProps.refHolder &&
|
|
67
|
+
prevProps.onSizeChanged === nextProps.onSizeChanged &&
|
|
68
|
+
prevProps.extraData === nextProps.extraData &&
|
|
69
|
+
prevProps.target === nextProps.target &&
|
|
70
|
+
prevProps.item === nextProps.item &&
|
|
71
|
+
prevProps.renderItem === nextProps.renderItem &&
|
|
72
|
+
prevProps.CellRendererComponent === nextProps.CellRendererComponent &&
|
|
73
|
+
prevProps.ItemSeparatorComponent === nextProps.ItemSeparatorComponent &&
|
|
74
|
+
prevProps.trailingItem === nextProps.trailingItem &&
|
|
75
|
+
prevProps.horizontal === nextProps.horizontal);
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* Compares two RVLayout objects to determine if they are equal
|
|
79
|
+
* Used in the memo comparison function to prevent unnecessary re-renders
|
|
80
|
+
* @param prevLayout - Previous layout object
|
|
81
|
+
* @param nextLayout - Next layout object
|
|
82
|
+
* @returns boolean indicating if layouts are equal
|
|
83
|
+
*/
|
|
84
|
+
function areLayoutsEqual(prevLayout, nextLayout) {
|
|
85
|
+
return (prevLayout.x === nextLayout.x &&
|
|
86
|
+
prevLayout.y === nextLayout.y &&
|
|
87
|
+
prevLayout.width === nextLayout.width &&
|
|
88
|
+
prevLayout.height === nextLayout.height &&
|
|
89
|
+
prevLayout.enforcedWidth === nextLayout.enforcedWidth &&
|
|
90
|
+
prevLayout.enforcedHeight === nextLayout.enforcedHeight &&
|
|
91
|
+
prevLayout.minWidth === nextLayout.minWidth &&
|
|
92
|
+
prevLayout.minHeight === nextLayout.minHeight &&
|
|
93
|
+
prevLayout.maxWidth === nextLayout.maxWidth &&
|
|
94
|
+
prevLayout.maxHeight === nextLayout.maxHeight);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=ViewHolder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewHolder.js","sourceRoot":"","sources":["../../src/recyclerview/ViewHolder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViewHolderCollection is a container component that manages multiple ViewHolder instances.
|
|
3
|
+
* It handles the rendering of a collection of list items, manages layout updates,
|
|
4
|
+
* and coordinates with the RecyclerView context for layout changes.
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { FlashListProps } from "../FlashListProps";
|
|
8
|
+
import { ViewHolderProps } from "./ViewHolder";
|
|
9
|
+
import { RVDimension, RVLayout } from "./layout-managers/LayoutManager";
|
|
10
|
+
/**
|
|
11
|
+
* Props interface for the ViewHolderCollection component
|
|
12
|
+
* @template TItem - The type of items in the data array
|
|
13
|
+
*/
|
|
14
|
+
export interface ViewHolderCollectionProps<TItem> {
|
|
15
|
+
/** The data array to be rendered */
|
|
16
|
+
data: FlashListProps<TItem>["data"];
|
|
17
|
+
/** Map of indices to React keys for each rendered item */
|
|
18
|
+
renderStack: Map<number, string>;
|
|
19
|
+
/** Function to get layout information for a specific index */
|
|
20
|
+
getLayout: (index: number) => RVLayout;
|
|
21
|
+
/** Ref to control layout updates from parent components */
|
|
22
|
+
viewHolderCollectionRef: React.Ref<ViewHolderCollectionRef>;
|
|
23
|
+
/** Map to store refs for each ViewHolder instance */
|
|
24
|
+
refHolder: ViewHolderProps<TItem>["refHolder"];
|
|
25
|
+
/** Callback when any item's size changes */
|
|
26
|
+
onSizeChanged: ViewHolderProps<TItem>["onSizeChanged"];
|
|
27
|
+
/** Function to render each item */
|
|
28
|
+
renderItem: FlashListProps<TItem>["renderItem"];
|
|
29
|
+
/** Additional data passed to renderItem that can trigger re-renders */
|
|
30
|
+
extraData: any;
|
|
31
|
+
/** Function to get the container's layout dimensions */
|
|
32
|
+
getChildContainerLayout: () => RVDimension | undefined;
|
|
33
|
+
/** Callback after layout effects are committed */
|
|
34
|
+
onCommitLayoutEffect?: () => void;
|
|
35
|
+
/** Callback after effects are committed */
|
|
36
|
+
onCommitEffect?: () => void;
|
|
37
|
+
/** Optional custom component to wrap each item */
|
|
38
|
+
CellRendererComponent?: FlashListProps<TItem>["CellRendererComponent"];
|
|
39
|
+
/** Optional component to render between items */
|
|
40
|
+
ItemSeparatorComponent?: FlashListProps<TItem>["ItemSeparatorComponent"];
|
|
41
|
+
/** Whether the list is horizontal or vertical */
|
|
42
|
+
horizontal: FlashListProps<TItem>["horizontal"];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Ref interface for ViewHolderCollection that exposes methods to control layout updates
|
|
46
|
+
*/
|
|
47
|
+
export interface ViewHolderCollectionRef {
|
|
48
|
+
/** Forces a layout update by triggering a re-render */
|
|
49
|
+
commitLayout: () => void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* ViewHolderCollection component that manages the rendering of multiple ViewHolder instances
|
|
53
|
+
* and handles layout updates for the entire collection
|
|
54
|
+
* @template TItem - The type of items in the data array
|
|
55
|
+
*/
|
|
56
|
+
export declare const ViewHolderCollection: <TItem>(props: ViewHolderCollectionProps<TItem>) => React.JSX.Element;
|
|
57
|
+
//# sourceMappingURL=ViewHolderCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewHolderCollection.d.ts","sourceRoot":"","sources":["../../src/recyclerview/ViewHolderCollection.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA0D,MAAM,OAAO,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAIxE;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,0DAA0D;IAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,8DAA8D;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACvC,2DAA2D;IAC3D,uBAAuB,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC5D,qDAAqD;IACrD,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IAC/C,4CAA4C;IAC5C,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;IACvD,mCAAmC;IACnC,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAChD,uEAAuE;IACvE,SAAS,EAAE,GAAG,CAAC;IACf,wDAAwD;IACxD,uBAAuB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACvD,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,kDAAkD;IAClD,qBAAqB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACvE,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACzE,iDAAiD;IACjD,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,EACxC,OAAO,yBAAyB,CAAC,KAAK,CAAC,sBAoGxC,CAAC"}
|