新消息累加未读数量

dev/chat
Lei OT 1 year ago
parent 3290b2c161
commit 3a342331d6

@ -23,7 +23,7 @@ const ConversationReducer = (state = initialState, action) => {
const { conversationsList } = state; const { conversationsList } = state;
const targetId = action.payload.sn; const targetId = action.payload.sn;
const newConversationList = conversationsList.map((ele) => { const newConversationList = conversationsList.map((ele) => {
if (ele.sn === targetId) { if (String(ele.sn) === String(targetId)) {
return { ...ele, unread_msg_count: 0 }; return { ...ele, unread_msg_count: 0 };
} }
return ele; return ele;
@ -41,7 +41,7 @@ const ConversationReducer = (state = initialState, action) => {
const { activeConversations, conversationsList } = state; const { activeConversations, conversationsList } = state;
const message = action.payload; const message = action.payload;
const targetId = message.conversationid; const targetId = message.conversationid;
const targetMsgs = (activeConversations[targetId] || []).map((ele) => { const targetMsgs = (activeConversations[String(targetId)] || []).map((ele) => {
if (ele.id === ele.actionId && ele.actionId === message.actionId) { if (ele.id === ele.actionId && ele.actionId === message.actionId) {
return { ...ele, id: message.id, status: message.status, dateString: message.dateString }; return { ...ele, id: message.id, status: message.status, dateString: message.dateString };
} else if (ele.id === message.id) { } else if (ele.id === message.id) {
@ -52,7 +52,7 @@ const ConversationReducer = (state = initialState, action) => {
// 更新列表的时间 // 更新列表的时间
const newConversationList = conversationsList.map((ele) => { const newConversationList = conversationsList.map((ele) => {
if (ele.sn === targetId && message.type !== 'error') { if (String(ele.sn) === String(targetId) && message.type !== 'error') {
return { ...ele, last_received_time: message.date }; return { ...ele, last_received_time: message.date };
} }
return ele; return ele;
@ -60,7 +60,7 @@ const ConversationReducer = (state = initialState, action) => {
return { return {
...state, ...state,
activeConversations: { ...state.activeConversations, [targetId]: targetMsgs }, activeConversations: { ...state.activeConversations, [String(targetId)]: targetMsgs },
conversationsList: newConversationList, conversationsList: newConversationList,
}; };
} }
@ -68,21 +68,21 @@ const ConversationReducer = (state = initialState, action) => {
case NAME_SPACE + 'RECEIVED_NEW_MESSAGE': { case NAME_SPACE + 'RECEIVED_NEW_MESSAGE': {
const { activeConversations, conversationsList, currentConversation } = state; const { activeConversations, conversationsList, currentConversation } = state;
const { targetId, message } = action.payload; const { targetId, message } = action.payload;
const targetMsgs = activeConversations[targetId] || []; const targetMsgs = activeConversations[String(targetId)] || [];
console.log(activeConversations, targetId, 'sent sent sent'); console.log(activeConversations, String(targetId), 'sent sent sent');
const newConversationList = conversationsList.map((ele) => { const newConversationList = conversationsList.map((ele) => {
if (ele.sn === targetId) { if (String(ele.sn) === String(targetId)) {
return { return {
...ele, ...ele,
last_received_time: message.date, last_received_time: message.date,
unread_msg_count: ele.sn === currentConversation.sn ? ele.unread_msg_count + 1 : ele.unread_msg_count, unread_msg_count: String(ele.sn) !== String(currentConversation.sn) ? ele.unread_msg_count + 1 : ele.unread_msg_count,
}; };
} }
return ele; return ele;
}); });
return { return {
...state, ...state,
activeConversations: { ...activeConversations, [targetId]: [...targetMsgs, message] }, activeConversations: { ...activeConversations, [String(targetId)]: [...targetMsgs, message] },
conversationsList: newConversationList, conversationsList: newConversationList,
}; };
} }

Loading…
Cancel
Save