fix: 发送消息之后, 切换会话, 消息列表没有清除

2.0/wai-server
Lei OT 10 months ago
parent 73cb185524
commit d65e3de4db

@ -353,13 +353,13 @@ const messageSlice = (set, get) => ({
// 更新状态
// * 已读的不再更新状态, 有时候投递结果在已读之后返回
// if (ele.id === ele.actionId && ele.actionId === message.actionId) {
if (ele.actionId === message.actionId) {
// console.log('actionID', message, ele)
// WABA: 同步返回, 根据actionId 更新消息的id
if (ele.actionId === message.actionId && !isEmpty(ele.actionId) && !isEmpty(message.actionId)) {
// console.log('actionID', message.actionId, ele.actionId)
// WABA: 同步返回, 根据actionId 更新消息的id;
const toUpdateFields = pick(message, ['msgOrigin', 'id', 'status', 'dateString', 'replyButton', 'coli_id', 'coli_sn']);
return { ...ele, ...toUpdateFields, status: ele.status === 'read' ? ele.status : message.status, };
} else if (String(ele.id) === String(message.id)) {
// console.log('id', message, ele)
// console.log('id', message.id, ele.id)
// WABA: 异步的后续状态更新, id已更新为wamid
// console.log('old msg ele', ele);
const renderStatus = message?.data?.status ? { status: { ...ele.data.status, loading: 0, download: true } } : {};

@ -100,7 +100,7 @@ const BubbleIM = ({ handlePreview, handleContactClick, setNewChatModalVisible, s
return (
<MessageBox
{...message}
key={`${message.sn}.${message.id}`}
key={`IM.${message.id}`}
position={message.sender === 'me' ? 'right' : 'left'}
onReplyClick={() => setReferenceMsg(message)}
onReplyMessageClick={() => scrollToMessage(message.reply.id)}

@ -67,7 +67,7 @@ const MessagesList = ({ messages, handlePreview, reference, longListLoading, get
{messages.map((message, index) => (
<MessageBoxWithRef
ref={(el) => (messageRefs.current[index] = el)}
key={`${message.type}.${message.id}`}
key={`${message.type || ''}.${message.id}`}
{...message}
/>
))}

Loading…
Cancel
Save