fix floating support chat
Some checks failed
Deploy / CreateImage (push) Failing after 50s
Deploy / DeployService (push) Has been skipped

This commit is contained in:
Nastya 2025-07-23 12:05:33 +03:00
parent ac692fafd3
commit d371d666aa
3 changed files with 23 additions and 19 deletions

@ -30,7 +30,18 @@ interface Props {
sendFile: (a: File | undefined) => Promise<void>; sendFile: (a: File | undefined) => Promise<void>;
} }
const greetingMessage = "Здравствуйте, задайте ваш вопрос и наш оператор вам ответит в течение 10 минут"; const greetingMessage: TicketMessage = {
id: "greeting",
ticket_id: "",
user_id: "system",
session_id: "",
message: "Здравствуйте, задайте ваш вопрос и наш оператор вам ответит в течение 10 минут",
files: [],
shown: {},
request_screenshot: "",
created_at: new Date().toISOString(),
system: false
};
export default function Chat({ export default function Chat({
open = false, open = false,
@ -197,10 +208,7 @@ export default function Chat({
> >
{ticket.sessionData?.ticketId && {ticket.sessionData?.ticketId &&
messages.map((message) => { messages.map((message) => {
const isSelf = useMemo(() => const isSelf = (ticket.sessionData?.sessionId || user) === message.user_id;
(ticket.sessionData?.sessionId || user) === message.user_id,
[ticket.sessionData?.sessionId, user, message.user_id]
);
return ( return (
<ChatMessageRenderer <ChatMessageRenderer
@ -213,10 +221,7 @@ export default function Chat({
{!ticket.sessionData?.ticketId && ( {!ticket.sessionData?.ticketId && (
<ChatMessageRenderer <ChatMessageRenderer
message={greetingMessage} message={greetingMessage}
isSelf={useMemo(() => isSelf={false}
(ticket.sessionData?.sessionId || user) === greetingMessage.user_id,
[ticket.sessionData?.sessionId, user, greetingMessage.user_id]
)}
/> />
)} )}
</Box> </Box>

@ -130,9 +130,15 @@ export default () => {
({ shown }) => shown?.me !== 1, ({ shown }) => shown?.me !== 1,
); );
newMessages.forEach(({ id, user_id }) => { // Находим последнее сообщение, которое не от пользователя
if ((ticket.sessionData?.sessionId || user) === user_id) shownMessage(id); const lastNonUserMessage = newMessages
}); .filter(({ user_id }) => (ticket.sessionData?.sessionId || user) !== user_id)
.pop();
// Отправляем shown только на последнее сообщение, которое не от пользователя
if (lastNonUserMessage) {
shownMessage(lastNonUserMessage.id);
}
} }
}, [isChatOpened, ticket.messages]); }, [isChatOpened, ticket.messages]);

@ -28,13 +28,6 @@ export const useAfterPay = () => {
let URLadditionalinformation = searchParams.get("additionalinformation");//его токен let URLadditionalinformation = searchParams.get("additionalinformation");//его токен
useEffect(() => { useEffect(() => {
console.log("useAutoPay: Processing return from payment", {
URLaction,
URLuserId,
URLadditionalinformation,
userId,
wayback: searchParams.get("wayback")
});
setSearchParams({}, { replace: true }); setSearchParams({}, { replace: true });