@legendapp/list 2.0.0-next.7 → 2.0.0-next.9
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/index.d.mts +1 -1
- package/index.d.ts +1 -1
- package/index.js +21 -14
- package/index.mjs +21 -14
- package/package.json +1 -1
- package/.DS_Store +0 -0
package/index.d.mts
CHANGED
|
@@ -324,6 +324,7 @@ interface InternalState {
|
|
|
324
324
|
};
|
|
325
325
|
}[];
|
|
326
326
|
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
|
+
timeoutSetPaddingTop?: any;
|
|
327
328
|
props: {
|
|
328
329
|
alignItemsAtEnd: boolean;
|
|
329
330
|
data: readonly any[];
|
|
@@ -362,7 +363,6 @@ interface InternalState {
|
|
|
362
363
|
viewPosition?: number;
|
|
363
364
|
} | undefined;
|
|
364
365
|
scrollBuffer: number;
|
|
365
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
366
366
|
numColumns: number;
|
|
367
367
|
initialContainerPoolRatio: number;
|
|
368
368
|
stylePaddingTop: number | undefined;
|
package/index.d.ts
CHANGED
|
@@ -324,6 +324,7 @@ interface InternalState {
|
|
|
324
324
|
};
|
|
325
325
|
}[];
|
|
326
326
|
queuedItemSizeUpdatesWaiting?: boolean;
|
|
327
|
+
timeoutSetPaddingTop?: any;
|
|
327
328
|
props: {
|
|
328
329
|
alignItemsAtEnd: boolean;
|
|
329
330
|
data: readonly any[];
|
|
@@ -362,7 +363,6 @@ interface InternalState {
|
|
|
362
363
|
viewPosition?: number;
|
|
363
364
|
} | undefined;
|
|
364
365
|
scrollBuffer: number;
|
|
365
|
-
viewabilityConfigCallbackPairs: ViewabilityConfigCallbackPairs | undefined;
|
|
366
366
|
numColumns: number;
|
|
367
367
|
initialContainerPoolRatio: number;
|
|
368
368
|
stylePaddingTop: number | undefined;
|
package/index.js
CHANGED
|
@@ -38,7 +38,8 @@ function StateProvider({ children }) {
|
|
|
38
38
|
["alignItemsPaddingTop", 0],
|
|
39
39
|
["stylePaddingTop", 0],
|
|
40
40
|
["headerSize", 0],
|
|
41
|
-
["numContainers", 0]
|
|
41
|
+
["numContainers", 0],
|
|
42
|
+
["totalSize", 0]
|
|
42
43
|
]),
|
|
43
44
|
viewRefs: /* @__PURE__ */ new Map()
|
|
44
45
|
}));
|
|
@@ -111,7 +112,7 @@ function getContentSize(ctx) {
|
|
|
111
112
|
const stylePaddingTop = values.get("stylePaddingTop") || 0;
|
|
112
113
|
const headerSize = values.get("headerSize") || 0;
|
|
113
114
|
const footerSize = values.get("footerSize") || 0;
|
|
114
|
-
const totalSize = values.get("totalSize")
|
|
115
|
+
const totalSize = values.get("totalSize");
|
|
115
116
|
return headerSize + footerSize + totalSize + stylePaddingTop;
|
|
116
117
|
}
|
|
117
118
|
function useArr$(signalNames) {
|
|
@@ -869,14 +870,15 @@ function prepareMVCP(ctx, state) {
|
|
|
869
870
|
}
|
|
870
871
|
|
|
871
872
|
// src/utils/setPaddingTop.ts
|
|
872
|
-
function setPaddingTop(ctx, { stylePaddingTop, alignItemsPaddingTop }) {
|
|
873
|
+
function setPaddingTop(ctx, state, { stylePaddingTop, alignItemsPaddingTop }) {
|
|
873
874
|
if (stylePaddingTop !== void 0) {
|
|
874
875
|
const prevStylePaddingTop = peek$(ctx, "stylePaddingTop") || 0;
|
|
875
876
|
if (stylePaddingTop < prevStylePaddingTop) {
|
|
876
|
-
|
|
877
|
+
let prevTotalSize = peek$(ctx, "totalSize");
|
|
877
878
|
set$(ctx, "totalSize", prevTotalSize + prevStylePaddingTop);
|
|
878
|
-
setTimeout(() => {
|
|
879
|
-
|
|
879
|
+
state.timeoutSetPaddingTop = setTimeout(() => {
|
|
880
|
+
prevTotalSize = peek$(ctx, "totalSize");
|
|
881
|
+
set$(ctx, "totalSize", prevTotalSize - prevStylePaddingTop);
|
|
880
882
|
}, 16);
|
|
881
883
|
}
|
|
882
884
|
set$(ctx, "stylePaddingTop", stylePaddingTop);
|
|
@@ -898,7 +900,7 @@ function updateAlignItemsPaddingTop(ctx, state) {
|
|
|
898
900
|
const contentSize = getContentSize(ctx);
|
|
899
901
|
alignItemsPaddingTop = Math.max(0, Math.floor(scrollLength - contentSize));
|
|
900
902
|
}
|
|
901
|
-
setPaddingTop(ctx, { alignItemsPaddingTop });
|
|
903
|
+
setPaddingTop(ctx, state, { alignItemsPaddingTop });
|
|
902
904
|
}
|
|
903
905
|
}
|
|
904
906
|
|
|
@@ -928,6 +930,10 @@ function addTotalSize(ctx, state, key, add) {
|
|
|
928
930
|
const { alignItemsAtEnd } = state.props;
|
|
929
931
|
{
|
|
930
932
|
state.totalSize = add;
|
|
933
|
+
if (state.timeoutSetPaddingTop) {
|
|
934
|
+
clearTimeout(state.timeoutSetPaddingTop);
|
|
935
|
+
state.timeoutSetPaddingTop = void 0;
|
|
936
|
+
}
|
|
931
937
|
}
|
|
932
938
|
set$(ctx, "totalSize", state.totalSize);
|
|
933
939
|
if (alignItemsAtEnd) {
|
|
@@ -1736,11 +1742,11 @@ function calculateItemsInView(ctx, state, params = {}) {
|
|
|
1736
1742
|
setDidLayout(ctx, state);
|
|
1737
1743
|
}
|
|
1738
1744
|
}
|
|
1739
|
-
if (state.
|
|
1745
|
+
if (state.viewabilityConfigCallbackPairs) {
|
|
1740
1746
|
updateViewableItems(
|
|
1741
1747
|
state,
|
|
1742
1748
|
ctx,
|
|
1743
|
-
state.
|
|
1749
|
+
state.viewabilityConfigCallbackPairs,
|
|
1744
1750
|
scrollLength,
|
|
1745
1751
|
startNoBuffer,
|
|
1746
1752
|
endNoBuffer
|
|
@@ -2266,8 +2272,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2266
2272
|
snapToIndices,
|
|
2267
2273
|
stylePaddingBottom: stylePaddingBottomState,
|
|
2268
2274
|
stylePaddingTop: stylePaddingTopState,
|
|
2269
|
-
suggestEstimatedItemSize: !!suggestEstimatedItemSize
|
|
2270
|
-
viewabilityConfigCallbackPairs: void 0
|
|
2275
|
+
suggestEstimatedItemSize: !!suggestEstimatedItemSize
|
|
2271
2276
|
};
|
|
2272
2277
|
state.refScroller = refScroller;
|
|
2273
2278
|
const checkResetContainers = (isFirst2) => {
|
|
@@ -2299,10 +2304,13 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2299
2304
|
set$(ctx, "lastItemKeys", memoizedLastItemKeys);
|
|
2300
2305
|
set$(ctx, "numColumns", numColumnsProp);
|
|
2301
2306
|
const prevPaddingTop = peek$(ctx, "stylePaddingTop");
|
|
2302
|
-
setPaddingTop(ctx, { stylePaddingTop: stylePaddingTopState });
|
|
2307
|
+
setPaddingTop(ctx, state, { stylePaddingTop: stylePaddingTopState });
|
|
2303
2308
|
refState.current.props.stylePaddingBottom = stylePaddingBottomState;
|
|
2304
|
-
|
|
2309
|
+
let paddingDiff = stylePaddingTopState - prevPaddingTop;
|
|
2305
2310
|
if (maintainVisibleContentPosition && paddingDiff && prevPaddingTop !== void 0 && reactNative.Platform.OS === "ios") {
|
|
2311
|
+
if (state.scroll < 0) {
|
|
2312
|
+
paddingDiff += state.scroll;
|
|
2313
|
+
}
|
|
2306
2314
|
requestAdjust(ctx, state, paddingDiff);
|
|
2307
2315
|
}
|
|
2308
2316
|
};
|
|
@@ -2394,7 +2402,6 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2394
2402
|
viewabilityConfigCallbackPairs
|
|
2395
2403
|
});
|
|
2396
2404
|
state.viewabilityConfigCallbackPairs = viewability;
|
|
2397
|
-
state.props.viewabilityConfigCallbackPairs = viewability;
|
|
2398
2405
|
state.enableScrollForNextCalculateItemsInView = !viewability;
|
|
2399
2406
|
}, [viewabilityConfig, viewabilityConfigCallbackPairs, onViewableItemsChanged]);
|
|
2400
2407
|
if (!IsNewArchitecture) {
|
package/index.mjs
CHANGED
|
@@ -17,7 +17,8 @@ function StateProvider({ children }) {
|
|
|
17
17
|
["alignItemsPaddingTop", 0],
|
|
18
18
|
["stylePaddingTop", 0],
|
|
19
19
|
["headerSize", 0],
|
|
20
|
-
["numContainers", 0]
|
|
20
|
+
["numContainers", 0],
|
|
21
|
+
["totalSize", 0]
|
|
21
22
|
]),
|
|
22
23
|
viewRefs: /* @__PURE__ */ new Map()
|
|
23
24
|
}));
|
|
@@ -90,7 +91,7 @@ function getContentSize(ctx) {
|
|
|
90
91
|
const stylePaddingTop = values.get("stylePaddingTop") || 0;
|
|
91
92
|
const headerSize = values.get("headerSize") || 0;
|
|
92
93
|
const footerSize = values.get("footerSize") || 0;
|
|
93
|
-
const totalSize = values.get("totalSize")
|
|
94
|
+
const totalSize = values.get("totalSize");
|
|
94
95
|
return headerSize + footerSize + totalSize + stylePaddingTop;
|
|
95
96
|
}
|
|
96
97
|
function useArr$(signalNames) {
|
|
@@ -848,14 +849,15 @@ function prepareMVCP(ctx, state) {
|
|
|
848
849
|
}
|
|
849
850
|
|
|
850
851
|
// src/utils/setPaddingTop.ts
|
|
851
|
-
function setPaddingTop(ctx, { stylePaddingTop, alignItemsPaddingTop }) {
|
|
852
|
+
function setPaddingTop(ctx, state, { stylePaddingTop, alignItemsPaddingTop }) {
|
|
852
853
|
if (stylePaddingTop !== void 0) {
|
|
853
854
|
const prevStylePaddingTop = peek$(ctx, "stylePaddingTop") || 0;
|
|
854
855
|
if (stylePaddingTop < prevStylePaddingTop) {
|
|
855
|
-
|
|
856
|
+
let prevTotalSize = peek$(ctx, "totalSize");
|
|
856
857
|
set$(ctx, "totalSize", prevTotalSize + prevStylePaddingTop);
|
|
857
|
-
setTimeout(() => {
|
|
858
|
-
|
|
858
|
+
state.timeoutSetPaddingTop = setTimeout(() => {
|
|
859
|
+
prevTotalSize = peek$(ctx, "totalSize");
|
|
860
|
+
set$(ctx, "totalSize", prevTotalSize - prevStylePaddingTop);
|
|
859
861
|
}, 16);
|
|
860
862
|
}
|
|
861
863
|
set$(ctx, "stylePaddingTop", stylePaddingTop);
|
|
@@ -877,7 +879,7 @@ function updateAlignItemsPaddingTop(ctx, state) {
|
|
|
877
879
|
const contentSize = getContentSize(ctx);
|
|
878
880
|
alignItemsPaddingTop = Math.max(0, Math.floor(scrollLength - contentSize));
|
|
879
881
|
}
|
|
880
|
-
setPaddingTop(ctx, { alignItemsPaddingTop });
|
|
882
|
+
setPaddingTop(ctx, state, { alignItemsPaddingTop });
|
|
881
883
|
}
|
|
882
884
|
}
|
|
883
885
|
|
|
@@ -907,6 +909,10 @@ function addTotalSize(ctx, state, key, add) {
|
|
|
907
909
|
const { alignItemsAtEnd } = state.props;
|
|
908
910
|
{
|
|
909
911
|
state.totalSize = add;
|
|
912
|
+
if (state.timeoutSetPaddingTop) {
|
|
913
|
+
clearTimeout(state.timeoutSetPaddingTop);
|
|
914
|
+
state.timeoutSetPaddingTop = void 0;
|
|
915
|
+
}
|
|
910
916
|
}
|
|
911
917
|
set$(ctx, "totalSize", state.totalSize);
|
|
912
918
|
if (alignItemsAtEnd) {
|
|
@@ -1715,11 +1721,11 @@ function calculateItemsInView(ctx, state, params = {}) {
|
|
|
1715
1721
|
setDidLayout(ctx, state);
|
|
1716
1722
|
}
|
|
1717
1723
|
}
|
|
1718
|
-
if (state.
|
|
1724
|
+
if (state.viewabilityConfigCallbackPairs) {
|
|
1719
1725
|
updateViewableItems(
|
|
1720
1726
|
state,
|
|
1721
1727
|
ctx,
|
|
1722
|
-
state.
|
|
1728
|
+
state.viewabilityConfigCallbackPairs,
|
|
1723
1729
|
scrollLength,
|
|
1724
1730
|
startNoBuffer,
|
|
1725
1731
|
endNoBuffer
|
|
@@ -2245,8 +2251,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2245
2251
|
snapToIndices,
|
|
2246
2252
|
stylePaddingBottom: stylePaddingBottomState,
|
|
2247
2253
|
stylePaddingTop: stylePaddingTopState,
|
|
2248
|
-
suggestEstimatedItemSize: !!suggestEstimatedItemSize
|
|
2249
|
-
viewabilityConfigCallbackPairs: void 0
|
|
2254
|
+
suggestEstimatedItemSize: !!suggestEstimatedItemSize
|
|
2250
2255
|
};
|
|
2251
2256
|
state.refScroller = refScroller;
|
|
2252
2257
|
const checkResetContainers = (isFirst2) => {
|
|
@@ -2278,10 +2283,13 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2278
2283
|
set$(ctx, "lastItemKeys", memoizedLastItemKeys);
|
|
2279
2284
|
set$(ctx, "numColumns", numColumnsProp);
|
|
2280
2285
|
const prevPaddingTop = peek$(ctx, "stylePaddingTop");
|
|
2281
|
-
setPaddingTop(ctx, { stylePaddingTop: stylePaddingTopState });
|
|
2286
|
+
setPaddingTop(ctx, state, { stylePaddingTop: stylePaddingTopState });
|
|
2282
2287
|
refState.current.props.stylePaddingBottom = stylePaddingBottomState;
|
|
2283
|
-
|
|
2288
|
+
let paddingDiff = stylePaddingTopState - prevPaddingTop;
|
|
2284
2289
|
if (maintainVisibleContentPosition && paddingDiff && prevPaddingTop !== void 0 && Platform.OS === "ios") {
|
|
2290
|
+
if (state.scroll < 0) {
|
|
2291
|
+
paddingDiff += state.scroll;
|
|
2292
|
+
}
|
|
2285
2293
|
requestAdjust(ctx, state, paddingDiff);
|
|
2286
2294
|
}
|
|
2287
2295
|
};
|
|
@@ -2373,7 +2381,6 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2373
2381
|
viewabilityConfigCallbackPairs
|
|
2374
2382
|
});
|
|
2375
2383
|
state.viewabilityConfigCallbackPairs = viewability;
|
|
2376
|
-
state.props.viewabilityConfigCallbackPairs = viewability;
|
|
2377
2384
|
state.enableScrollForNextCalculateItemsInView = !viewability;
|
|
2378
2385
|
}, [viewabilityConfig, viewabilityConfigCallbackPairs, onViewableItemsChanged]);
|
|
2379
2386
|
if (!IsNewArchitecture) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@legendapp/list",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.9",
|
|
4
4
|
"description": "Legend List is a drop-in replacement for FlatList with much better performance and supporting dynamically sized items.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"private": false,
|
package/.DS_Store
DELETED
|
Binary file
|