@legendapp/list 2.0.0-beta.1 → 2.0.0-beta.3

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
@@ -65,6 +65,11 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
65
65
  * @default false
66
66
  */
67
67
  alignItemsAtEnd?: boolean;
68
+ /**
69
+ * If true, enables using average sizes for performance optimization.
70
+ * @default true
71
+ */
72
+ enableAverages?: boolean;
68
73
  /**
69
74
  * Style applied to each column's wrapper view.
70
75
  */
@@ -392,6 +397,7 @@ interface InternalState {
392
397
  stickyIndicesSet: Set<number>;
393
398
  stickyIndicesArr: number[];
394
399
  itemsAreEqual: LegendListProps["itemsAreEqual"];
400
+ enableAverages: boolean;
395
401
  };
396
402
  }
397
403
  interface ViewableRange<T> {
package/index.d.ts CHANGED
@@ -65,6 +65,11 @@ interface LegendListSpecificProps<ItemT, TItemType extends string | undefined> {
65
65
  * @default false
66
66
  */
67
67
  alignItemsAtEnd?: boolean;
68
+ /**
69
+ * If true, enables using average sizes for performance optimization.
70
+ * @default true
71
+ */
72
+ enableAverages?: boolean;
68
73
  /**
69
74
  * Style applied to each column's wrapper view.
70
75
  */
@@ -392,6 +397,7 @@ interface InternalState {
392
397
  stickyIndicesSet: Set<number>;
393
398
  stickyIndicesArr: number[];
394
399
  itemsAreEqual: LegendListProps["itemsAreEqual"];
400
+ enableAverages: boolean;
395
401
  };
396
402
  }
397
403
  interface ViewableRange<T> {
package/index.js CHANGED
@@ -1239,13 +1239,13 @@ function updateAllPositions(ctx, state, dataChanged) {
1239
1239
  firstFullyOnScreenIndex,
1240
1240
  idCache,
1241
1241
  sizesKnown,
1242
- props: { getEstimatedItemSize, snapToIndices }
1242
+ props: { getEstimatedItemSize, snapToIndices, enableAverages }
1243
1243
  } = state;
1244
1244
  const data = state.props.data;
1245
1245
  const numColumns = peek$(ctx, "numColumns");
1246
1246
  const indexByKeyForChecking = __DEV__ ? /* @__PURE__ */ new Map() : void 0;
1247
1247
  const scrollVelocity = getScrollVelocity(state);
1248
- const useAverageSize = !getEstimatedItemSize;
1248
+ const useAverageSize = enableAverages && !getEstimatedItemSize;
1249
1249
  const itemType = "";
1250
1250
  let averageSize = (_a = averageSizes[itemType]) == null ? void 0 : _a.avg;
1251
1251
  if (averageSize !== void 0) {
@@ -2637,6 +2637,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2637
2637
  contentContainerStyle: contentContainerStyleProp,
2638
2638
  data: dataProp = [],
2639
2639
  drawDistance = 250,
2640
+ enableAverages = true,
2640
2641
  estimatedItemSize: estimatedItemSizeProp,
2641
2642
  estimatedListSize,
2642
2643
  extraData,
@@ -2760,6 +2761,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2760
2761
  state.props = {
2761
2762
  alignItemsAtEnd,
2762
2763
  data: dataProp,
2764
+ enableAverages,
2763
2765
  estimatedItemSize,
2764
2766
  getEstimatedItemSize,
2765
2767
  getFixedItemSize,
package/index.mjs CHANGED
@@ -1218,13 +1218,13 @@ function updateAllPositions(ctx, state, dataChanged) {
1218
1218
  firstFullyOnScreenIndex,
1219
1219
  idCache,
1220
1220
  sizesKnown,
1221
- props: { getEstimatedItemSize, snapToIndices }
1221
+ props: { getEstimatedItemSize, snapToIndices, enableAverages }
1222
1222
  } = state;
1223
1223
  const data = state.props.data;
1224
1224
  const numColumns = peek$(ctx, "numColumns");
1225
1225
  const indexByKeyForChecking = __DEV__ ? /* @__PURE__ */ new Map() : void 0;
1226
1226
  const scrollVelocity = getScrollVelocity(state);
1227
- const useAverageSize = !getEstimatedItemSize;
1227
+ const useAverageSize = enableAverages && !getEstimatedItemSize;
1228
1228
  const itemType = "";
1229
1229
  let averageSize = (_a = averageSizes[itemType]) == null ? void 0 : _a.avg;
1230
1230
  if (averageSize !== void 0) {
@@ -2616,6 +2616,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2616
2616
  contentContainerStyle: contentContainerStyleProp,
2617
2617
  data: dataProp = [],
2618
2618
  drawDistance = 250,
2619
+ enableAverages = true,
2619
2620
  estimatedItemSize: estimatedItemSizeProp,
2620
2621
  estimatedListSize,
2621
2622
  extraData,
@@ -2739,6 +2740,7 @@ var LegendListInner = typedForwardRef(function LegendListInner2(props, forwarded
2739
2740
  state.props = {
2740
2741
  alignItemsAtEnd,
2741
2742
  data: dataProp,
2743
+ enableAverages,
2742
2744
  estimatedItemSize,
2743
2745
  getEstimatedItemSize,
2744
2746
  getFixedItemSize,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/list",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.3",
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,