From 3f24eb566982ec7fbcc88a68cb54fe9b254a905a Mon Sep 17 00:00:00 2001 From: Lei OT Date: Fri, 8 Mar 2024 17:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=B3=BB=E7=BB=9F=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E7=9A=84ID,=20=E5=90=A6=E5=88=99=E6=94=B6=E8=B5=B7?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E5=BC=B9=E4=B8=8D=E5=87=BA=E6=9D=A5;=20?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E5=88=B0=E6=B6=88=E6=81=AF=E4=B9=8B=E5=90=8E?= =?UTF-8?q?,=20=E6=9C=AA=E8=AF=BB=E6=B8=85=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/msgUtils.js | 2 +- .../Components/ConversationsList.jsx | 22 +++++++++++-------- .../Components/MessagesWrapper.jsx | 13 ++++++++++- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/lib/msgUtils.js b/src/lib/msgUtils.js index 0899bc3..2fcd47d 100644 --- a/src/lib/msgUtils.js +++ b/src/lib/msgUtils.js @@ -498,7 +498,7 @@ export const handleNotification = (title, _options) => { var notification; const options = { requireInteraction: true, // 设置手动关闭 - tag: 'global-sales-notification', // 通知ID,同类通知建议设置相同ID,避免通知过多遮挡桌面 + // tag: 'global-sales-notification', // 通知ID,同类通知建议设置相同ID,避免通知过多遮挡桌面 // icon: '/favicon.ico', // 通知图标 ..._options, }; diff --git a/src/views/Conversations/Components/ConversationsList.jsx b/src/views/Conversations/Components/ConversationsList.jsx index 84e3835..fa19402 100644 --- a/src/views/Conversations/Components/ConversationsList.jsx +++ b/src/views/Conversations/Components/ConversationsList.jsx @@ -69,26 +69,30 @@ const Conversations = () => { receivedMessageList(item.sn, data); }; const switchConversation = async (item) => { - fetchCleanUnreadMsgCount({ opisn: item.opi_sn, whatsappid: item.whatsapp_phone_number }); + setCurrentConversation(item); const messagesList = activeConversations[`${item.sn}`] || []; if (messagesList.length < 20) { getMessages(item); } - if (String(item.sn) === String(currentConversation.sn)) { - return false; - } - setCurrentConversation(item); }; const onSwitchConversation = async (item) => { - if (!isEmpty(item.coli_sn)) { + switchConversation(item); + if (isEmpty(item.coli_sn)) { + navigate(`/order/chat`, { replace: true }); + } else { setSwitchToC(item); setShouldFetchCList(false); navigate(`/order/chat/${item.coli_sn}`, { replace: true }); - } else { - navigate(`/order/chat`, { replace: true }); } - switchConversation(item); + // if (!isEmpty(item.coli_sn)) { + // setSwitchToC(item); + // setShouldFetchCList(false); + // navigate(`/order/chat/${item.coli_sn}`, { replace: true }); + // } else { + // navigate(`/order/chat`, { replace: true }); + // } + // switchConversation(item); }; const handleConversationItemClose = async (item) => { diff --git a/src/views/Conversations/Components/MessagesWrapper.jsx b/src/views/Conversations/Components/MessagesWrapper.jsx index 84b1323..e99265b 100644 --- a/src/views/Conversations/Components/MessagesWrapper.jsx +++ b/src/views/Conversations/Components/MessagesWrapper.jsx @@ -1,12 +1,23 @@ -import { useRef, useState } from 'react'; +import { useRef, useState, useEffect } from 'react'; import useConversationStore from '@/stores/ConversationStore'; import { useShallow } from 'zustand/react/shallow'; import { Image, } from 'antd'; import MessagesList from './MessagesList'; +import { fetchCleanUnreadMsgCount } from '@/actions/ConversationActions'; const MessagesWrapper = () => { + const currentConversation = useConversationStore(useShallow((state) => state.currentConversation)); const activeMessages = useConversationStore(useShallow((state) => (state.currentConversation.sn && state.activeConversations[state.currentConversation.sn] ? state.activeConversations[state.currentConversation.sn]: []))); + useEffect(() => { + if (currentConversation.opi_sn && currentConversation.whatsapp_phone_number && activeMessages.length > 0) { + fetchCleanUnreadMsgCount({ opisn: currentConversation.opi_sn, whatsappid: currentConversation.whatsapp_phone_number }); + } + + return () => {}; + }, [activeMessages]); + + const reference = useRef(null); const [previewVisible, setPreviewVisible] = useState(false);