mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-20 12:49:32 +00:00
fix: changing between two tickets sometimes shows another tickets message
This commit is contained in:
@@ -263,10 +263,13 @@ const MessagesList = ({ ticketId, isGroup }) => {
|
|||||||
const [selectedMessageId, setSelectedMessageId] = useState(null);
|
const [selectedMessageId, setSelectedMessageId] = useState(null);
|
||||||
const [anchorEl, setAnchorEl] = useState(null);
|
const [anchorEl, setAnchorEl] = useState(null);
|
||||||
const messageOptionsMenuOpen = Boolean(anchorEl);
|
const messageOptionsMenuOpen = Boolean(anchorEl);
|
||||||
|
const currentTicketId = useRef(ticketId);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch({ type: "RESET" });
|
dispatch({ type: "RESET" });
|
||||||
setPageNumber(1);
|
setPageNumber(1);
|
||||||
|
|
||||||
|
currentTicketId.current = ticketId;
|
||||||
}, [ticketId]);
|
}, [ticketId]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -278,13 +281,17 @@ const MessagesList = ({ ticketId, isGroup }) => {
|
|||||||
params: { pageNumber },
|
params: { pageNumber },
|
||||||
});
|
});
|
||||||
|
|
||||||
dispatch({ type: "LOAD_MESSAGES", payload: data.messages });
|
if (currentTicketId.current === ticketId) {
|
||||||
setHasMore(data.hasMore);
|
dispatch({ type: "LOAD_MESSAGES", payload: data.messages });
|
||||||
|
setHasMore(data.hasMore);
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
|
||||||
if (pageNumber === 1 && data.messages.length > 1) {
|
if (pageNumber === 1 && data.messages.length > 1) {
|
||||||
scrollToBottom();
|
scrollToBottom();
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
setLoading(false);
|
||||||
const errorMsg = err.response?.data?.error;
|
const errorMsg = err.response?.data?.error;
|
||||||
if (errorMsg) {
|
if (errorMsg) {
|
||||||
if (i18n.exists(`backendErrors.${errorMsg}`)) {
|
if (i18n.exists(`backendErrors.${errorMsg}`)) {
|
||||||
@@ -297,11 +304,11 @@ const MessagesList = ({ ticketId, isGroup }) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
setLoading(false);
|
|
||||||
fetchMessages();
|
fetchMessages();
|
||||||
}, 500);
|
}, 500);
|
||||||
return () => clearTimeout(delayDebounceFn);
|
return () => {
|
||||||
|
clearTimeout(delayDebounceFn);
|
||||||
|
};
|
||||||
}, [pageNumber, ticketId]);
|
}, [pageNumber, ticketId]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ const Ticket = () => {
|
|||||||
setTicket(data);
|
setTicket(data);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
setLoading(false);
|
||||||
const errorMsg = err.response?.data?.error;
|
const errorMsg = err.response?.data?.error;
|
||||||
if (errorMsg) {
|
if (errorMsg) {
|
||||||
if (i18n.exists(`backendErrors.${errorMsg}`)) {
|
if (i18n.exists(`backendErrors.${errorMsg}`)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user