Skip to content

Commit 1d25351

Browse files
authored
fix: onViewableItemsChanged invariant violation (#2986)
1 parent a6449a1 commit 1d25351

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

package/src/components/MessageList/MessageList.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ const MessageListWithContext = <
443443
* FlatList doesn't accept changeable function for onViewableItemsChanged prop.
444444
* Thus useRef.
445445
*/
446-
const onViewableItemsChanged = ({
446+
const unstableOnViewableItemsChanged = ({
447447
viewableItems,
448448
}: {
449449
viewableItems: ViewToken[] | undefined;
@@ -457,6 +457,16 @@ const MessageListWithContext = <
457457
updateStickyUnreadIndicator(viewableItems);
458458
};
459459

460+
const onViewableItemsChanged = useRef(unstableOnViewableItemsChanged);
461+
onViewableItemsChanged.current = unstableOnViewableItemsChanged;
462+
463+
const stableOnViwableItemsChanged = useCallback(
464+
({ viewableItems }: { viewableItems: ViewToken[] | undefined }) => {
465+
onViewableItemsChanged.current({ viewableItems });
466+
},
467+
[],
468+
);
469+
460470
/**
461471
* Resets the pagination trackers, doing so cancels currently scheduled loading more calls
462472
*/
@@ -1136,7 +1146,7 @@ const MessageListWithContext = <
11361146
onScrollEndDrag={onScrollEndDrag}
11371147
onScrollToIndexFailed={onScrollToIndexFailedRef.current}
11381148
onTouchEnd={dismissImagePicker}
1139-
onViewableItemsChanged={onViewableItemsChanged}
1149+
onViewableItemsChanged={stableOnViwableItemsChanged}
11401150
ref={refCallback}
11411151
renderItem={renderItem}
11421152
scrollEnabled={overlay === 'none'}

0 commit comments

Comments
 (0)