@legendapp/list 2.0.0-next.5 → 2.0.0-next.6
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.js +20 -17
- package/index.mjs +21 -18
- package/package.json +1 -1
- package/.DS_Store +0 -0
package/index.js
CHANGED
|
@@ -332,16 +332,18 @@ function useListScrollSize() {
|
|
|
332
332
|
const [scrollSize] = useArr$(["scrollSize"]);
|
|
333
333
|
return scrollSize;
|
|
334
334
|
}
|
|
335
|
+
var typedForwardRef = React3.forwardRef;
|
|
336
|
+
var typedMemo = React3.memo;
|
|
335
337
|
|
|
336
338
|
// src/components/Container.tsx
|
|
337
|
-
var Container = ({
|
|
339
|
+
var Container = typedMemo(function Container2({
|
|
338
340
|
id,
|
|
339
341
|
recycleItems,
|
|
340
342
|
horizontal,
|
|
341
343
|
getRenderedItem: getRenderedItem2,
|
|
342
344
|
updateItemSize: updateItemSize2,
|
|
343
345
|
ItemSeparatorComponent
|
|
344
|
-
})
|
|
346
|
+
}) {
|
|
345
347
|
const ctx = useStateContext();
|
|
346
348
|
const columnWrapperStyle = ctx.columnWrapperStyle;
|
|
347
349
|
const [column = 0, data, itemKey, position = POSITION_OUT_OF_VIEW, numColumns, extraData] = useArr$([
|
|
@@ -393,12 +395,17 @@ var Container = ({
|
|
|
393
395
|
[itemKey, data, extraData]
|
|
394
396
|
);
|
|
395
397
|
const { index, renderedItem } = renderedItemInfo || {};
|
|
396
|
-
const triggerLayout = React3.useCallback(() => {
|
|
397
|
-
forceLayoutRender((v) => v + 1);
|
|
398
|
-
}, []);
|
|
399
398
|
const contextValue = React3.useMemo(() => {
|
|
400
399
|
ctx.viewRefs.set(id, ref);
|
|
401
|
-
return {
|
|
400
|
+
return {
|
|
401
|
+
containerId: id,
|
|
402
|
+
index,
|
|
403
|
+
itemKey,
|
|
404
|
+
triggerLayout: () => {
|
|
405
|
+
forceLayoutRender((v) => v + 1);
|
|
406
|
+
},
|
|
407
|
+
value: data
|
|
408
|
+
};
|
|
402
409
|
}, [id, itemKey, index, data]);
|
|
403
410
|
const onLayout = (event) => {
|
|
404
411
|
var _a, _b;
|
|
@@ -455,7 +462,7 @@ var Container = ({
|
|
|
455
462
|
leadingItem: renderedItemInfo.item
|
|
456
463
|
}
|
|
457
464
|
)));
|
|
458
|
-
};
|
|
465
|
+
});
|
|
459
466
|
var useAnimatedValue = (initialValue) => {
|
|
460
467
|
return React3.useRef(new reactNative.Animated.Value(initialValue)).current;
|
|
461
468
|
};
|
|
@@ -496,8 +503,6 @@ function useValue$(key, params) {
|
|
|
496
503
|
}, []);
|
|
497
504
|
return animValue;
|
|
498
505
|
}
|
|
499
|
-
var typedForwardRef = React3.forwardRef;
|
|
500
|
-
var typedMemo = React3.memo;
|
|
501
506
|
|
|
502
507
|
// src/components/Containers.tsx
|
|
503
508
|
var Containers = typedMemo(function Containers2({
|
|
@@ -1706,13 +1711,12 @@ function calculateItemsInView(ctx, state, params = {}) {
|
|
|
1706
1711
|
if (position === void 0) {
|
|
1707
1712
|
set$(ctx, `containerPosition${i}`, POSITION_OUT_OF_VIEW);
|
|
1708
1713
|
} else {
|
|
1709
|
-
const pos = positions.get(id);
|
|
1710
1714
|
const column = columns.get(id) || 1;
|
|
1711
1715
|
const prevPos = peek$(ctx, `containerPosition${i}`);
|
|
1712
1716
|
const prevColumn = peek$(ctx, `containerColumn${i}`);
|
|
1713
1717
|
const prevData = peek$(ctx, `containerItemData${i}`);
|
|
1714
|
-
if (
|
|
1715
|
-
set$(ctx, `containerPosition${i}`,
|
|
1718
|
+
if (position > POSITION_OUT_OF_VIEW && position !== prevPos) {
|
|
1719
|
+
set$(ctx, `containerPosition${i}`, position);
|
|
1716
1720
|
}
|
|
1717
1721
|
if (column >= 0 && column !== prevColumn) {
|
|
1718
1722
|
set$(ctx, `containerColumn${i}`, column);
|
|
@@ -2298,20 +2302,19 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2298
2302
|
(_, i) => getId(state, dataProp.length - 1 - i)
|
|
2299
2303
|
);
|
|
2300
2304
|
}, [dataProp, numColumnsProp]);
|
|
2301
|
-
const
|
|
2305
|
+
const initializeStateVars = () => {
|
|
2302
2306
|
set$(ctx, "lastItemKeys", memoizedLastItemKeys);
|
|
2303
2307
|
set$(ctx, "numColumns", numColumnsProp);
|
|
2304
2308
|
const prevPaddingTop = peek$(ctx, "stylePaddingTop");
|
|
2305
2309
|
setPaddingTop(ctx, { stylePaddingTop: stylePaddingTopState });
|
|
2306
2310
|
refState.current.props.stylePaddingBottom = stylePaddingBottomState;
|
|
2307
2311
|
const paddingDiff = stylePaddingTopState - prevPaddingTop;
|
|
2308
|
-
if (paddingDiff && prevPaddingTop !== void 0 && reactNative.Platform.OS === "ios") {
|
|
2309
|
-
calculateItemsInView(ctx, state, { doMVCP: true });
|
|
2312
|
+
if (maintainVisibleContentPosition && paddingDiff && prevPaddingTop !== void 0 && reactNative.Platform.OS === "ios") {
|
|
2310
2313
|
requestAdjust(ctx, state, paddingDiff);
|
|
2311
2314
|
}
|
|
2312
2315
|
};
|
|
2313
2316
|
if (isFirst) {
|
|
2314
|
-
|
|
2317
|
+
initializeStateVars();
|
|
2315
2318
|
updateAllPositions(ctx, state);
|
|
2316
2319
|
}
|
|
2317
2320
|
const initialContentOffset = React3.useMemo(() => {
|
|
@@ -2382,7 +2385,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2382
2385
|
React3.useLayoutEffect(() => {
|
|
2383
2386
|
set$(ctx, "extraData", extraData);
|
|
2384
2387
|
}, [extraData]);
|
|
2385
|
-
React3.useLayoutEffect(
|
|
2388
|
+
React3.useLayoutEffect(initializeStateVars, [
|
|
2386
2389
|
memoizedLastItemKeys.join(","),
|
|
2387
2390
|
numColumnsProp,
|
|
2388
2391
|
stylePaddingTopState,
|
package/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React3 from 'react';
|
|
2
|
-
import React3__default, { useReducer, useEffect, createContext,
|
|
2
|
+
import React3__default, { useReducer, useEffect, createContext, useRef, useState, useMemo, useLayoutEffect, useCallback, useImperativeHandle, useContext, forwardRef, memo } from 'react';
|
|
3
3
|
import { View, Text, Platform, Animated, ScrollView, StyleSheet, Dimensions, RefreshControl } from 'react-native';
|
|
4
4
|
import { useSyncExternalStore } from 'use-sync-external-store/shim';
|
|
5
5
|
|
|
@@ -311,16 +311,18 @@ function useListScrollSize() {
|
|
|
311
311
|
const [scrollSize] = useArr$(["scrollSize"]);
|
|
312
312
|
return scrollSize;
|
|
313
313
|
}
|
|
314
|
+
var typedForwardRef = forwardRef;
|
|
315
|
+
var typedMemo = memo;
|
|
314
316
|
|
|
315
317
|
// src/components/Container.tsx
|
|
316
|
-
var Container = ({
|
|
318
|
+
var Container = typedMemo(function Container2({
|
|
317
319
|
id,
|
|
318
320
|
recycleItems,
|
|
319
321
|
horizontal,
|
|
320
322
|
getRenderedItem: getRenderedItem2,
|
|
321
323
|
updateItemSize: updateItemSize2,
|
|
322
324
|
ItemSeparatorComponent
|
|
323
|
-
})
|
|
325
|
+
}) {
|
|
324
326
|
const ctx = useStateContext();
|
|
325
327
|
const columnWrapperStyle = ctx.columnWrapperStyle;
|
|
326
328
|
const [column = 0, data, itemKey, position = POSITION_OUT_OF_VIEW, numColumns, extraData] = useArr$([
|
|
@@ -372,12 +374,17 @@ var Container = ({
|
|
|
372
374
|
[itemKey, data, extraData]
|
|
373
375
|
);
|
|
374
376
|
const { index, renderedItem } = renderedItemInfo || {};
|
|
375
|
-
const triggerLayout = useCallback(() => {
|
|
376
|
-
forceLayoutRender((v) => v + 1);
|
|
377
|
-
}, []);
|
|
378
377
|
const contextValue = useMemo(() => {
|
|
379
378
|
ctx.viewRefs.set(id, ref);
|
|
380
|
-
return {
|
|
379
|
+
return {
|
|
380
|
+
containerId: id,
|
|
381
|
+
index,
|
|
382
|
+
itemKey,
|
|
383
|
+
triggerLayout: () => {
|
|
384
|
+
forceLayoutRender((v) => v + 1);
|
|
385
|
+
},
|
|
386
|
+
value: data
|
|
387
|
+
};
|
|
381
388
|
}, [id, itemKey, index, data]);
|
|
382
389
|
const onLayout = (event) => {
|
|
383
390
|
var _a, _b;
|
|
@@ -434,7 +441,7 @@ var Container = ({
|
|
|
434
441
|
leadingItem: renderedItemInfo.item
|
|
435
442
|
}
|
|
436
443
|
)));
|
|
437
|
-
};
|
|
444
|
+
});
|
|
438
445
|
var useAnimatedValue = (initialValue) => {
|
|
439
446
|
return useRef(new Animated.Value(initialValue)).current;
|
|
440
447
|
};
|
|
@@ -475,8 +482,6 @@ function useValue$(key, params) {
|
|
|
475
482
|
}, []);
|
|
476
483
|
return animValue;
|
|
477
484
|
}
|
|
478
|
-
var typedForwardRef = forwardRef;
|
|
479
|
-
var typedMemo = memo;
|
|
480
485
|
|
|
481
486
|
// src/components/Containers.tsx
|
|
482
487
|
var Containers = typedMemo(function Containers2({
|
|
@@ -1685,13 +1690,12 @@ function calculateItemsInView(ctx, state, params = {}) {
|
|
|
1685
1690
|
if (position === void 0) {
|
|
1686
1691
|
set$(ctx, `containerPosition${i}`, POSITION_OUT_OF_VIEW);
|
|
1687
1692
|
} else {
|
|
1688
|
-
const pos = positions.get(id);
|
|
1689
1693
|
const column = columns.get(id) || 1;
|
|
1690
1694
|
const prevPos = peek$(ctx, `containerPosition${i}`);
|
|
1691
1695
|
const prevColumn = peek$(ctx, `containerColumn${i}`);
|
|
1692
1696
|
const prevData = peek$(ctx, `containerItemData${i}`);
|
|
1693
|
-
if (
|
|
1694
|
-
set$(ctx, `containerPosition${i}`,
|
|
1697
|
+
if (position > POSITION_OUT_OF_VIEW && position !== prevPos) {
|
|
1698
|
+
set$(ctx, `containerPosition${i}`, position);
|
|
1695
1699
|
}
|
|
1696
1700
|
if (column >= 0 && column !== prevColumn) {
|
|
1697
1701
|
set$(ctx, `containerColumn${i}`, column);
|
|
@@ -2277,20 +2281,19 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2277
2281
|
(_, i) => getId(state, dataProp.length - 1 - i)
|
|
2278
2282
|
);
|
|
2279
2283
|
}, [dataProp, numColumnsProp]);
|
|
2280
|
-
const
|
|
2284
|
+
const initializeStateVars = () => {
|
|
2281
2285
|
set$(ctx, "lastItemKeys", memoizedLastItemKeys);
|
|
2282
2286
|
set$(ctx, "numColumns", numColumnsProp);
|
|
2283
2287
|
const prevPaddingTop = peek$(ctx, "stylePaddingTop");
|
|
2284
2288
|
setPaddingTop(ctx, { stylePaddingTop: stylePaddingTopState });
|
|
2285
2289
|
refState.current.props.stylePaddingBottom = stylePaddingBottomState;
|
|
2286
2290
|
const paddingDiff = stylePaddingTopState - prevPaddingTop;
|
|
2287
|
-
if (paddingDiff && prevPaddingTop !== void 0 && Platform.OS === "ios") {
|
|
2288
|
-
calculateItemsInView(ctx, state, { doMVCP: true });
|
|
2291
|
+
if (maintainVisibleContentPosition && paddingDiff && prevPaddingTop !== void 0 && Platform.OS === "ios") {
|
|
2289
2292
|
requestAdjust(ctx, state, paddingDiff);
|
|
2290
2293
|
}
|
|
2291
2294
|
};
|
|
2292
2295
|
if (isFirst) {
|
|
2293
|
-
|
|
2296
|
+
initializeStateVars();
|
|
2294
2297
|
updateAllPositions(ctx, state);
|
|
2295
2298
|
}
|
|
2296
2299
|
const initialContentOffset = useMemo(() => {
|
|
@@ -2361,7 +2364,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
|
|
|
2361
2364
|
useLayoutEffect(() => {
|
|
2362
2365
|
set$(ctx, "extraData", extraData);
|
|
2363
2366
|
}, [extraData]);
|
|
2364
|
-
useLayoutEffect(
|
|
2367
|
+
useLayoutEffect(initializeStateVars, [
|
|
2365
2368
|
memoizedLastItemKeys.join(","),
|
|
2366
2369
|
numColumnsProp,
|
|
2367
2370
|
stylePaddingTopState,
|
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.6",
|
|
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
|