|
|
@@ -1132,7 +1132,7 @@ const ChatScreen = ({ route }: { route: any }) => {
|
|
|
}, [chatData, isRefetching]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
- if (!isFetchedAfterMount || isFetching) return;
|
|
|
+ if (!isFetchedAfterMount || isFetching || didInitUnreadRef.current) return;
|
|
|
if (
|
|
|
giftedMessages?.length === 0 &&
|
|
|
!modalInfo.visible &&
|
|
|
@@ -1172,13 +1172,20 @@ const ChatScreen = ({ route }: { route: any }) => {
|
|
|
if (!older.length) {
|
|
|
setHasMoreMessages(false);
|
|
|
} else {
|
|
|
- setExtraMessages((prev) => [...prev, ...older]);
|
|
|
+ setExtraMessages((prev) => {
|
|
|
+ const existingIds = new Set([...allMessages, ...prev].map((m) => m.messageId));
|
|
|
+
|
|
|
+ const deduped = older.filter((m) => !existingIds.has(m.messageId));
|
|
|
+
|
|
|
+ return [...prev, ...deduped];
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
setIsLoadingEarlier(false);
|
|
|
};
|
|
|
|
|
|
if (visibleBeforeId && visibleBeforeId !== -1) {
|
|
|
+ console.log('visibleBeforeId', visibleBeforeId);
|
|
|
getExtraData();
|
|
|
}
|
|
|
}, [visibleBeforeId]);
|