scroll chats to bottom when opening tools

This commit is contained in:
marlon-erler
2024-07-11 01:03:07 +02:00
parent d3604d474b
commit 885093a7b9
2 changed files with 19 additions and 10 deletions
+10 -4
View File
@@ -2,6 +2,7 @@ import * as React from "bloatless-react";
import { Chat, ChatMessage } from "../Model/chatModel";
import { isShowingChatTools } from "../Model/model";
import { translation } from "../translations";
export function ThreadView(chat: Chat) {
@@ -123,17 +124,22 @@ export function ThreadView(chat: Chat) {
);
function scrollToBottom() {
listWrapper.scrollTop = listWrapper.scrollHeight;
}
function scrollToBottomIfAppropriate() {
const scrollFromBottom =
listWrapper.scrollHeight -
(listWrapper.scrollTop + listWrapper.offsetHeight);
if (scrollFromBottom > 400) return;
listWrapper.scrollTop = listWrapper.scrollHeight;
scrollToBottom();
}
chat.messages.handleAddition(scrollToBottom);
chat.outbox.handleAddition(scrollToBottom);
setTimeout(() => (listWrapper.scrollTop = listWrapper.scrollHeight), 50);
chat.messages.handleAddition(scrollToBottomIfAppropriate);
chat.outbox.handleAddition(scrollToBottomIfAppropriate);
isShowingChatTools.subscribe(() => scrollToBottom());
setTimeout(() => scrollToBottom(), 50);
return listWrapper;
}