fix fetch on scroll
This commit is contained in:
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;
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user