mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-20 20:59:16 +00:00
fix: always keep only 20 tickets in TicketsList
This commit is contained in:
@@ -11,7 +11,6 @@
|
|||||||
"@testing-library/user-event": "^7.2.1",
|
"@testing-library/user-event": "^7.2.1",
|
||||||
"axios": "^0.19.2",
|
"axios": "^0.19.2",
|
||||||
"date-fns": "^2.14.0",
|
"date-fns": "^2.14.0",
|
||||||
"dotenv": "^8.2.0",
|
|
||||||
"emoji-mart": "^3.0.0",
|
"emoji-mart": "^3.0.0",
|
||||||
"formik": "^2.1.5",
|
"formik": "^2.1.5",
|
||||||
"mic-recorder-to-mp3": "^2.2.1",
|
"mic-recorder-to-mp3": "^2.2.1",
|
||||||
|
|||||||
@@ -267,7 +267,7 @@ const MessagesList = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
fetchMessages();
|
fetchMessages();
|
||||||
}, 1000);
|
}, 500);
|
||||||
return () => clearTimeout(delayDebounceFn);
|
return () => clearTimeout(delayDebounceFn);
|
||||||
}, [pageNumber, ticketId, history]);
|
}, [pageNumber, ticketId, history]);
|
||||||
|
|
||||||
@@ -284,16 +284,19 @@ const MessagesList = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
socket.on("appMessage", data => {
|
socket.on("appMessage", data => {
|
||||||
if (data.action === "create" && !loading) {
|
if (loading) return;
|
||||||
|
|
||||||
|
if (data.action === "create") {
|
||||||
addMessage(data.message);
|
addMessage(data.message);
|
||||||
scrollToBottom();
|
scrollToBottom();
|
||||||
} else if (data.action === "update") {
|
}
|
||||||
|
if (data.action === "update") {
|
||||||
updateMessageAck(data.message);
|
updateMessageAck(data.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("contact", data => {
|
socket.on("contact", data => {
|
||||||
if (data.action === "update" && !loading) {
|
if (data.action === "update") {
|
||||||
setContact(data.contact);
|
setContact(data.contact);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -219,13 +219,17 @@ const Tickets = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
socket.on("ticket", data => {
|
socket.on("ticket", data => {
|
||||||
if (data.action === "updateUnread" && !loading) {
|
if (loading) return;
|
||||||
|
|
||||||
|
if (data.action === "updateUnread") {
|
||||||
resetUnreadMessages(data);
|
resetUnreadMessages(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.action === "updateStatus" || data.action === "create") {
|
if (data.action === "updateStatus" || data.action === "create") {
|
||||||
updateTickets(data);
|
updateTickets(data);
|
||||||
}
|
}
|
||||||
if (data.action === "delete" && !loading) {
|
|
||||||
|
if (data.action === "delete") {
|
||||||
deleteTicket(data);
|
deleteTicket(data);
|
||||||
if (ticketId && data.ticketId === +ticketId) {
|
if (ticketId && data.ticketId === +ticketId) {
|
||||||
toast.warn("O ticket que você estava foi deletado.");
|
toast.warn("O ticket que você estava foi deletado.");
|
||||||
@@ -235,7 +239,9 @@ const Tickets = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
socket.on("appMessage", data => {
|
socket.on("appMessage", data => {
|
||||||
if (data.action === "create" && !loading) {
|
if (loading) return;
|
||||||
|
|
||||||
|
if (data.action === "create") {
|
||||||
updateTickets(data);
|
updateTickets(data);
|
||||||
if (
|
if (
|
||||||
(ticketId &&
|
(ticketId &&
|
||||||
@@ -249,6 +255,8 @@ const Tickets = () => {
|
|||||||
});
|
});
|
||||||
}, [history, ticketId, userId, loading]);
|
}, [history, ticketId, userId, loading]);
|
||||||
|
|
||||||
|
console.log(tickets);
|
||||||
|
|
||||||
const loadMore = () => {
|
const loadMore = () => {
|
||||||
setPageNumber(prevState => prevState + 1);
|
setPageNumber(prevState => prevState + 1);
|
||||||
};
|
};
|
||||||
@@ -257,13 +265,17 @@ const Tickets = () => {
|
|||||||
setTickets(prevState => {
|
setTickets(prevState => {
|
||||||
const ticketIndex = prevState.findIndex(t => t.id === ticket.id);
|
const ticketIndex = prevState.findIndex(t => t.id === ticket.id);
|
||||||
|
|
||||||
if (ticketIndex === -1) {
|
if (prevState.length >= 20) {
|
||||||
return [ticket, ...prevState];
|
if (ticketIndex !== -1) {
|
||||||
|
let aux = [...prevState];
|
||||||
|
aux[ticketIndex] = ticket;
|
||||||
|
aux.unshift(aux.splice(ticketIndex, 1)[0]);
|
||||||
|
return aux;
|
||||||
|
} else {
|
||||||
|
return [ticket, ...prevState];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
let aux = [...prevState];
|
return [ticket, ...prevState];
|
||||||
aux[ticketIndex] = ticket;
|
|
||||||
aux.unshift(aux.splice(ticketIndex, 1)[0]);
|
|
||||||
return aux;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4158,7 +4158,7 @@ dotenv-expand@5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
|
resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
|
||||||
integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
|
integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
|
||||||
|
|
||||||
dotenv@8.2.0, dotenv@^8.2.0:
|
dotenv@8.2.0:
|
||||||
version "8.2.0"
|
version "8.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
||||||
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
||||||
|
|||||||
Reference in New Issue
Block a user