diff --git a/frontend/src/components/TicketListItem/index.js b/frontend/src/components/TicketListItem/index.js index b90122ad..7324e6f4 100644 --- a/frontend/src/components/TicketListItem/index.js +++ b/frontend/src/components/TicketListItem/index.js @@ -205,20 +205,29 @@ const TicketListItem = ({ ticket, userId, filteredTags }) => { const [uName, setUserName] = useState(null); useEffect(() => { + isMounted.current = true; + const delayDebounceFn = setTimeout(() => { const fetchTicket = async () => { + if (!isMounted.current) return; + try { const { data } = await api.get("/tickets/" + ticket.id); - setTag(data?.contact?.tags); + if (isMounted.current) { + setTag(data?.contact?.tags); + } } catch (err) { + if (isMounted.current) { + toastError(err); + } } }; fetchTicket(); }, 500); + return () => { - if (delayDebounceFn !== null) { - clearTimeout(delayDebounceFn); - } + clearTimeout(delayDebounceFn); + isMounted.current = false; }; }, [ticket.id, user, history]); diff --git a/frontend/src/components/TicketsList/index.js b/frontend/src/components/TicketsList/index.js index d3b78f15..6ca9bd3d 100644 --- a/frontend/src/components/TicketsList/index.js +++ b/frontend/src/components/TicketsList/index.js @@ -297,6 +297,9 @@ const TicketsList = (props) => { }); return () => { + socket.off("ticket"); + socket.off("appMessage"); + socket.off("contact"); socket.disconnect(); }; }, [status, showAll, user, selectedQueueIds]);