@legendapp/list 1.0.0-beta.4 → 1.0.0-beta.5

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
@@ -598,17 +598,22 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
598
598
  renderItem,
599
599
  estimatedItemSize,
600
600
  getEstimatedItemSize,
601
- onEndReached,
602
- onStartReached,
603
601
  ListEmptyComponent,
604
602
  onItemSizeChanged,
605
603
  scrollEventThrottle,
606
604
  refScrollView,
607
605
  waitForInitialLayout = true,
608
606
  extraData,
607
+ onLayout: onLayoutProp,
609
608
  ...rest
610
609
  } = props;
611
610
  const { style, contentContainerStyle } = props;
611
+ const callbacks = React5.useRef({
612
+ onStartReached: rest.onStartReached,
613
+ onEndReached: rest.onEndReached
614
+ });
615
+ callbacks.current.onStartReached = rest.onStartReached;
616
+ callbacks.current.onEndReached = rest.onEndReached;
612
617
  const ctx = useStateContext();
613
618
  const refScroller = React5.useRef(null);
614
619
  const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
@@ -1096,6 +1101,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1096
1101
  if (refState.current) {
1097
1102
  refState.current.isAtBottom = distanceFromEnd < scrollLength * maintainScrollAtEndThreshold;
1098
1103
  }
1104
+ const { onEndReached } = callbacks.current;
1099
1105
  if (onEndReached) {
1100
1106
  if (!refState.current.isEndReached) {
1101
1107
  if (distanceFromEnd < onEndReachedThreshold * scrollLength) {
@@ -1117,6 +1123,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1117
1123
  const { scrollLength, scroll } = refState.current;
1118
1124
  const distanceFromTop = scroll;
1119
1125
  refState.current.isAtTop = distanceFromTop < 0;
1126
+ const { onStartReached } = callbacks.current;
1120
1127
  if (onStartReached) {
1121
1128
  if (!refState.current.isStartReached && !refState.current.startReachedBlockedByTimer) {
1122
1129
  if (distanceFromTop < onStartReachedThreshold * scrollLength) {
@@ -1398,6 +1405,9 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1398
1405
  );
1399
1406
  }
1400
1407
  }
1408
+ if (onLayoutProp) {
1409
+ onLayoutProp(event);
1410
+ }
1401
1411
  }, []);
1402
1412
  const handleScroll = React5.useCallback(
1403
1413
  (event, fromSelf) => {
@@ -1451,9 +1461,9 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1451
1461
  };
1452
1462
  return {
1453
1463
  getNativeScrollRef: () => refScroller.current,
1454
- getScrollableNode: refScroller.current.getScrollableNode,
1455
- getScrollResponder: refScroller.current.getScrollResponder,
1456
- flashScrollIndicators: refScroller.current.flashScrollIndicators,
1464
+ getScrollableNode: () => refScroller.current.getScrollableNode(),
1465
+ getScrollResponder: () => refScroller.current.getScrollResponder(),
1466
+ flashScrollIndicators: () => refScroller.current.flashScrollIndicators(),
1457
1467
  scrollToIndex,
1458
1468
  scrollToOffset: ({ offset, animated }) => {
1459
1469
  const offsetObj = horizontal ? { x: offset, y: 0 } : { x: 0, y: offset };
@@ -1465,7 +1475,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1465
1475
  scrollToIndex({ index, animated });
1466
1476
  }
1467
1477
  },
1468
- scrollToEnd: refScroller.current.scrollToEnd
1478
+ scrollToEnd: () => refScroller.current.scrollToEnd()
1469
1479
  };
1470
1480
  },
1471
1481
  []
package/index.mjs CHANGED
@@ -577,17 +577,22 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
577
577
  renderItem,
578
578
  estimatedItemSize,
579
579
  getEstimatedItemSize,
580
- onEndReached,
581
- onStartReached,
582
580
  ListEmptyComponent,
583
581
  onItemSizeChanged,
584
582
  scrollEventThrottle,
585
583
  refScrollView,
586
584
  waitForInitialLayout = true,
587
585
  extraData,
586
+ onLayout: onLayoutProp,
588
587
  ...rest
589
588
  } = props;
590
589
  const { style, contentContainerStyle } = props;
590
+ const callbacks = useRef({
591
+ onStartReached: rest.onStartReached,
592
+ onEndReached: rest.onEndReached
593
+ });
594
+ callbacks.current.onStartReached = rest.onStartReached;
595
+ callbacks.current.onEndReached = rest.onEndReached;
591
596
  const ctx = useStateContext();
592
597
  const refScroller = useRef(null);
593
598
  const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
@@ -1075,6 +1080,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1075
1080
  if (refState.current) {
1076
1081
  refState.current.isAtBottom = distanceFromEnd < scrollLength * maintainScrollAtEndThreshold;
1077
1082
  }
