@legendapp/list 1.0.0-beta.51 → 1.0.0-beta.53

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.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import * as React6 from 'react';
2
- import React6__default, { memo, useReducer, useEffect, createContext, useMemo, useRef, useCallback, useImperativeHandle, useSyncExternalStore, useContext, useState, forwardRef, useLayoutEffect } from 'react';
1
+ import * as React2 from 'react';
2
+ import React2__default, { useReducer, useEffect, createContext, useMemo, useRef, useCallback, useImperativeHandle, useSyncExternalStore, useContext, useState, forwardRef, memo, useLayoutEffect } from 'react';
3
3
  import { View, Text, Platform, Animated, ScrollView, StyleSheet, Dimensions, RefreshControl } from 'react-native';
4
4
 
5
5
  // src/LegendList.tsx
6
- var ContextState = React6.createContext(null);
6
+ var ContextState = React2.createContext(null);
7
7
  function StateProvider({ children }) {
8
- const [value] = React6.useState(() => ({
8
+ const [value] = React2.useState(() => ({
9
9
  listeners: /* @__PURE__ */ new Map(),
10
10
  values: /* @__PURE__ */ new Map([
11
11
  ["paddingTop", 0],
@@ -20,10 +20,10 @@ function StateProvider({ children }) {
20
20
  columnWrapperStyle: void 0,
21
21
  viewRefs: /* @__PURE__ */ new Map()
22
22
  }));
23
- return /* @__PURE__ */ React6.createElement(ContextState.Provider, { value }, children);
23
+ return /* @__PURE__ */ React2.createElement(ContextState.Provider, { value }, children);
24
24
  }
25
25
  function useStateContext() {
26
- return React6.useContext(ContextState);
26
+ return React2.useContext(ContextState);
27
27
  }
28
28
  function createSelectorFunctions(ctx, signalName) {
29
29
  return {
@@ -32,8 +32,8 @@ function createSelectorFunctions(ctx, signalName) {
32
32
  };
33
33
  }
34
34
  function use$(signalName) {
35
- const ctx = React6.useContext(ContextState);
36
- const { subscribe, get } = React6.useMemo(() => createSelectorFunctions(ctx, signalName), []);
35
+ const ctx = React2.useContext(ContextState);
36
+ const { subscribe, get } = React2.useMemo(() => createSelectorFunctions(ctx, signalName), []);
37
37
  const value = useSyncExternalStore(subscribe, get);
38
38
  return value;
39
39
  }
@@ -74,9 +74,9 @@ function getContentSize(ctx) {
74
74
 
75
75
  // src/DebugView.tsx
76
76
  var DebugRow = ({ children }) => {
77
- return /* @__PURE__ */ React.createElement(View, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" } }, children);
77
+ return /* @__PURE__ */ React2.createElement(View, { style: { flexDirection: "row", alignItems: "center", justifyContent: "space-between" } }, children);
78
78
  };
79
- var DebugView = memo(function DebugView2({ state }) {
79
+ var DebugView = React2.memo(function DebugView2({ state }) {
80
80
  const ctx = useStateContext();
81
81
  const totalSize = use$("totalSize") || 0;
82
82
  const totalSizeWithScrollAdjust = use$("totalSizeWithScrollAdjust") || 0;
@@ -90,7 +90,7 @@ var DebugView = memo(function DebugView2({ state }) {
90
90
  useInterval(() => {
91
91
  forceUpdate();
92
92
  }, 100);
93
- return /* @__PURE__ */ React.createElement(
93
+ return /* @__PURE__ */ React2.createElement(
94
94
  View,
95
95
  {
96
96
  style: {
@@ -106,15 +106,15 @@ var DebugView = memo(function DebugView2({ state }) {
106
106
  },
107
107
  pointerEvents: "none"
108
108
  },
109
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "TotalSize:"), /* @__PURE__ */ React.createElement(Text, null, totalSize.toFixed(2))),
110
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "ContentSize:"), /* @__PURE__ */ React.createElement(Text, null, contentSize.toFixed(2))),
111
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "At end:"), /* @__PURE__ */ React.createElement(Text, null, String(state.isAtBottom))),
112
- /* @__PURE__ */ React.createElement(Text, null),
113
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "ScrollAdjust:"), /* @__PURE__ */ React.createElement(Text, null, scrollAdjust.toFixed(2))),
114
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "TotalSizeReal: "), /* @__PURE__ */ React.createElement(Text, null, totalSizeWithScrollAdjust.toFixed(2))),
115
- /* @__PURE__ */ React.createElement(Text, null),
116
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "RawScroll: "), /* @__PURE__ */ React.createElement(Text, null, rawScroll.toFixed(2))),
117
- /* @__PURE__ */ React.createElement(DebugRow, null, /* @__PURE__ */ React.createElement(Text, null, "ComputedScroll: "), /* @__PURE__ */ React.createElement(Text, null, scroll.toFixed(2)))
109
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "TotalSize:"), /* @__PURE__ */ React2.createElement(Text, null, totalSize.toFixed(2))),
110
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "ContentSize:"), /* @__PURE__ */ React2.createElement(Text, null, contentSize.toFixed(2))),
111
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "At end:"), /* @__PURE__ */ React2.createElement(Text, null, String(state.isAtBottom))),
112
+ /* @__PURE__ */ React2.createElement(Text, null),
113
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "ScrollAdjust:"), /* @__PURE__ */ React2.createElement(Text, null, scrollAdjust.toFixed(2))),
114
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "TotalSizeReal: "), /* @__PURE__ */ React2.createElement(Text, null, totalSizeWithScrollAdjust.toFixed(2))),
115
+ /* @__PURE__ */ React2.createElement(Text, null),
116
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "RawScroll: "), /* @__PURE__ */ React2.createElement(Text, null, rawScroll.toFixed(2))),
117
+ /* @__PURE__ */ React2.createElement(DebugRow, null, /* @__PURE__ */ React2.createElement(Text, null, "ComputedScroll: "), /* @__PURE__ */ React2.createElement(Text, null, scroll.toFixed(2)))
118
118
  );
