@legendapp/list 1.0.0-beta.10 → 1.0.0-beta.11

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 CHANGED
@@ -15,7 +15,7 @@ declare class ScrollAdjustHandler {
15
15
  getAppliedAdjust(): number;
16
16
  }
17
17
 
18
- type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView>> = Omit<TScrollView, 'contentOffset' | 'contentInset' | 'maintainVisibleContentPosition' | 'stickyHeaderIndices'> & {
18
+ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView>> = Omit<TScrollView, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
19
19
  data: ReadonlyArray<ItemT>;
20
20
  initialScrollOffset?: number;
21
21
  initialScrollIndex?: number;
@@ -64,7 +64,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
64
64
  extraData?: any;
65
65
  };
66
66
  type AnchoredPosition = {
67
- type: 'top' | 'bottom';
67
+ type: "top" | "bottom";
68
68
  relativeCoordinate: number;
69
69
  top: number;
70
70
  };
package/index.d.ts CHANGED
@@ -15,7 +15,7 @@ declare class ScrollAdjustHandler {
15
15
  getAppliedAdjust(): number;
16
16
  }
17
17
 
18
- type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView>> = Omit<TScrollView, 'contentOffset' | 'contentInset' | 'maintainVisibleContentPosition' | 'stickyHeaderIndices'> & {
18
+ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof ScrollView> | ComponentProps<typeof Animated.ScrollView>> = Omit<TScrollView, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
19
19
  data: ReadonlyArray<ItemT>;
20
20
  initialScrollOffset?: number;
21
21
  initialScrollIndex?: number;
@@ -64,7 +64,7 @@ type LegendListPropsBase<ItemT, TScrollView extends ComponentProps<typeof Scroll
64
64
  extraData?: any;
65
65
  };
66
66
  type AnchoredPosition = {
67
- type: 'top' | 'bottom';
67
+ type: "top" | "bottom";
68
68
  relativeCoordinate: number;
69
69
  top: number;
70
70
  };
package/index.js CHANGED
@@ -440,6 +440,21 @@ var ScrollAdjustHandler = class {
440
440
  return this.appliedAdjust;
441
441
  }
442
442
  };
443
+ var useCombinedRef = (...refs) => {
444
+ const callback = React5.useCallback((element) => {
445
+ for (const ref of refs) {
446
+ if (!ref) {
447
+ continue;
448
+ }
449
+ if (typeof ref === "function") {
450
+ ref(element);
451
+ } else {
452
+ ref.current = element;
453
+ }
454
+ }
455
+ }, refs);
456
+ return callback;
457
+ };
443
458
 
444
459
  // src/viewability.ts
445
460
  var mapViewabilityConfigCallbackPairs = /* @__PURE__ */ new Map();
@@ -633,6 +648,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
633
648
  callbacks.current.onEndReached = rest.onEndReached;
634
649
  const ctx = useStateContext();
635
650
  const refScroller = React5.useRef(null);
651
+ const combinedRef = useCombinedRef(refScroller, refScrollView);
636
652
  const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
637
653
  const keyExtractor = keyExtractorProp != null ? keyExtractorProp : (item, index) => index.toString();
638
654
  const refState = React5.useRef();
@@ -764,7 +780,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
764
780
  let applyAdjustValue = void 0;
765
781
  const totalSize = state.totalSize;
766
782
  let resultSize = totalSize;
