shown consultant to last message
This commit is contained in:
parent
b989b55426
commit
1bd961fc75
@ -159,6 +159,7 @@ export default function Chat({ open = false, onclickArrow, sx }: Props) {
|
||||
process.env.REACT_APP_DOMAIN +
|
||||
`/heruvym/v1.0.0/ticket?ticket=${sessionData?.ticketId}&s=${sessionData?.sessionId}`,
|
||||
onNewData: (ticketMessages) => {
|
||||
console.log("ticketMessages useSSESubscription " + ticketMessages)
|
||||
const isTicketClosed = ticketMessages.some(
|
||||
(message) => message.session_id === "close"
|
||||
);
|
||||
@ -205,7 +206,7 @@ export default function Chat({ open = false, onclickArrow, sx }: Props) {
|
||||
const message = getMessageFromFetchError(error);
|
||||
if (message) enqueueSnackbar(message);
|
||||
},
|
||||
onFetchStateChange: () => {},
|
||||
onFetchStateChange: () => { },
|
||||
enabled: Boolean(user),
|
||||
});
|
||||
|
||||
@ -249,16 +250,33 @@ export default function Chat({ open = false, onclickArrow, sx }: Props) {
|
||||
|
||||
useEffect(() => {
|
||||
if (open) {
|
||||
if (user !== undefined && messages.length > 1) {
|
||||
console.log("SHOWN")
|
||||
console.log("user")
|
||||
console.log(user)
|
||||
console.log(messages[messages.length - 1])
|
||||
const newMessages = messages.filter(({ shown }) => shown.me !== 1);
|
||||
console.log("SHOWN")
|
||||
console.log("messages")
|
||||
console.log(messages)
|
||||
console.log("open")
|
||||
console.log(open)
|
||||
if (messages.length > 1) {
|
||||
|
||||
newMessages.map(async ({ id }) => {
|
||||
await shownMessage(id);
|
||||
});
|
||||
const last_message = messages[messages.length - 1].ticket_id === "111" ? messages.at(messages.length - 1) : messages.at(messages.length - 2)
|
||||
|
||||
console.log("last_message")
|
||||
console.log(last_message)
|
||||
|
||||
if (last_message) {
|
||||
console.log("if")
|
||||
console.log(((ticket.sessionData?.sessionId || user) !== last_message.user_id) && last_message.shown.me !== 1 && last_message.ticket_id !== "111")
|
||||
console.log(((ticket.sessionData?.sessionId || user) !== last_message.user_id))
|
||||
console.log(last_message.shown.me !== 1)
|
||||
|
||||
if (((ticket.sessionData?.sessionId || user) !== last_message.user_id) && last_message.shown.me !== 1 && last_message.ticket_id !== "111") {
|
||||
shownMessage(last_message.id);
|
||||
}
|
||||
|
||||
|
||||
console.log("user")
|
||||
console.log(user)
|
||||
console.log(messages[messages.length - 1])
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [open, messages]);
|
||||
@ -535,13 +553,6 @@ export default function Chat({ open = false, onclickArrow, sx }: Props) {
|
||||
/>
|
||||
);
|
||||
}
|
||||
console.log("isSelf " + message.message)
|
||||
console.log("ticket.sessionData?.sessionId " + ticket.sessionData?.sessionId)
|
||||
console.log("user_id ")
|
||||
console.log("message.user_id " + message.user_id)
|
||||
console.log("---------boolean result-----------")
|
||||
console.log((ticket.sessionData?.sessionId || user) ===
|
||||
message.user_id)
|
||||
return (
|
||||
<ChatMessage
|
||||
unAuthenticated
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { useState, useEffect, forwardRef } from "react";
|
||||
import { useState, useEffect, forwardRef, useMemo } from "react";
|
||||
import {
|
||||
Box,
|
||||
Fab,
|
||||
@ -71,6 +71,28 @@ export default function FloatingSupportChat() {
|
||||
},
|
||||
};
|
||||
|
||||
const unreadMessagesCount = useMemo(() => {
|
||||
let count = 0;
|
||||
|
||||
// Идём с конца массива к началу
|
||||
for (let i = messages.length - 1; i >= 0; i--) {
|
||||
const message = messages[i];
|
||||
|
||||
// Пропускаем сообщение с id "111"
|
||||
if (message.id === "111") continue;
|
||||
|
||||
// Если сообщение не прочитано (shown.me !== 1)
|
||||
if (message.shown.me !== 1) {
|
||||
count++;
|
||||
} else {
|
||||
// Встретили прочитанное сообщение - прекращаем подсчёт
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}, [messages]); // Зависимость от messages - пересчитывается при их изменении
|
||||
|
||||
useEffect(() => {
|
||||
const onResize = () => {
|
||||
if (document.fullscreenElement) {
|
||||
@ -153,7 +175,7 @@ export default function FloatingSupportChat() {
|
||||
/>
|
||||
)}
|
||||
<Badge
|
||||
badgeContent={messages.filter(({ shown }) => shown.me !== 1).length}
|
||||
badgeContent={unreadMessagesCount}
|
||||
sx={{
|
||||
"& .MuiBadge-badge": {
|
||||
display: isChatOpened ? "none" : "flex",
|
||||
|
Loading…
Reference in New Issue
Block a user