feat: 消息更新事件处理

pull/14/head
moonrailgun 3 years ago
parent f8ebcc7407
commit 69e6453183

@ -161,6 +161,14 @@ function listenNotify(socket: AppSocket, store: AppStore) {
}
});
socket.listen<ChatMessage>('chat.message.update', (message) => {
store.dispatch(
chatActions.updateMessageInfo({
message,
})
);
});
socket.listen<ChatConverseInfo>(
'chat.converse.updateDMConverse',
(converse) => {

@ -163,6 +163,32 @@ const chatSlice = createSlice({
state.ack[converseId] = lastMessageId;
},
/**
*
*/
updateMessageInfo(
state,
action: PayloadAction<{
message: ChatMessage;
}>
) {
const { message } = action.payload;
const converseId = message.converseId;
const converse = state.converses[converseId];
if (!converse) {
console.warn('Not found converse,', converseId);
return;
}
const index = converse.messages.findIndex((m) => m._id === message._id);
if (index >= 0) {
converse.messages[index] = {
...converse.messages[index],
...message,
};
}
},
/**
* id
*/

Loading…
Cancel
Save