767
- if (maintainVisibleContentPosition && totalSize > scrollLength) {
783
+ if (maintainVisibleContentPosition) {
768
784
  const newAdjust = anchorElement.coordinate - state.totalSizeBelowAnchor;
769
785
  applyAdjustValue = -newAdjust;
770
786
  state.belowAnchorElementPositions = buildElementPositionsBelowAnchor();
@@ -1516,16 +1532,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
1516
1532
  {
1517
1533
  ...rest,
1518
1534
  horizontal,
1519
- refScrollView: (r) => {
1520
- refScroller.current = r;
1521
- if (refScrollView) {
1522
- if (typeof refScrollView === "function") {
1523
- refScrollView(r);
1524
- } else {
1525
- refScrollView.current = r;
1526
- }
1527
- }
1528
- },
1535
+ refScrollView: combinedRef,
1529
1536
  initialContentOffset,
1530
1537
  getRenderedItem,
1531
1538
  updateItemSize,
package/index.mjs CHANGED
@@ -419,6 +419,21 @@ var ScrollAdjustHandler = class {
419
419
  return this.appliedAdjust;
420
420
  }
421
421
  };
422
+ var useCombinedRef = (...refs) => {
423
+ const callback = useCallback((element) => {
424
+ for (const ref of refs) {
425
+ if (!ref) {
426
+ continue;
427
+ }
428
+ if (typeof ref === "function") {
429
+ ref(element);
430
+ } else {
431
+ ref.current = element;
432
+ }
433
+ }
434
+ }, refs);
435
+ return callback;
436
+ };
422
437
 
423
438
  // src/viewability.ts
424
439
  var mapViewabilityConfigCallbackPairs = /* @__PURE__ */ new Map();
@@ -612,6 +627,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
612
627
  callbacks.current.onEndReached = rest.onEndReached;
613
628
  const ctx = useStateContext();
614
629
  const refScroller = useRef(null);
630
+ const combinedRef = useCombinedRef(refScroller, refScrollView);
615
631
  const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
616
632
  const keyExtractor = keyExtractorProp != null ? keyExtractorProp : (item, index) => index.toString();
617
633
  const refState = useRef();
@@ -743,7 +759,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
743
759
  let applyAdjustValue = void 0;
744
760
  const totalSize = state.totalSize;
745
761
  let resultSize = totalSize;
746
- if (maintainVisibleContentPosition && totalSize > scrollLength) {
762
+ if (maintainVisibleContentPosition) {
747
763
  const newAdjust = anchorElement.coordinate - state.totalSizeBelowAnchor;
748
764
  applyAdjustValue = -newAdjust;
749
765
  state.belowAnchorElementPositions = buildElementPositionsBelowAnchor();
@@ -1495,16 +1511,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
1495
1511
  {
1496
1512
  ...rest,
1497
1513
  horizontal,
1498
- refScrollView: (r) => {
1499
- refScroller.current = r;
1500
- if (refScrollView) {
1501
- if (typeof refScrollView === "function") {
1502
- refScrollView(r);
1503
- } else {
1504
- refScrollView.current = r;
1505
- }
1506
- }
1507
- },
1514
+ refScrollView: combinedRef,
1508
1515
  initialContentOffset,
1509
1516
  getRenderedItem,
1510
1517
  updateItemSize,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/list",
3
- "version": "1.0.0-beta.10",
3
+ "version": "1.0.0-beta.11",
4
4
  "description": "legend-list",
5
5
  "sideEffects": false,
6
6
  "private": false,
package/reanimated.js CHANGED
@@ -9,6 +9,23 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var React__default = /*#__PURE__*/_interopDefault(React);
10
10
  var Animated__default = /*#__PURE__*/_interopDefault(Animated);
11
11
 
12
+ // src/reanimated.tsx
13
+ var useCombinedRef = (...refs) => {
14
+ const callback = React.useCallback((element) => {
15
+ for (const ref of refs) {
16
+ if (!ref) {
17
+ continue;
18
+ }
19
+ if (typeof ref === "function") {
20
+ ref(element);
21
+ } else {
22
+ ref.current = element;
23
+ }
24
+ }
25
+ }, refs);
26
+ return callback;
27
+ };
28
+
12
29
  // src/reanimated.tsx
13
30
  var LegendListForwardedRef = React__default.default.forwardRef(function LegendListForwardedRef2(props, ref) {
14
31
  const { refLegendList, ...rest } = props;
@@ -26,22 +43,9 @@ var LegendListForwardedRef = React__default.default.forwardRef(function LegendLi
26
43
  var AnimatedLegendListComponent = Animated__default.default.createAnimatedComponent(LegendListForwardedRef);
27
44
  var AnimatedLegendList = React__default.default.forwardRef(function AnimatedLegendList2(props, ref) {
28
45
  const { refScrollView, ...rest } = props;
29
- return /* @__PURE__ */ React__default.default.createElement(
30
- AnimatedLegendListComponent,
31
- {
32
- refLegendList: (r) => {
33
- if (ref) {
34
- if (typeof ref === "function") {
35
- ref(r);
36
- } else {
37
- ref.current = r;
38
- }
39
- }
40
- },
41
- ref: refScrollView,
42
- ...rest
43
- }
44
- );
46
+ const refLegendList = React__default.default.useRef(null);
47
+ const combinedRef = useCombinedRef(refLegendList, ref);
48
+ return /* @__PURE__ */ React__default.default.createElement(AnimatedLegendListComponent, { refLegendList: combinedRef, ref: refScrollView, ...rest });
45
49
  });
46
50
 
47
51
  exports.AnimatedLegendList = AnimatedLegendList;
package/reanimated.mjs CHANGED
@@ -1,7 +1,24 @@
1
1
  import { LegendList } from '@legendapp/list';
2
- import React from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  import Animated from 'react-native-reanimated';
4
4
 
5
+ // src/reanimated.tsx
6
+ var useCombinedRef = (...refs) => {
7
+ const callback = useCallback((element) => {
8
+ for (const ref of refs) {
9
+ if (!ref) {
10
+ continue;
11
+ }
12
+ if (typeof ref === "function") {
13
+ ref(element);
14
+ } else {
15
+ ref.current = element;
16
+ }
17
+ }
18
+ }, refs);
19
+ return callback;
20
+ };
21
+
5
22
  // src/reanimated.tsx
6
23
  var LegendListForwardedRef = React.forwardRef(function LegendListForwardedRef2(props, ref) {
7
24
  const { refLegendList, ...rest } = props;
@@ -19,22 +36,9 @@ var LegendListForwardedRef = React.forwardRef(function LegendListForwardedRef2(p
19
36
  var AnimatedLegendListComponent = Animated.createAnimatedComponent(LegendListForwardedRef);
20
37
  var AnimatedLegendList = React.forwardRef(function AnimatedLegendList2(props, ref) {
21
38
  const { refScrollView, ...rest } = props;
22
- return /* @__PURE__ */ React.createElement(
23
- AnimatedLegendListComponent,
24
- {
25
- refLegendList: (r) => {
26
- if (ref) {
27
- if (typeof ref === "function") {
28
- ref(r);
29
- } else {
30
- ref.current = r;
31
- }
32
- }
33
- },
34
- ref: refScrollView,
35
- ...rest
36
- }
37
- );
39
+ const refLegendList = React.useRef(null);
40
+ const combinedRef = useCombinedRef(refLegendList, ref);
41
+ return /* @__PURE__ */ React.createElement(AnimatedLegendListComponent, { refLegendList: combinedRef, ref: refScrollView, ...rest });
38
42
  });
39
43
 
40
44
  export { AnimatedLegendList };