fix fetch on scroll

This commit is contained in:
nflnkr 2023-05-12 18:33:18 +03:00 committed by skeris
parent bec307569c
commit 208c7f69ff

@ -30,12 +30,7 @@ export default function Chat() {
const ticket = tickets.find(ticket => ticket.id === ticketId); const ticket = tickets.find(ticket => ticket.id === ticketId);
useEffect(function scrollOnNewMessage() { useEffect(function fetchTicketMessages() {
scrollToBottom();
}, [messages]);
useEffect(
function fetchTicketMessages() {
if (!ticketId) return; if (!ticketId) return;
const getTicketsBody: GetMessagesRequest = { const getTicketsBody: GetMessagesRequest = {
@ -52,6 +47,7 @@ export default function Chat() {
}).then(result => { }).then(result => {
console.log("GetMessagesResponse", result); console.log("GetMessagesResponse", result);
if (result?.length > 0) { if (result?.length > 0) {
if (chatBoxRef.current && chatBoxRef.current.scrollTop < 1) chatBoxRef.current.scrollTop = 1;
addOrUpdateMessages(result); addOrUpdateMessages(result);
setMessageFetchState("idle"); setMessageFetchState("idle");
} else setMessageFetchState("all fetched"); } else setMessageFetchState("all fetched");
@ -62,7 +58,6 @@ export default function Chat() {
return () => { return () => {
controller.abort(); controller.abort();
clearMessageState();
}; };
}, [messageApiPage, messagesPerPage, ticketId]); }, [messageApiPage, messagesPerPage, ticketId]);
@ -110,7 +105,6 @@ export default function Chat() {
if (messagesFetchStateRef.current !== "idle") return; if (messagesFetchStateRef.current !== "idle") return;
if (chatBox.scrollTop < chatBox.clientHeight) { if (chatBox.scrollTop < chatBox.clientHeight) {
if (chatBox.scrollTop < 1) chatBox.scrollTop = 50;
incrementMessageApiPage(); incrementMessageApiPage();
} }
}; };
@ -253,9 +247,3 @@ export default function Chat() {
</Box> </Box>
); );
} }
function sortMessagesByTime(message1: TicketMessage, message2: TicketMessage) {
const date1 = new Date(message1.created_at).getTime();
const date2 = new Date(message2.created_at).getTime();
return date1 - date2;
}