Skip to content

Commit ddc38aa

Browse files
committed
fix: flashlist mvcp disjoint set bug
1 parent ef75748 commit ddc38aa

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

package/src/components/MessageList/MessageFlashList.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
389389
return {
390390
animateAutoscrollToBottom: true,
391391
autoscrollToBottomThreshold: autoscrollToRecent ? 1 : undefined,
392+
disabled: !autoscrollToRecent,
392393
startRenderingFromBottom: true,
393394
};
394395
}, [autoscrollToRecent]);
@@ -412,7 +413,6 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
412413
(message) => message?.id === targetedMessage,
413414
);
414415

415-
setAutoscrollToRecent(false);
416416
// the message we want to scroll to has not been loaded in the state yet
417417
if (indexOfParentInMessageList === -1) {
418418
loadChannelAroundMessage({ messageId: targetedMessage, setTargetedMessage });
@@ -426,9 +426,8 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
426426
index: indexOfParentInMessageList,
427427
viewPosition: 0.5,
428428
});
429-
setAutoscrollToRecent(true);
430429
setTargetedMessage(undefined);
431-
}, 100);
430+
}, WAIT_FOR_SCROLL_TIMEOUT);
432431
}
433432
}, [loadChannelAroundMessage, processedMessageList, setTargetedMessage, targetedMessage]);
434433

@@ -491,8 +490,11 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
491490
if (notLatestSet) {
492491
latestNonCurrentMessageBeforeUpdateRef.current =
493492
channel.state.latestMessages[channel.state.latestMessages.length - 1];
493+
setAutoscrollToRecent(false);
494494
setScrollToBottomButtonVisible(true);
495495
return;
496+
} else {
497+
setAutoscrollToRecent(true);
496498
}
497499
const latestNonCurrentMessageBeforeUpdate = latestNonCurrentMessageBeforeUpdateRef.current;
498500
latestNonCurrentMessageBeforeUpdateRef.current = undefined;

0 commit comments

Comments
 (0)