@legendapp/list 2.0.0-next.4 → 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 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 { containerId: id, index, itemKey, triggerLayout, value: data };
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 (!prevPos || pos > POSITION_OUT_OF_VIEW && pos !== prevPos) {
1715
- set$(ctx, `containerPosition${i}`, pos);
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 initalizeStateVars = () => {
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
- initalizeStateVars();
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(initalizeStateVars, [
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, useMemo, useState, useRef, useLayoutEffect, useCallback, useImperativeHandle, useContext, forwardRef, memo } from 'react';
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 { containerId: id, index, itemKey, triggerLayout, value: data };
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 (!prevPos || pos > POSITION_OUT_OF_VIEW && pos !== prevPos) {
1694
- set$(ctx, `containerPosition${i}`, pos);
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 initalizeStateVars = () => {
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
- initalizeStateVars();
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(initalizeStateVars, [
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.4",
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,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes