refactor requests

This commit is contained in:
nflnkr 2023-05-11 18:18:25 +03:00 committed by skeris
parent 028446f33d
commit 4e5c1edd66
2 changed files with 42 additions and 27 deletions

@ -80,6 +80,9 @@ export async function getTicketMessages({
useToken: true, useToken: true,
body, body,
signal, signal,
}).then((response) => {
const result = (response as any).data as GetMessagesResponse;
return result;
}); });
} }

@ -30,7 +30,12 @@ export default function Chat() {
const ticket = tickets.find(ticket => ticket.id === ticketId); const ticket = tickets.find(ticket => ticket.id === ticketId);
useEffect(function fetchTicketMessages() { useEffect(function scrollOnNewMessage() {
scrollToBottom();
}, [messages]);
useEffect(
function fetchTicketMessages() {
if (!ticketId) return; if (!ticketId) return;
const getTicketsBody: GetMessagesRequest = { const getTicketsBody: GetMessagesRequest = {
@ -47,7 +52,6 @@ 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");
@ -58,6 +62,7 @@ export default function Chat() {
return () => { return () => {
controller.abort(); controller.abort();
clearMessageState();
}; };
}, [messageApiPage, messagesPerPage, ticketId]); }, [messageApiPage, messagesPerPage, ticketId]);
@ -105,6 +110,7 @@ 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();
} }
}; };
@ -247,3 +253,9 @@ 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;
}