1083
+ const { onEndReached } = callbacks.current;
1078
1084
  if (onEndReached) {
1079
1085
  if (!refState.current.isEndReached) {
1080
1086
  if (distanceFromEnd < onEndReachedThreshold * scrollLength) {
@@ -1096,6 +1102,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1096
1102
  const { scrollLength, scroll } = refState.current;
1097
1103
  const distanceFromTop = scroll;
1098
1104
  refState.current.isAtTop = distanceFromTop < 0;
1105
+ const { onStartReached } = callbacks.current;
1099
1106
  if (onStartReached) {
1100
1107
  if (!refState.current.isStartReached && !refState.current.startReachedBlockedByTimer) {
1101
1108
  if (distanceFromTop < onStartReachedThreshold * scrollLength) {
@@ -1377,6 +1384,9 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1377
1384
  );
1378
1385
  }
1379
1386
  }
1387
+ if (onLayoutProp) {
1388
+ onLayoutProp(event);
1389
+ }
1380
1390
  }, []);
1381
1391
  const handleScroll = useCallback(
1382
1392
  (event, fromSelf) => {
@@ -1430,9 +1440,9 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1430
1440
  };
1431
1441
  return {
1432
1442
  getNativeScrollRef: () => refScroller.current,
1433
- getScrollableNode: refScroller.current.getScrollableNode,
1434
- getScrollResponder: refScroller.current.getScrollResponder,
1435
- flashScrollIndicators: refScroller.current.flashScrollIndicators,
1443
+ getScrollableNode: () => refScroller.current.getScrollableNode(),
1444
+ getScrollResponder: () => refScroller.current.getScrollResponder(),
1445
+ flashScrollIndicators: () => refScroller.current.flashScrollIndicators(),
1436
1446
  scrollToIndex,
1437
1447
  scrollToOffset: ({ offset, animated }) => {
1438
1448
  const offsetObj = horizontal ? { x: offset, y: 0 } : { x: 0, y: offset };
@@ -1444,7 +1454,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1444
1454
  scrollToIndex({ index, animated });
1445
1455
  }
1446
1456
  },
1447
- scrollToEnd: refScroller.current.scrollToEnd
1457
+ scrollToEnd: () => refScroller.current.scrollToEnd()
1448
1458
  };
1449
1459
  },
1450
1460
  []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/list",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.5",
4
4
  "description": "legend-list",
5
5
  "sideEffects": false,
6
6
  "private": false,
package/reanimated.d.mts CHANGED
@@ -8,6 +8,9 @@ interface AnimatedLegendListProps<ItemT> extends Omit<PropsBase<ItemT>, KeysToOm
8
8
  refScrollView?: react__default.Ref<Animated.ScrollView>;
9
9
  }
10
10
  type OtherAnimatedLegendListProps<ItemT> = Pick<PropsBase<ItemT>, KeysToOmit>;
11
- declare const AnimatedLegendList: react__default.ForwardRefExoticComponent<Omit<Omit<AnimatedLegendListProps<unknown>, "refLegendList"> & OtherAnimatedLegendListProps<unknown>, "ref"> & react__default.RefAttributes<LegendListRef>>;
11
+ type AnimatedLegendListDefinition = <ItemT>(props: Omit<AnimatedLegendListProps<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT> & {
12
+ ref?: react__default.Ref<LegendListRef>;
13
+ }) => react__default.ReactElement | null;
14
+ declare const AnimatedLegendList: AnimatedLegendListDefinition;
12
15
 
13
16
  export { AnimatedLegendList };
package/reanimated.d.ts CHANGED
@@ -8,6 +8,9 @@ interface AnimatedLegendListProps<ItemT> extends Omit<PropsBase<ItemT>, KeysToOm
8
8
  refScrollView?: react__default.Ref<Animated.ScrollView>;
9
9
  }
10
10
  type OtherAnimatedLegendListProps<ItemT> = Pick<PropsBase<ItemT>, KeysToOmit>;
11
- declare const AnimatedLegendList: react__default.ForwardRefExoticComponent<Omit<Omit<AnimatedLegendListProps<unknown>, "refLegendList"> & OtherAnimatedLegendListProps<unknown>, "ref"> & react__default.RefAttributes<LegendListRef>>;
11
+ type AnimatedLegendListDefinition = <ItemT>(props: Omit<AnimatedLegendListProps<ItemT>, "refLegendList"> & OtherAnimatedLegendListProps<ItemT> & {
12
+ ref?: react__default.Ref<LegendListRef>;
13
+ }) => react__default.ReactElement | null;
14
+ declare const AnimatedLegendList: AnimatedLegendListDefinition;
12
15
 
13
16
  export { AnimatedLegendList };