From 7f432cefb9f96d71a93236ceb9b5282919ecb7e3 Mon Sep 17 00:00:00 2001 From: Pang Date: Sat, 13 Jan 2024 22:42:30 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/store/actions.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 7d59f0dd3..2f766c17e 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2335,6 +2335,16 @@ export default { typeof data.mention !== "undefined" && delete data.mention typeof data.mention_ids !== "undefined" && delete data.mention_ids } + if (data.unread_one) { + if (state.dialogMsgs.find(m => m.id == data.unread_one)?.read_at) { + delete data.unread_one + } + } + if (data.mention_ids) { + data.mention_ids = data.mention_ids.filter(id => { + return !state.dialogMsgs.find(m => m.id == id)?.read_at + }) + } state.cacheDialogs.splice(index, 1, Object.assign({}, original, data)); } else { state.cacheDialogs.push(data); @@ -2872,7 +2882,9 @@ export default { const dialog = state.cacheDialogs.find(({id}) => id == data.dialog_id); if (dialog) { let isUpdate = false - if (!data.read_at && data.userid != state.userId) { + if (!data.read_at + && data.userid != state.userId + && !state.dialogIns.find(({dialog_id}) => dialog_id == dialog.id)) { if (dialog.unread_one) { dialog.unread_one = Math.min(dialog.unread_one, data.id) } else {