From f54ba52174749b7783c45aa58116a6633dadc590 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Tue, 16 Nov 2021 17:05:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=84=E7=90=86=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E7=9A=84delete=20message=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/redux/setup.ts | 12 ++++++++++++ shared/redux/slices/chat.ts | 23 +++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/shared/redux/setup.ts b/shared/redux/setup.ts index b4b03351..e80afbfc 100644 --- a/shared/redux/setup.ts +++ b/shared/redux/setup.ts @@ -169,6 +169,18 @@ function listenNotify(socket: AppSocket, store: AppStore) { ); }); + socket.listen<{ + converseId: string; + messageId: string; + }>('chat.message.delete', ({ converseId, messageId }) => { + store.dispatch( + chatActions.deleteMessageById({ + converseId, + messageId, + }) + ); + }); + socket.listen( 'chat.converse.updateDMConverse', (converse) => { diff --git a/shared/redux/slices/chat.ts b/shared/redux/slices/chat.ts index a4cff6c8..71061c88 100644 --- a/shared/redux/slices/chat.ts +++ b/shared/redux/slices/chat.ts @@ -189,6 +189,29 @@ const chatSlice = createSlice({ } }, + /** + * 删除消息 + */ + deleteMessageById( + state, + action: PayloadAction<{ + converseId: string; + messageId: string; + }> + ) { + const { converseId, messageId } = action.payload; + const converse = state.converses[converseId]; + if (!converse) { + console.warn('Not found converse,', converseId); + return; + } + + const index = converse.messages.findIndex((m) => m._id === messageId); + if (index >= 0) { + converse.messages.splice(index, 1); + } + }, + /** * 设置远程的最后一条会话的id */