perf(前端): 接收消息推送, 更新会话列表

dev/supplier-email-drawer
Lei OT 9 months ago
parent 01b5991ba0
commit 3fe605c562

@ -434,7 +434,8 @@ const messageSlice = (set, get) => ({
...conversationsList[targetIndex], ...conversationsList[targetIndex],
last_received_time: message.status === 'received' ? dayjs(message.deliverTime).add(8, 'hours').format(DATETIME_FORMAT) : conversationsList[targetIndex].last_received_time, last_received_time: message.status === 'received' ? dayjs(message.deliverTime).add(8, 'hours').format(DATETIME_FORMAT) : conversationsList[targetIndex].last_received_time,
conversation_expiretime: message?.conversation?.expireTime || conversationsList[targetIndex].conversation_expiretime || '', // 保留使用UTC时间 conversation_expiretime: message?.conversation?.expireTime || conversationsList[targetIndex].conversation_expiretime || '', // 保留使用UTC时间
}); last_message: { ...message, source: message.msg_source },
})
} else if (targetIndex === -1) { } else if (targetIndex === -1) {
// 当前客户端不存在的会话 // 当前客户端不存在的会话
// todo: 设置为当前(在WhatsApp返回号码不一致时) // todo: 设置为当前(在WhatsApp返回号码不一致时)
@ -451,7 +452,7 @@ const messageSlice = (set, get) => ({
whatsapp_phone_number: message.type === 'email' ? null : message.to, whatsapp_phone_number: message.type === 'email' ? null : message.to,
show_default: message?.conversation?.name || message.to || '', show_default: message?.conversation?.name || message.to || '',
session_type: message?.conversation?.type === 'group' ? 1 : 0, session_type: message?.conversation?.type === 'group' ? 1 : 0,
last_message: message, last_message: { ...message, source: message.msg_source },
channels: { channels: {
"email": message.type === 'email' ? message.from : null, "email": message.type === 'email' ? message.from : null,
"phone_number": message.type === 'email' ? null : message.from, "phone_number": message.type === 'email' ? null : message.from,
@ -486,7 +487,7 @@ const messageSlice = (set, get) => ({
Number(targetId) !== Number(currentConversation.sn) && message.sender !== 'me' Number(targetId) !== Number(currentConversation.sn) && message.sender !== 'me'
? conversationsList[targetIndex].unread_msg_count + 1 ? conversationsList[targetIndex].unread_msg_count + 1
: conversationsList[targetIndex].unread_msg_count, : conversationsList[targetIndex].unread_msg_count,
last_message: message, last_message: { ...message, source: message.msg_source },
} }
: { : {
...conversationRow, ...conversationRow,
@ -500,7 +501,7 @@ const messageSlice = (set, get) => ({
whatsapp_phone_number: message.type === 'email' ? null : message.from, whatsapp_phone_number: message.type === 'email' ? null : message.from,
show_default: message?.conversation?.name || message?.senderName || message?.sender || message.from || '', show_default: message?.conversation?.name || message?.senderName || message?.sender || message.from || '',
session_type: message?.conversation?.type === 'group' ? 1 : 0, session_type: message?.conversation?.type === 'group' ? 1 : 0,
last_message: message, last_message: { ...message, source: message.msg_source },
channels: { channels: {
"email": message.type === 'email' ? message.from : null, "email": message.type === 'email' ? message.from : null,
"phone_number": message.type === 'email' ? null : message.from, "phone_number": message.type === 'email' ? null : message.from,
@ -525,7 +526,7 @@ const messageSlice = (set, get) => ({
...currentConversation, ...currentConversation,
last_received_time: dayjs(message.date).add(8, 'hours').format(DATETIME_FORMAT), last_received_time: dayjs(message.date).add(8, 'hours').format(DATETIME_FORMAT),
conversation_expiretime: dayjs(message.date).add(24, 'hours').format(DATETIME_FORMAT), conversation_expiretime: dayjs(message.date).add(24, 'hours').format(DATETIME_FORMAT),
last_message: message, last_message: { ...message, source: message.msg_source },
} }
: {...currentConversation, last_message: message,}; : {...currentConversation, last_message: message,};

Loading…
Cancel
Save