@legendapp/list 1.0.0-beta.4 → 1.0.0-beta.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.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.js +53 -15
- package/index.mjs +53 -15
- package/package.json +1 -1
- package/reanimated.d.mts +4 -1
- package/reanimated.d.ts +4 -1
package/index.d.mts
CHANGED
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -229,7 +229,7 @@ var Container = ({
|
|
|
229
229
|
if (isNewArchitecture) {
|
|
230
230
|
React5.useLayoutEffect(() => {
|
|
231
231
|
var _a, _b;
|
|
232
|
-
if (itemKey) {
|
|
232
|
+
if (itemKey !== void 0) {
|
|
233
233
|
const measured = (_b = (_a = ref.current) == null ? void 0 : _a.unstable_getBoundingClientRect) == null ? void 0 : _b.call(_a);
|
|
234
234
|
if (measured) {
|
|
235
235
|
const size = Math.floor(measured[horizontal ? "width" : "height"] * 8) / 8;
|
|
@@ -254,12 +254,24 @@ var Container = ({
|
|
|
254
254
|
var useAnimatedValue = reactNative.useAnimatedValue || ((initialValue) => {
|
|
255
255
|
return React5.useRef(new reactNative.Animated.Value(initialValue)).current;
|
|
256
256
|
});
|
|
257
|
-
function useValue$(key, getValue,
|
|
257
|
+
function useValue$(key, getValue, useMicrotask) {
|
|
258
258
|
var _a;
|
|
259
259
|
const ctx = useStateContext();
|
|
260
260
|
const animValue = useAnimatedValue((_a = getValue ? getValue(peek$(ctx, key)) : peek$(ctx, key)) != null ? _a : 0);
|
|
261
261
|
React5.useMemo(() => {
|
|
262
|
-
|
|
262
|
+
let newValue = void 0;
|
|
263
|
+
listen$(ctx, key, (v) => {
|
|
264
|
+
if (useMicrotask && newValue === void 0) {
|
|
265
|
+
queueMicrotask(() => {
|
|
266
|
+
animValue.setValue(newValue);
|
|
267
|
+
newValue = void 0;
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
newValue = getValue ? getValue(v) : v;
|
|
271
|
+
if (!useMicrotask) {
|
|
272
|
+
animValue.setValue(newValue);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
263
275
|
}, []);
|
|
264
276
|
return animValue;
|
|
265
277
|
}
|
|
@@ -274,7 +286,12 @@ var Containers = React5__namespace.memo(function Containers2({
|
|
|
274
286
|
getRenderedItem
|
|
275
287
|
}) {
|
|
276
288
|
const numContainers = use$("numContainersPooled");
|
|
277
|
-
const animSize = useValue$(
|
|
289
|
+
const animSize = useValue$(
|
|
290
|
+
"totalSize",
|
|
291
|
+
void 0,
|
|
292
|
+
/*useMicrotask*/
|
|
293
|
+
true
|
|
294
|
+
);
|
|
278
295
|
const animOpacity = waitForInitialLayout ? useValue$("containersDidLayout", (value) => value ? 1 : 0) : void 0;
|
|
279
296
|
const containers = [];
|
|
280
297
|
for (let i = 0; i < numContainers; i++) {
|
|
@@ -598,17 +615,22 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
598
615
|
renderItem,
|
|
599
616
|
estimatedItemSize,
|
|
600
617
|
getEstimatedItemSize,
|
|
601
|
-
onEndReached,
|
|
602
|
-
onStartReached,
|
|
603
618
|
ListEmptyComponent,
|
|
604
619
|
onItemSizeChanged,
|
|
605
620
|
scrollEventThrottle,
|
|
606
621
|
refScrollView,
|
|
607
622
|
waitForInitialLayout = true,
|
|
608
623
|
extraData,
|
|
624
|
+
onLayout: onLayoutProp,
|
|
609
625
|
...rest
|
|
610
626
|
} = props;
|
|
611
627
|
const { style, contentContainerStyle } = props;
|
|
628
|
+
const callbacks = React5.useRef({
|
|
629
|
+
onStartReached: rest.onStartReached,
|
|
630
|
+
onEndReached: rest.onEndReached
|
|
631
|
+
});
|
|
632
|
+
callbacks.current.onStartReached = rest.onStartReached;
|
|
633
|
+
callbacks.current.onEndReached = rest.onEndReached;
|
|
612
634
|
const ctx = useStateContext();
|
|
613
635
|
const refScroller = React5.useRef(null);
|
|
614
636
|
const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
|
|
@@ -689,7 +711,8 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
689
711
|
rowHeights: /* @__PURE__ */ new Map(),
|
|
690
712
|
startReachedBlockedByTimer: false,
|
|
691
713
|
scrollForNextCalculateItemsInView: void 0,
|
|
692
|
-
enableScrollForNextCalculateItemsInView: true
|
|
714
|
+
enableScrollForNextCalculateItemsInView: true,
|
|
715
|
+
minIndexSizeChanged: 0
|
|
693
716
|
};
|
|
694
717
|
refState.current.idsInFirstRender = new Set(data.map((_, i) => getId(i)));
|
|
695
718
|
if (maintainVisibleContentPosition) {
|
|
@@ -851,8 +874,11 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
851
874
|
let startBufferedId = null;
|
|
852
875
|
let endNoBuffer = null;
|
|
853
876
|
let endBuffered = null;
|
|
854
|
-
|
|
855
|
-
|
|
877
|
+
let loopStart = startBufferedIdOrig ? state.indexByKey.get(startBufferedIdOrig) || 0 : 0;
|
|
878
|
+
if (state.minIndexSizeChanged !== void 0) {
|
|
879
|
+
loopStart = Math.min(state.minIndexSizeChanged, loopStart);
|
|
880
|
+
state.minIndexSizeChanged = void 0;
|
|
881
|
+
}
|
|
856
882
|
const anchorElementIndex = getAnchorElementIndex();
|
|
857
883
|
for (let i = loopStart; i >= 0; i--) {
|
|
858
884
|
const id = getId(i);
|
|
@@ -1096,6 +1122,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1096
1122
|
if (refState.current) {
|
|
1097
1123
|
refState.current.isAtBottom = distanceFromEnd < scrollLength * maintainScrollAtEndThreshold;
|
|
1098
1124
|
}
|
|
1125
|
+
const { onEndReached } = callbacks.current;
|
|
1099
1126
|
if (onEndReached) {
|
|
1100
1127
|
if (!refState.current.isEndReached) {
|
|
1101
1128
|
if (distanceFromEnd < onEndReachedThreshold * scrollLength) {
|
|
@@ -1117,6 +1144,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1117
1144
|
const { scrollLength, scroll } = refState.current;
|
|
1118
1145
|
const distanceFromTop = scroll;
|
|
1119
1146
|
refState.current.isAtTop = distanceFromTop < 0;
|
|
1147
|
+
const { onStartReached } = callbacks.current;
|
|
1120
1148
|
if (onStartReached) {
|
|
1121
1149
|
if (!refState.current.isStartReached && !refState.current.startReachedBlockedByTimer) {
|
|
1122
1150
|
if (distanceFromTop < onStartReachedThreshold * scrollLength) {
|
|
@@ -1145,12 +1173,12 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1145
1173
|
const itemKey = peek$(ctx, `containerItemKey${i}`);
|
|
1146
1174
|
if (!keyExtractorProp || itemKey && state.indexByKey.get(itemKey) === void 0) {
|
|
1147
1175
|
set$(ctx, `containerItemKey${i}`, void 0);
|
|
1176
|
+
set$(ctx, `containerItemData${i}`, void 0);
|
|
1148
1177
|
set$(ctx, `containerPosition${i}`, ANCHORED_POSITION_OUT_OF_VIEW);
|
|
1149
1178
|
set$(ctx, `containerColumn${i}`, -1);
|
|
1150
1179
|
}
|
|
1151
1180
|
}
|
|
1152
1181
|
if (!keyExtractorProp) {
|
|
1153
|
-
state.sizes.clear();
|
|
1154
1182
|
state.positions.clear();
|
|
1155
1183
|
}
|
|
1156
1184
|
calculateItemsInView(state.scrollVelocity);
|
|
@@ -1166,7 +1194,6 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1166
1194
|
const isFirst = !refState.current.renderItem;
|
|
1167
1195
|
if (isFirst || data !== refState.current.data || numColumnsProp !== peek$(ctx, "numColumns")) {
|
|
1168
1196
|
if (!keyExtractorProp && !isFirst && data !== refState.current.data) {
|
|
1169
|
-
refState.current.sizes.clear();
|
|
1170
1197
|
refState.current.positions.clear();
|
|
1171
1198
|
}
|
|
1172
1199
|
refState.current.data = data;
|
|
@@ -1178,6 +1205,13 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1178
1205
|
let maxSizeInRow = 0;
|
|
1179
1206
|
for (let i = 0; i < data.length; i++) {
|
|
1180
1207
|
const key = getId(i);
|
|
1208
|
+
if (__DEV__) {
|
|
1209
|
+
if (indexByKey.has(key)) {
|
|
1210
|
+
console.error(
|
|
1211
|
+
`[legend-list] Error: Detected overlapping key (${key}) which causes missing items and gaps and other terrrible things. Check that keyExtractor returns unique values.`
|
|
1212
|
+
);
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1181
1215
|
indexByKey.set(key, i);
|
|
1182
1216
|
if (refState.current.positions.get(key) != null && refState.current.indexByKey.get(key) === i) {
|
|
1183
1217
|
newPositions.set(key, refState.current.positions.get(key));
|
|
@@ -1316,6 +1350,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1316
1350
|
const { sizes, indexByKey, columns, sizesLaidOut } = state;
|
|
1317
1351
|
const index = indexByKey.get(itemKey);
|
|
1318
1352
|
const numColumns = peek$(ctx, "numColumns");
|
|
1353
|
+
state.minIndexSizeChanged = state.minIndexSizeChanged !== void 0 ? Math.min(state.minIndexSizeChanged, index) : index;
|
|
1319
1354
|
const row = Math.floor(index / numColumns);
|
|
1320
1355
|
const prevSize = getRowHeight(row);
|
|
1321
1356
|
if (!prevSize || Math.abs(prevSize - size) > 0.5) {
|
|
@@ -1398,6 +1433,9 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1398
1433
|
);
|
|
1399
1434
|
}
|
|
1400
1435
|
}
|
|
1436
|
+
if (onLayoutProp) {
|
|
1437
|
+
onLayoutProp(event);
|
|
1438
|
+
}
|
|
1401
1439
|
}, []);
|
|
1402
1440
|
const handleScroll = React5.useCallback(
|
|
1403
1441
|
(event, fromSelf) => {
|
|
@@ -1451,9 +1489,9 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1451
1489
|
};
|
|
1452
1490
|
return {
|
|
1453
1491
|
getNativeScrollRef: () => refScroller.current,
|
|
1454
|
-
getScrollableNode: refScroller.current.getScrollableNode,
|
|
1455
|
-
getScrollResponder: refScroller.current.getScrollResponder,
|
|
1456
|
-
flashScrollIndicators: refScroller.current.flashScrollIndicators,
|
|
1492
|
+
getScrollableNode: () => refScroller.current.getScrollableNode(),
|
|
1493
|
+
getScrollResponder: () => refScroller.current.getScrollResponder(),
|
|
1494
|
+
flashScrollIndicators: () => refScroller.current.flashScrollIndicators(),
|
|
1457
1495
|
scrollToIndex,
|
|
1458
1496
|
scrollToOffset: ({ offset, animated }) => {
|
|
1459
1497
|
const offsetObj = horizontal ? { x: offset, y: 0 } : { x: 0, y: offset };
|
|
@@ -1465,7 +1503,7 @@ var LegendListInner = React5.forwardRef(function LegendListInner2(props, forward
|
|
|
1465
1503
|
scrollToIndex({ index, animated });
|
|
1466
1504
|
}
|
|
1467
1505
|
},
|
|
1468
|
-
scrollToEnd: refScroller.current.scrollToEnd
|
|
1506
|
+
scrollToEnd: () => refScroller.current.scrollToEnd()
|
|
1469
1507
|
};
|
|
1470
1508
|
},
|
|
1471
1509
|
[]
|
package/index.mjs
CHANGED
|
@@ -208,7 +208,7 @@ var Container = ({
|
|
|
208
208
|
if (isNewArchitecture) {
|
|
209
209
|
useLayoutEffect(() => {
|
|
210
210
|
var _a, _b;
|
|
211
|
-
if (itemKey) {
|
|
211
|
+
if (itemKey !== void 0) {
|
|
212
212
|
const measured = (_b = (_a = ref.current) == null ? void 0 : _a.unstable_getBoundingClientRect) == null ? void 0 : _b.call(_a);
|
|
213
213
|
if (measured) {
|
|
214
214
|
const size = Math.floor(measured[horizontal ? "width" : "height"] * 8) / 8;
|
|
@@ -233,12 +233,24 @@ var Container = ({
|
|
|
233
233
|
var useAnimatedValue = useAnimatedValue$1 || ((initialValue) => {
|
|
234
234
|
return useRef(new Animated.Value(initialValue)).current;
|
|
235
235
|
});
|
|
236
|
-
function useValue$(key, getValue,
|
|
236
|
+
function useValue$(key, getValue, useMicrotask) {
|
|
237
237
|
var _a;
|
|
238
238
|
const ctx = useStateContext();
|
|
239
239
|
const animValue = useAnimatedValue((_a = getValue ? getValue(peek$(ctx, key)) : peek$(ctx, key)) != null ? _a : 0);
|
|
240
240
|
useMemo(() => {
|
|
241
|
-
|
|
241
|
+
let newValue = void 0;
|
|
242
|
+
listen$(ctx, key, (v) => {
|
|
243
|
+
if (useMicrotask && newValue === void 0) {
|
|
244
|
+
queueMicrotask(() => {
|
|
245
|
+
animValue.setValue(newValue);
|
|
246
|
+
newValue = void 0;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
newValue = getValue ? getValue(v) : v;
|
|
250
|
+
if (!useMicrotask) {
|
|
251
|
+
animValue.setValue(newValue);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
242
254
|
}, []);
|
|
243
255
|
return animValue;
|
|
244
256
|
}
|
|
@@ -253,7 +265,12 @@ var Containers = React5.memo(function Containers2({
|
|
|
253
265
|
getRenderedItem
|
|
254
266
|
}) {
|
|
255
267
|
const numContainers = use$("numContainersPooled");
|
|
256
|
-
const animSize = useValue$(
|
|
268
|
+
const animSize = useValue$(
|
|
269
|
+
"totalSize",
|
|
270
|
+
void 0,
|
|
271
|
+
/*useMicrotask*/
|
|
272
|
+
true
|
|
273
|
+
);
|
|
257
274
|
const animOpacity = waitForInitialLayout ? useValue$("containersDidLayout", (value) => value ? 1 : 0) : void 0;
|
|
258
275
|
const containers = [];
|
|
259
276
|
for (let i = 0; i < numContainers; i++) {
|
|
@@ -577,17 +594,22 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
577
594
|
renderItem,
|
|
578
595
|
estimatedItemSize,
|
|
579
596
|
getEstimatedItemSize,
|
|
580
|
-
onEndReached,
|
|
581
|
-
onStartReached,
|
|
582
597
|
ListEmptyComponent,
|
|
583
598
|
onItemSizeChanged,
|
|
584
599
|
scrollEventThrottle,
|
|
585
600
|
refScrollView,
|
|
586
601
|
waitForInitialLayout = true,
|
|
587
602
|
extraData,
|
|
603
|
+
onLayout: onLayoutProp,
|
|
588
604
|
...rest
|
|
589
605
|
} = props;
|
|
590
606
|
const { style, contentContainerStyle } = props;
|
|
607
|
+
const callbacks = useRef({
|
|
608
|
+
onStartReached: rest.onStartReached,
|
|
609
|
+
onEndReached: rest.onEndReached
|
|
610
|
+
});
|
|
611
|
+
callbacks.current.onStartReached = rest.onStartReached;
|
|
612
|
+
callbacks.current.onEndReached = rest.onEndReached;
|
|
591
613
|
const ctx = useStateContext();
|
|
592
614
|
const refScroller = useRef(null);
|
|
593
615
|
const scrollBuffer = drawDistance != null ? drawDistance : DEFAULT_DRAW_DISTANCE;
|
|
@@ -668,7 +690,8 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
668
690
|
rowHeights: /* @__PURE__ */ new Map(),
|
|
669
691
|
startReachedBlockedByTimer: false,
|
|
670
692
|
scrollForNextCalculateItemsInView: void 0,
|
|
671
|
-
enableScrollForNextCalculateItemsInView: true
|
|
693
|
+
enableScrollForNextCalculateItemsInView: true,
|
|
694
|
+
minIndexSizeChanged: 0
|
|
672
695
|
};
|
|
673
696
|
refState.current.idsInFirstRender = new Set(data.map((_, i) => getId(i)));
|
|
674
697
|
if (maintainVisibleContentPosition) {
|
|
@@ -830,8 +853,11 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
830
853
|
let startBufferedId = null;
|
|
831
854
|
let endNoBuffer = null;
|
|
832
855
|
let endBuffered = null;
|
|
833
|
-
|
|
834
|
-
|
|
856
|
+
let loopStart = startBufferedIdOrig ? state.indexByKey.get(startBufferedIdOrig) || 0 : 0;
|
|
857
|
+
if (state.minIndexSizeChanged !== void 0) {
|
|
858
|
+
loopStart = Math.min(state.minIndexSizeChanged, loopStart);
|
|
859
|
+
state.minIndexSizeChanged = void 0;
|
|
860
|
+
}
|
|
835
861
|
const anchorElementIndex = getAnchorElementIndex();
|
|
836
862
|
for (let i = loopStart; i >= 0; i--) {
|
|
837
863
|
const id = getId(i);
|
|
@@ -1075,6 +1101,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1075
1101
|
if (refState.current) {
|
|
1076
1102
|
refState.current.isAtBottom = distanceFromEnd < scrollLength * maintainScrollAtEndThreshold;
|
|
1077
1103
|
}
|
|
1104
|
+
const { onEndReached } = callbacks.current;
|
|
1078
1105
|
if (onEndReached) {
|
|
1079
1106
|
if (!refState.current.isEndReached) {
|
|
1080
1107
|
if (distanceFromEnd < onEndReachedThreshold * scrollLength) {
|
|
@@ -1096,6 +1123,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1096
1123
|
const { scrollLength, scroll } = refState.current;
|
|
1097
1124
|
const distanceFromTop = scroll;
|
|
1098
1125
|
refState.current.isAtTop = distanceFromTop < 0;
|
|
1126
|
+
const { onStartReached } = callbacks.current;
|
|
1099
1127
|
if (onStartReached) {
|
|
1100
1128
|
if (!refState.current.isStartReached && !refState.current.startReachedBlockedByTimer) {
|
|
1101
1129
|
if (distanceFromTop < onStartReachedThreshold * scrollLength) {
|
|
@@ -1124,12 +1152,12 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1124
1152
|
const itemKey = peek$(ctx, `containerItemKey${i}`);
|
|
1125
1153
|
if (!keyExtractorProp || itemKey && state.indexByKey.get(itemKey) === void 0) {
|
|
1126
1154
|
set$(ctx, `containerItemKey${i}`, void 0);
|
|
1155
|
+
set$(ctx, `containerItemData${i}`, void 0);
|
|
1127
1156
|
set$(ctx, `containerPosition${i}`, ANCHORED_POSITION_OUT_OF_VIEW);
|
|
1128
1157
|
set$(ctx, `containerColumn${i}`, -1);
|
|
1129
1158
|
}
|
|
1130
1159
|
}
|
|
1131
1160
|
if (!keyExtractorProp) {
|
|
1132
|
-
state.sizes.clear();
|
|
1133
1161
|
state.positions.clear();
|
|
1134
1162
|
}
|
|
1135
1163
|
calculateItemsInView(state.scrollVelocity);
|
|
@@ -1145,7 +1173,6 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1145
1173
|
const isFirst = !refState.current.renderItem;
|
|
1146
1174
|
if (isFirst || data !== refState.current.data || numColumnsProp !== peek$(ctx, "numColumns")) {
|
|
1147
1175
|
if (!keyExtractorProp && !isFirst && data !== refState.current.data) {
|
|
1148
|
-
refState.current.sizes.clear();
|
|
1149
1176
|
refState.current.positions.clear();
|
|
1150
1177
|
}
|
|
1151
1178
|
refState.current.data = data;
|
|
@@ -1157,6 +1184,13 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1157
1184
|
let maxSizeInRow = 0;
|
|
1158
1185
|
for (let i = 0; i < data.length; i++) {
|
|
1159
1186
|
const key = getId(i);
|
|
1187
|
+
if (__DEV__) {
|
|
1188
|
+
if (indexByKey.has(key)) {
|
|
1189
|
+
console.error(
|
|
1190
|
+
`[legend-list] Error: Detected overlapping key (${key}) which causes missing items and gaps and other terrrible things. Check that keyExtractor returns unique values.`
|
|
1191
|
+
);
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1160
1194
|
indexByKey.set(key, i);
|
|
1161
1195
|
if (refState.current.positions.get(key) != null && refState.current.indexByKey.get(key) === i) {
|
|
1162
1196
|
newPositions.set(key, refState.current.positions.get(key));
|
|
@@ -1295,6 +1329,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1295
1329
|
const { sizes, indexByKey, columns, sizesLaidOut } = state;
|
|
1296
1330
|
const index = indexByKey.get(itemKey);
|
|
1297
1331
|
const numColumns = peek$(ctx, "numColumns");
|
|
1332
|
+
state.minIndexSizeChanged = state.minIndexSizeChanged !== void 0 ? Math.min(state.minIndexSizeChanged, index) : index;
|
|
1298
1333
|
const row = Math.floor(index / numColumns);
|
|
1299
1334
|
const prevSize = getRowHeight(row);
|
|
1300
1335
|
if (!prevSize || Math.abs(prevSize - size) > 0.5) {
|
|
@@ -1377,6 +1412,9 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1377
1412
|
);
|
|
1378
1413
|
}
|
|
1379
1414
|
}
|
|
1415
|
+
if (onLayoutProp) {
|
|
1416
|
+
onLayoutProp(event);
|
|
1417
|
+
}
|
|
1380
1418
|
}, []);
|
|
1381
1419
|
const handleScroll = useCallback(
|
|
1382
1420
|
(event, fromSelf) => {
|
|
@@ -1430,9 +1468,9 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1430
1468
|
};
|
|
1431
1469
|
return {
|
|
1432
1470
|
getNativeScrollRef: () => refScroller.current,
|
|
1433
|
-
getScrollableNode: refScroller.current.getScrollableNode,
|
|
1434
|
-
getScrollResponder: refScroller.current.getScrollResponder,
|
|
1435
|
-
flashScrollIndicators: refScroller.current.flashScrollIndicators,
|
|
1471
|
+
getScrollableNode: () => refScroller.current.getScrollableNode(),
|
|
1472
|
+
getScrollResponder: () => refScroller.current.getScrollResponder(),
|
|
1473
|
+
flashScrollIndicators: () => refScroller.current.flashScrollIndicators(),
|
|
1436
1474
|
scrollToIndex,
|
|
1437
1475
|
scrollToOffset: ({ offset, animated }) => {
|
|
1438
1476
|
const offsetObj = horizontal ? { x: offset, y: 0 } : { x: 0, y: offset };
|
|
@@ -1444,7 +1482,7 @@ var LegendListInner = forwardRef(function LegendListInner2(props, forwardedRef)
|
|
|
1444
1482
|
scrollToIndex({ index, animated });
|
|
1445
1483
|
}
|
|
1446
1484
|
},
|
|
1447
|
-
scrollToEnd: refScroller.current.scrollToEnd
|
|
1485
|
+
scrollToEnd: () => refScroller.current.scrollToEnd()
|
|
1448
1486
|
};
|
|
1449
1487
|
},
|
|
1450
1488
|
[]
|
package/package.json
CHANGED
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
|
-
|
|
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
|
-
|
|
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 };
|