Use own scroll to bottom function instead of built-in. Closes #2500

This commit is contained in:
Gabe Kangas
2023-01-11 00:53:18 -08:00
parent b989e9a462
commit bb9b8a8123

View File

@@ -171,11 +171,15 @@ export const ChatContainer: FC<ChatContainerProps> = ({
}
};
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const scrollChatToBottom = (ref, behavior = 'smooth') => {
setTimeout(() => {
ref.current?.scrollToIndex({
index: messages.length - 1,
behavior,
});
}, 100);
setAtBottom(true);
};
@@ -192,6 +196,7 @@ export const ChatContainer: FC<ChatContainerProps> = ({
() => (
<>
<Virtuoso
id="virtuoso"
style={{ height }}
className={styles.virtuoso}
ref={chatContainerRef}
@@ -199,12 +204,12 @@ export const ChatContainer: FC<ChatContainerProps> = ({
itemContent={(index, message) => getViewForMessage(index, message)}
followOutput={(isAtBottom: boolean) => {
if (isAtBottom) {
return 'smooth';
scrollChatToBottom(chatContainerRef, 'smooth');
}
return false;
}}
alignToBottom
atBottomThreshold={50}
atBottomThreshold={70}
atBottomStateChange={bottom => {
setAtBottom(bottom);
}}