119
119
  });
120
120
  function useInterval(callback, delay) {
@@ -233,8 +233,8 @@ function useRecyclingState(valueOrFun) {
233
233
  );
234
234
  return [refState.current.value, setState];
235
235
  }
236
- var LeanViewComponent = React6.forwardRef((props, ref) => {
237
- return React6.createElement("RCTView", { ...props, ref });
236
+ var LeanViewComponent = React2.forwardRef((props, ref) => {
237
+ return React2.createElement("RCTView", { ...props, ref });
238
238
  });
239
239
  LeanViewComponent.displayName = "RCTView";
240
240
  var LeanView = Platform.OS === "android" || Platform.OS === "ios" ? LeanViewComponent : View;
@@ -352,16 +352,16 @@ var Container = ({
352
352
  ctx.viewRefs.set(id, ref);
353
353
  return { containerId: id, itemKey, index, value: data, triggerLayout };
354
354
  }, [id, itemKey, index, data]);
355
- const contentFragment = /* @__PURE__ */ React6__default.createElement(React6__default.Fragment, { key: recycleItems ? void 0 : itemKey }, /* @__PURE__ */ React6__default.createElement(ContextContainer.Provider, { value: contextValue }, renderedItem, renderedItemInfo && ItemSeparatorComponent && !lastItemKeys.includes(itemKey) && /* @__PURE__ */ React6__default.createElement(ItemSeparatorComponent, { leadingItem: renderedItemInfo.item })));
355
+ const contentFragment = /* @__PURE__ */ React2__default.createElement(React2__default.Fragment, { key: recycleItems ? void 0 : itemKey }, /* @__PURE__ */ React2__default.createElement(ContextContainer.Provider, { value: contextValue }, renderedItem, renderedItemInfo && ItemSeparatorComponent && !lastItemKeys.includes(itemKey) && /* @__PURE__ */ React2__default.createElement(ItemSeparatorComponent, { leadingItem: renderedItemInfo.item })));
356
356
  if (maintainVisibleContentPosition) {
357
357
  const anchorStyle = position.type === "top" ? { position: "absolute", top: 0, left: 0, right: 0 } : { position: "absolute", bottom: 0, left: 0, right: 0 };
358
358
  if (ENABLE_DEVMODE) {
359
359
  anchorStyle.borderColor = position.type === "top" ? "red" : "blue";
360
360
  anchorStyle.borderWidth = 1;
361
361
  }
362
- return /* @__PURE__ */ React6__default.createElement(LeanView, { style }, /* @__PURE__ */ React6__default.createElement(LeanView, { style: anchorStyle, onLayout, ref }, contentFragment, ENABLE_DEVMODE && /* @__PURE__ */ React6__default.createElement(Text, { style: { position: "absolute", top: 0, left: 0, zIndex: 1e3 } }, position.top)));
362
+ return /* @__PURE__ */ React2__default.createElement(LeanView, { style }, /* @__PURE__ */ React2__default.createElement(LeanView, { style: anchorStyle, onLayout, ref }, contentFragment, ENABLE_DEVMODE && /* @__PURE__ */ React2__default.createElement(Text, { style: { position: "absolute", top: 0, left: 0, zIndex: 1e3 } }, position.top)));
363
363
  }
364
- return /* @__PURE__ */ React6__default.createElement(LeanView, { style, onLayout, ref }, contentFragment);
364
+ return /* @__PURE__ */ React2__default.createElement(LeanView, { style, onLayout, ref }, contentFragment);
365
365
  };
366
366
  var typedForwardRef = forwardRef;
367
367
  var typedMemo = memo;
@@ -414,7 +414,7 @@ var Containers = typedMemo(function Containers2({
414
414
  const containers = [];
415
415
  for (let i = 0; i < numContainers; i++) {
416
416
  containers.push(
417
- /* @__PURE__ */ React6.createElement(
417
+ /* @__PURE__ */ React2.createElement(
418
418
  Container,
419
419
  {
420
420
  id: i,
@@ -443,16 +443,16 @@ var Containers = typedMemo(function Containers2({
443
443
  }
444
444
  }
445
445
  }
446
- return /* @__PURE__ */ React6.createElement(Animated.View, { style }, containers);
446
+ return /* @__PURE__ */ React2.createElement(Animated.View, { style }, containers);
447
447
  });
448
448
 
449
449
  // src/ListComponent.tsx
450
450
  var getComponent = (Component) => {
451
- if (React6.isValidElement(Component)) {
451
+ if (React2.isValidElement(Component)) {
452
452
  return Component;
453
453
  }
454
454
  if (Component) {
455
- return /* @__PURE__ */ React6.createElement(Component, null);
455
+ return /* @__PURE__ */ React2.createElement(Component, null);
456
456
  }
457
457
  return null;
458
458
  };
@@ -460,12 +460,12 @@ var PaddingAndAdjust = () => {
460
460
  const animPaddingTop = useValue$("paddingTop", (v) => v, true);
461
461
  const animScrollAdjust = useValue$("scrollAdjust", (v) => v, true);
462
462
  const additionalSize = { marginTop: animScrollAdjust, paddingTop: animPaddingTop };
463
- return /* @__PURE__ */ React6.createElement(Animated.View, { style: additionalSize });
463
+ return /* @__PURE__ */ React2.createElement(Animated.View, { style: additionalSize });
464
464
  };
465
465
  var PaddingAndAdjustDevMode = () => {
466
466
  const animPaddingTop = useValue$("paddingTop", (v) => v, true);
467
467
  const animScrollAdjust = useValue$("scrollAdjust", (v) => v, true);
468
- return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(Animated.View, { style: { marginTop: animScrollAdjust } }), /* @__PURE__ */ React6.createElement(Animated.View, { style: { paddingTop: animPaddingTop } }), /* @__PURE__ */ React6.createElement(
468
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Animated.View, { style: { marginTop: animScrollAdjust } }), /* @__PURE__ */ React2.createElement(Animated.View, { style: { paddingTop: animPaddingTop } }), /* @__PURE__ */ React2.createElement(
469
469
  Animated.View,
470
470
  {
471
471
  style: {
@@ -477,7 +477,7 @@ var PaddingAndAdjustDevMode = () => {
477
477
  backgroundColor: "green"
478
478
  }
479
479
  }
480
- ), /* @__PURE__ */ React6.createElement(
480
+ ), /* @__PURE__ */ React2.createElement(
481
481
  Animated.View,
482
482
  {
483
483
  style: {
@@ -489,7 +489,7 @@ var PaddingAndAdjustDevMode = () => {
489
489
  backgroundColor: "lightblue"
490
490
  }
491
491
  }
492
- ), /* @__PURE__ */ React6.createElement(
492
+ ), /* @__PURE__ */ React2.createElement(
493
493
  Animated.View,
494
494
  {
495
495
  style: {
@@ -535,10 +535,10 @@ var ListComponent = typedMemo(function ListComponent2({
535
535
  }) {
536
536
  const ctx = useStateContext();
537
537
  const ScrollComponent = renderScrollComponent ? useMemo(
538
- () => React6.forwardRef((props, ref) => renderScrollComponent({ ...props, ref })),
538
+ () => React2.forwardRef((props, ref) => renderScrollComponent({ ...props, ref })),
539
539
  [renderScrollComponent]
540
540
  ) : ScrollView;
541
- return /* @__PURE__ */ React6.createElement(
541
+ return /* @__PURE__ */ React2.createElement(
542
542
  ScrollComponent,
543
543
  {
544
544
  ...rest,
@@ -556,8 +556,8 @@ var ListComponent = typedMemo(function ListComponent2({
556
556
  contentOffset: initialContentOffset ? horizontal ? { x: initialContentOffset, y: 0 } : { x: 0, y: initialContentOffset } : void 0,
557
557
  ref: refScrollView
558
558
  },
559
- !ListEmptyComponent && (ENABLE_DEVMODE ? /* @__PURE__ */ React6.createElement(PaddingAndAdjustDevMode, null) : /* @__PURE__ */ React6.createElement(PaddingAndAdjust, null)),
560
- ListHeaderComponent && /* @__PURE__ */ React6.createElement(
559
+ !ListEmptyComponent && (ENABLE_DEVMODE ? /* @__PURE__ */ React2.createElement(PaddingAndAdjustDevMode, null) : /* @__PURE__ */ React2.createElement(PaddingAndAdjust, null)),
560
+ ListHeaderComponent && /* @__PURE__ */ React2.createElement(
561
561
  View,
562
562
  {
563
563
  style: ListHeaderComponentStyle,
@@ -569,7 +569,7 @@ var ListComponent = typedMemo(function ListComponent2({
569
569
  getComponent(ListHeaderComponent)
570
570
  ),
571
571
  ListEmptyComponent && getComponent(ListEmptyComponent),
572
- /* @__PURE__ */ React6.createElement(
572
+ /* @__PURE__ */ React2.createElement(
573
573
  Containers,
574
574
  {
575
575
  horizontal,
@@ -580,7 +580,7 @@ var ListComponent = typedMemo(function ListComponent2({
580
580
  updateItemSize
581
581
  }
582
582
  ),
583
- ListFooterComponent && /* @__PURE__ */ React6.createElement(
583
+ ListFooterComponent && /* @__PURE__ */ React2.createElement(
584
584
  View,
585
585
  {
586
586
  style: ListFooterComponentStyle,
@@ -862,7 +862,7 @@ function createColumnWrapperStyle(contentContainerStyle) {
862
862
  }
863
863
  }
864
864
  var LegendList = typedForwardRef(function LegendList2(props, forwardedRef) {
865
- return /* @__PURE__ */ React6.createElement(StateProvider, null, /* @__PURE__ */ React6.createElement(LegendListInner, { ...props, ref: forwardedRef }));
865
+ return /* @__PURE__ */ React2.createElement(StateProvider, null, /* @__PURE__ */ React2.createElement(LegendListInner, { ...props, ref: forwardedRef }));
866
866
  });
867
867
  var LegendListInner = typedForwardRef(function LegendListInner2(props, forwardedRef) {
868
868
  const {
@@ -943,6 +943,9 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
943
943
  return sizeKnown;
944
944
  }
945
945
  let size;
946
+ if (getEstimatedItemSize) {
947
+ size = getEstimatedItemSize(index, data);
948
+ }
946
949
  if (size === void 0 && useAverageSize) {
947
950
  const itemType = "";
948
951
  const average = state.averageSizes[itemType];
@@ -950,12 +953,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
950
953
  size = roundSize(average.avg);
951
954
  }
952
955
  }
953
- const sizePrevious = state.sizesKnown.get(key);
954
- if (sizePrevious !== void 0) {
955
- return sizePrevious;
956
- }
957
956
  if (size === void 0) {
958
- size = getEstimatedItemSize ? getEstimatedItemSize(index, data) : estimatedItemSize != null ? estimatedItemSize : DEFAULT_ITEM_SIZE;
957
+ size = estimatedItemSize != null ? estimatedItemSize : DEFAULT_ITEM_SIZE;
959
958
  }
960
959
  state.sizes.set(key, size);
961
960
  return size;
@@ -1094,6 +1093,12 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1094
1093
  state.scrollAdjustHandler.setDisableAdjust(true);
1095
1094
  state.scrollingToOffset = firstIndexScrollPostion;
1096
1095
  scrollTo(firstIndexScrollPostion, animated);
1096
+ if (!animated) {
1097
+ requestAnimationFrame(() => {
1098
+ state.scrollingToOffset = void 0;
1099
+ state.scrollAdjustHandler.setDisableAdjust(false);
1100
+ });
1101
+ }
1097
1102
  };
1098
1103
  const setDidLayout = () => {
1099
1104
  refState.current.queuedInitialLayout = true;
@@ -1505,7 +1510,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1505
1510
  if (item !== void 0) {
1506
1511
  const id = getId(itemIndex);
1507
1512
  if (itemKey !== id || itemIndex < startBuffered || itemIndex > endBuffered) {
1508
- const prevPos = peek$(ctx, `containerPosition${i}`).top;
1513
+ const prevPos = peek$(ctx, `containerPosition${i}`);
1509
1514
  const pos = positions.get(id) || 0;
1510
1515
  const size = getItemSize(id, itemIndex, data[i]);
1511
1516
  if (pos + size >= scroll && pos <= scrollBottom || prevPos + size >= scroll && prevPos <= scrollBottom) {
@@ -1572,6 +1577,14 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1572
1577
  alignItemsPaddingTop
1573
1578
  }) => {
1574
1579
  if (stylePaddingTop !== void 0) {
1580
+ const prevStylePaddingTop = peek$(ctx, "stylePaddingTop") || 0;
1581
+ if (stylePaddingTop < prevStylePaddingTop) {
1582
+ const prevTotalSize = peek$(ctx, "totalSizeWithScrollAdjust") || 0;
1583
+ set$(ctx, "totalSizeWithScrollAdjust", prevTotalSize + prevStylePaddingTop);
1584
+ setTimeout(() => {
1585
+ set$(ctx, "totalSizeWithScrollAdjust", prevTotalSize);
1586
+ }, 16);
1587
+ }
1575
1588
  set$(ctx, "stylePaddingTop", stylePaddingTop);
1576
1589
  }
1577
1590
  if (alignItemsPaddingTop !== void 0) {
@@ -1701,8 +1714,8 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
1701
1714
  for (let i = 0; i < numContainers; i++) {
1702
1715
  const itemKey = peek$(ctx, `containerItemKey${i}`);
1703
1716
  if (!keyExtractorProp || itemKey && state.indexByKey.get(itemKey) === void 0) {
1704
- set$(ctx, `containerItemKey${i}`, void 0);
1705
- set$(ctx, `containerItemData${i}`, void 0);
1717
+ set$(ctx, `containerItemKey${i}`, null);
1718
+ set$(ctx, `containerItemData${i}`, null);
1706
1719
  set$(ctx, `containerPosition${i}`, ANCHORED_POSITION_OUT_OF_VIEW);
1707
1720
  set$(ctx, `containerColumn${i}`, -1);
1708
1721
  }
@@ -2182,7 +2195,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2182
2195
  }
2183
2196
  }, []);
2184
2197
  }
2185
- return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(
2198
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(
2186
2199
  ListComponent,
2187
2200
  {
2188
2201
  ...rest,
@@ -2221,7 +2234,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2221
2234
  maintainVisibleContentPosition,
2222
2235
  scrollEventThrottle: Platform.OS === "web" ? 16 : void 0,
2223
2236
  waitForInitialLayout,
2224
- refreshControl: refreshControl != null ? refreshControl : onRefresh && /* @__PURE__ */ React6.createElement(
2237
+ refreshControl: refreshControl != null ? refreshControl : onRefresh && /* @__PURE__ */ React2.createElement(
2225
2238
  RefreshControl,
2226
2239
  {
2227
2240
  refreshing: !!refreshing,
@@ -2232,7 +2245,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2232
2245
  style,
2233
2246
  contentContainerStyle
2234
2247
  }
2235
- ), __DEV__ && ENABLE_DEBUG_VIEW && /* @__PURE__ */ React6.createElement(DebugView, { state: refState.current }));
2248
+ ), __DEV__ && ENABLE_DEBUG_VIEW && /* @__PURE__ */ React2.createElement(DebugView, { state: refState.current }));
2236
2249
  });
2237
2250
 
2238
2251
  export { LegendList, useRecyclingEffect, useRecyclingState, useViewability, useViewabilityAmount };
@@ -1,16 +1,140 @@
1
+ import * as react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe from 'react-native-reanimated/lib/typescript/layoutReanimation/animationBuilder/Keyframe';
2
+ import * as react_native_reanimated from 'react-native-reanimated';
3
+ import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
1
4
  import * as _legendapp_list from '@legendapp/list';
2
5
  import { LegendListRef } from '@legendapp/list';
3
- import * as react_native_reanimated_lib_typescript_layoutReanimation_animationBuilder_Keyframe from 'react-native-reanimated/lib/typescript/layoutReanimation/animationBuilder/Keyframe';
4
6
  import * as react_native from 'react-native';
5
7
  import { Insets } from 'react-native';
6
- import * as react_native_reanimated from 'react-native-reanimated';
7
- import * as _legendapp_list_reanimated from '@legendapp/list/reanimated';
8
8
  import * as React from 'react';
9
9
 
10
- declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendapp_list_reanimated.AnimatedLegendListPropsBase<ItemT_1>, "refLegendList"> & {
10
+ declare const LegendList: <ItemT, ListT extends (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
11
+ alignItemsAtEnd?: boolean;
12
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
13
+ data: readonly T[];
14
+ drawDistance?: number;
15
+ estimatedItemSize?: number;
16
+ extraData?: any;
17
+ getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
18
+ initialContainerPoolRatio?: number | undefined;
19
+ initialScrollOffset?: number;
20
+ initialScrollIndex?: number;
21
+ ItemSeparatorComponent?: React.ComponentType<{
22
+ leadingItem: T;
23
+ }> | undefined;
24
+ keyExtractor?: ((item: T, index: number) => string) | undefined;
25
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
26
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
27
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
28
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
29
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
30
+ maintainScrollAtEnd?: boolean;
31
+ maintainScrollAtEndThreshold?: number;
32
+ maintainVisibleContentPosition?: boolean;
33
+ numColumns?: number;
34
+ onEndReached?: ((info: {
35
+ distanceFromEnd: number;
36
+ }) => void) | null | undefined;
37
+ onEndReachedThreshold?: number | null | undefined;
38
+ onItemSizeChanged?: ((info: {
39
+ size: number;
40
+ previous: number;
41
+ index: number;
42
+ itemKey: string;
43
+ itemData: T;
44
+ }) => void) | undefined;
45
+ onRefresh?: () => void;
46
+ onStartReached?: ((info: {
47
+ distanceFromStart: number;
48
+ }) => void) | null | undefined;
49
+ onStartReachedThreshold?: number | null | undefined;
50
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
51
+ progressViewOffset?: number;
52
+ recycleItems?: boolean;
53
+ refScrollView?: React.Ref<react_native.ScrollView>;
54
+ refreshing?: boolean;
55
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
56
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
57
+ suggestEstimatedItemSize?: boolean;
58
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
59
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
60
+ waitForInitialLayout?: boolean;
61
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
62
+ alignItemsAtEnd?: boolean;
63
+ columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
64
+ data: readonly T[];
65
+ drawDistance?: number;
66
+ estimatedItemSize?: number;
67
+ extraData?: any;
68
+ getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
69
+ initialContainerPoolRatio?: number | undefined;
70
+ initialScrollOffset?: number;
71
+ initialScrollIndex?: number;
72
+ ItemSeparatorComponent?: React.ComponentType<{
73
+ leadingItem: T;
74
+ }> | undefined;
75
+ keyExtractor?: ((item: T, index: number) => string) | undefined;
76
+ ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
77
+ ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
78
+ ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
79
+ ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
80
+ ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
81
+ maintainScrollAtEnd?: boolean;
82
+ maintainScrollAtEndThreshold?: number;
83
+ maintainVisibleContentPosition?: boolean;
84
+ numColumns?: number;
85
+ onEndReached?: ((info: {
86
+ distanceFromEnd: number;
87
+ }) => void) | null | undefined;
88
+ onEndReachedThreshold?: number | null | undefined;
89
+ onItemSizeChanged?: ((info: {
90
+ size: number;
91
+ previous: number;
92
+ index: number;
93
+ itemKey: string;
94
+ itemData: T;
95
+ }) => void) | undefined;
96
+ onRefresh?: () => void;
97
+ onStartReached?: ((info: {
98
+ distanceFromStart: number;
99
+ }) => void) | null | undefined;
100
+ onStartReachedThreshold?: number | null | undefined;
101
+ onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
102
+ progressViewOffset?: number;
103
+ recycleItems?: boolean;
104
+ refScrollView?: React.Ref<react_native.ScrollView>;
105
+ refreshing?: boolean;
106
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
107
+ renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
108
+ suggestEstimatedItemSize?: boolean;
109
+ viewabilityConfig?: _legendapp_list.ViewabilityConfig;
110
+ viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
111
+ waitForInitialLayout?: boolean;
112
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode)> | (<ItemT_1>(props: Omit<_legendapp_list_reanimated.AnimatedLegendListPropsBase<ItemT_1>, "refLegendList"> & {
11
113
  getEstimatedItemSize?: ((index: number, item: ItemT_1) => number) | undefined;
114
+ ItemSeparatorComponent?: React.ComponentType<{
115
+ leadingItem: ItemT_1;
116
+ }> | undefined;
12
117
  keyExtractor?: ((item: ItemT_1, index: number) => string) | undefined;
118
+ onItemSizeChanged?: ((info: {
119
+ size: number;
120
+ previous: number;
121
+ index: number;
122
+ itemKey: string;
123
+ itemData: ItemT_1;
124
+ }) => void) | undefined;
125
+ renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT_1>) => React.ReactNode) | undefined;
13
126
  animatedProps?: Partial<{
127
+ contentOffset?: react_native.PointProp | react_native_reanimated.SharedValue<react_native.PointProp | undefined> | undefined;
128
+ contentInset?: Insets | react_native_reanimated.SharedValue<Insets | undefined> | undefined;
129
+ maintainVisibleContentPosition?: {
130
+ autoscrollToTopThreshold?: number | null | undefined;
131
+ minIndexForVisible: number;
132
+ } | react_native_reanimated.SharedValue<{
133
+ autoscrollToTopThreshold?: number | null | undefined;
134
+ minIndexForVisible: number;
135
+ } | null | undefined> | null | undefined;
136
+ stickyHeaderIndices?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
137
+ scrollEventThrottle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
14
138
  decelerationRate?: number | "fast" | "normal" | react_native_reanimated.SharedValue<number | "fast" | "normal" | undefined> | undefined;
15
139
  horizontal?: boolean | react_native_reanimated.SharedValue<boolean | null | undefined> | null | undefined;
16
140
  invertStickyHeaders?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
@@ -33,7 +157,6 @@ declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendap
33
157
  snapToOffsets?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
34
158
  snapToStart?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
35
159
  snapToEnd?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
36
- stickyHeaderIndices?: number[] | react_native_reanimated.SharedValue<number[] | undefined> | undefined;
37
160
  disableIntervalMomentum?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
38
161
  disableScrollViewPanResponder?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
39
162
  StickyHeaderComponent?: React.ComponentType<any> | react_native_reanimated.SharedValue<React.ComponentType<any> | undefined> | undefined;
@@ -137,26 +260,16 @@ declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendap
137
260
  bouncesZoom?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
138
261
  canCancelContentTouches?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
139
262
  centerContent?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
140
- contentInset?: Insets | react_native_reanimated.SharedValue<Insets | undefined> | undefined;
141
- contentOffset?: react_native.PointProp | react_native_reanimated.SharedValue<react_native.PointProp | undefined> | undefined;
142
263
  contentInsetAdjustmentBehavior?: "always" | "never" | "automatic" | "scrollableAxes" | react_native_reanimated.SharedValue<"always" | "never" | "automatic" | "scrollableAxes" | undefined> | undefined;
143
264
  directionalLockEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
144
- maintainVisibleContentPosition?: {
145
- autoscrollToTopThreshold?: number | null | undefined;
146
- minIndexForVisible: number;
147
- } | react_native_reanimated.SharedValue<{
148
- autoscrollToTopThreshold?: number | null | undefined;
149
- minIndexForVisible: number;
150
- } | null | undefined> | null | undefined;
151
265
  maximumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
152
266
  minimumZoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
153
267
  onScrollAnimationEnd?: (() => void) | react_native_reanimated.SharedValue<(() => void) | undefined> | undefined;
154
268
  pinchGestureEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
155
- scrollEventThrottle?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
156
269
  scrollIndicatorInsets?: Insets | react_native_reanimated.SharedValue<Insets | undefined> | undefined;
157
270
  scrollToOverflowEnabled?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
158
271
  scrollsToTop?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
159
- snapToAlignment?: "center" | "start" | "end" | react_native_reanimated.SharedValue<"center" | "start" | "end" | undefined> | undefined;
272
+ snapToAlignment?: "end" | "start" | "center" | react_native_reanimated.SharedValue<"end" | "start" | "center" | undefined> | undefined;
160
273
  onScrollToTop?: ((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | react_native_reanimated.SharedValue<((event: react_native.NativeSyntheticEvent<react_native.NativeScrollEvent>) => void) | undefined> | undefined;
161
274
  zoomScale?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
162
275
  endFillColor?: react_native.ColorValue | react_native_reanimated.SharedValue<react_native.ColorValue | undefined> | undefined;
@@ -166,8 +279,8 @@ declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendap
166
279
  fadingEdgeLength?: number | react_native_reanimated.SharedValue<number | undefined> | undefined;
167
280
  persistentScrollbar?: boolean | react_native_reanimated.SharedValue<boolean | undefined> | undefined;
168
281
  } & {
169
- style?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
170
282
  contentContainerStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
283
+ style?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<react_native.StyleProp<react_native.ViewStyle>>>;
171
284
  indicatorStyle?: react_native.StyleProp<react_native_reanimated.AnimatedStyle<"default" | "black" | "white" | undefined>>;
172
285
  } & {
173
286
  layout?: react_native_reanimated.BaseAnimationBuilder | react_native_reanimated.LayoutAnimationFunction | typeof react_native_reanimated.BaseAnimationBuilder;
@@ -177,122 +290,9 @@ declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendap
177
290
  sharedTransitionTag?: string;
178
291
  sharedTransitionStyle?: react_native_reanimated.SharedTransition;
179
292
  }> | undefined;
180
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<ItemT_1>) => React.ReactNode) | undefined;
181
- onItemSizeChanged?: ((info: {
182
- size: number;
183
- previous: number;
184
- index: number;
185
- itemKey: string;
186
- itemData: ItemT_1;
187
- }) => void) | undefined;
188
- ItemSeparatorComponent?: React.ComponentType<{
189
- leadingItem: ItemT_1;
190
- }> | undefined;
191
293
  } & {
192
294
  ref?: React.Ref<LegendListRef>;
193
- }) => React.ReactElement | null) | (<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
194
- alignItemsAtEnd?: boolean;
195
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
196
- data: readonly T[];
197
- drawDistance?: number;
198
- estimatedItemSize?: number;
199
- extraData?: any;
200
- getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
201
- initialContainerPoolRatio?: number | undefined;
202
- initialScrollOffset?: number;
203
- initialScrollIndex?: number;
204
- ItemSeparatorComponent?: React.ComponentType<{
205
- leadingItem: T;
206
- }> | undefined;
207
- keyExtractor?: ((item: T, index: number) => string) | undefined;
208
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
209
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
210
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
211
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
212
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
213
- maintainScrollAtEnd?: boolean;
214
- maintainScrollAtEndThreshold?: number;
215
- maintainVisibleContentPosition?: boolean;
216
- numColumns?: number;
217
- onEndReached?: ((info: {
218
- distanceFromEnd: number;
219
- }) => void) | null | undefined;
220
- onEndReachedThreshold?: number | null | undefined;
221
- onItemSizeChanged?: ((info: {
222
- size: number;
223
- previous: number;
224
- index: number;
225
- itemKey: string;
226
- itemData: T;
227
- }) => void) | undefined;
228
- onRefresh?: () => void;
229
- onStartReached?: ((info: {
230
- distanceFromStart: number;
231
- }) => void) | null | undefined;
232
- onStartReachedThreshold?: number | null | undefined;
233
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
234
- progressViewOffset?: number;
235
- recycleItems?: boolean;
236
- refScrollView?: React.Ref<react_native.ScrollView>;
237
- refreshing?: boolean;
238
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
239
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
240
- suggestEstimatedItemSize?: boolean;
241
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
242
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
243
- waitForInitialLayout?: boolean;
244
- } & React.RefAttributes<LegendListRef>) => React.ReactNode) | react_native.Animated.AnimatedComponent<(<T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
245
- alignItemsAtEnd?: boolean;
246
- columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
247
- data: readonly T[];
248
- drawDistance?: number;
249
- estimatedItemSize?: number;
250
- extraData?: any;
251
- getEstimatedItemSize?: ((index: number, item: T) => number) | undefined;
252
- initialContainerPoolRatio?: number | undefined;
253
- initialScrollOffset?: number;
254
- initialScrollIndex?: number;
255
- ItemSeparatorComponent?: React.ComponentType<{
256
- leadingItem: T;
257
- }> | undefined;
258
- keyExtractor?: ((item: T, index: number) => string) | undefined;
259
- ListEmptyComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
260
- ListFooterComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
261
- ListFooterComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
262
- ListHeaderComponent?: React.ComponentType<any> | React.ReactElement | null | undefined;
263
- ListHeaderComponentStyle?: react_native.StyleProp<react_native.ViewStyle> | undefined;
264
- maintainScrollAtEnd?: boolean;
265
- maintainScrollAtEndThreshold?: number;
266
- maintainVisibleContentPosition?: boolean;
267
- numColumns?: number;
268
- onEndReached?: ((info: {
269
- distanceFromEnd: number;
270
- }) => void) | null | undefined;
271
- onEndReachedThreshold?: number | null | undefined;
272
- onItemSizeChanged?: ((info: {
273
- size: number;
274
- previous: number;
275
- index: number;
276
- itemKey: string;
277
- itemData: T;
278
- }) => void) | undefined;
279
- onRefresh?: () => void;
280
- onStartReached?: ((info: {
281
- distanceFromStart: number;
282
- }) => void) | null | undefined;
283
- onStartReachedThreshold?: number | null | undefined;
284
- onViewableItemsChanged?: _legendapp_list.OnViewableItemsChanged | undefined;
285
- progressViewOffset?: number;
286
- recycleItems?: boolean;
287
- refScrollView?: React.Ref<react_native.ScrollView>;
288
- refreshing?: boolean;
289
- renderItem?: ((props: _legendapp_list.LegendListRenderItemProps<T>) => React.ReactNode) | undefined;
290
- renderScrollComponent?: (props: react_native.ScrollViewProps) => React.ReactElement<react_native.ScrollViewProps>;
291
- suggestEstimatedItemSize?: boolean;
292
- viewabilityConfig?: _legendapp_list.ViewabilityConfig;
293
- viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
294
- waitForInitialLayout?: boolean;
295
- } & React.RefAttributes<LegendListRef>) => React.ReactNode)> = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
295
+ }) => React.ReactElement | null) = <T>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
296
296
  alignItemsAtEnd?: boolean;
297
297
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
298
298
  data: readonly T[];
@@ -343,7 +343,7 @@ declare const LegendList: <ItemT, ListT extends (<ItemT_1>(props: Omit<_legendap
343
343
  viewabilityConfig?: _legendapp_list.ViewabilityConfig;
344
344
  viewabilityConfigCallbackPairs?: _legendapp_list.ViewabilityConfigCallbackPairs | undefined;
345
345
  waitForInitialLayout?: boolean;
346
- } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "stickyHeaderIndices" | "contentInset" | "contentOffset" | "maintainVisibleContentPosition"> & {
346
+ } & React.RefAttributes<LegendListRef>) => React.ReactNode>(props: Omit<Omit<react_native.ScrollViewProps, "scrollEventThrottle">, "contentOffset" | "contentInset" | "maintainVisibleContentPosition" | "stickyHeaderIndices"> & {
347
347
  alignItemsAtEnd?: boolean;
348
348
  columnWrapperStyle?: _legendapp_list.ColumnWrapperStyle;
349
349
  data: readonly ItemT[];