From 790bf5eac3761d65debe6766801474750b312b84 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 6 Sep 2022 14:22:56 +0530 Subject: [PATCH] Fix wrong notification count --- src/app/organisms/navigation/DrawerBreadcrumb.jsx | 8 ++++---- src/client/state/Notifications.js | 7 +++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/app/organisms/navigation/DrawerBreadcrumb.jsx b/src/app/organisms/navigation/DrawerBreadcrumb.jsx index be5b345..face349 100644 --- a/src/app/organisms/navigation/DrawerBreadcrumb.jsx +++ b/src/app/organisms/navigation/DrawerBreadcrumb.jsx @@ -21,7 +21,7 @@ import ChevronRightIC from '../../../../public/res/ic/outlined/chevron-right.svg function DrawerBreadcrumb({ spaceId }) { const [, forceUpdate] = useState({}); const scrollRef = useRef(null); - const { roomList, notifications } = initMatrix; + const { roomList, notifications, accountData } = initMatrix; const mx = initMatrix.matrixClient; const spacePath = navigation.selectedSpacePath; @@ -49,9 +49,9 @@ function DrawerBreadcrumb({ spaceId }) { }, [spaceId]); function getHomeNotiExcept(childId) { - const orphans = roomList.getOrphans(); - const childIndex = orphans.indexOf(childId); - if (childId !== -1) orphans.splice(childIndex, 1); + const orphans = roomList.getOrphans() + .filter((id) => (id !== childId)) + .filter((id) => !accountData.spaceShortcut.has(id)); let noti = null; diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index 90f9b4a..309c322 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -114,8 +114,7 @@ class Notifications extends EventEmitter { } getTotalNoti(roomId) { - const { total, highlight } = this.getNoti(roomId); - if (highlight > total) return highlight; + const { total } = this.getNoti(roomId); return total; } @@ -166,7 +165,7 @@ class Notifications extends EventEmitter { _setNoti(roomId, total, highlight) { const addNoti = (id, t, h, fromId) => { - const prevTotal = this.roomIdToNoti.get(id)?.total ?? null; + const prevTotal = this.roomIdToNoti.has(id) ? this.getT : null; const noti = this.getNoti(id); noti.total += t; @@ -181,7 +180,7 @@ class Notifications extends EventEmitter { }; const noti = this.getNoti(roomId); - const addT = total - noti.total; + const addT = (highlight > total ? highlight : total) - noti.total; const addH = highlight - noti.highlight; if (addT < 0 || addH < 0) return;