From 3bf52fc1103f5422d44a089a4b4c5bd4ddee9b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Fri, 19 Aug 2022 15:32:11 +0200 Subject: [PATCH] Ignore unreads in low priority rooms in the space panel (#6518) Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- src/stores/notifications/SpaceNotificationState.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/stores/notifications/SpaceNotificationState.ts b/src/stores/notifications/SpaceNotificationState.ts index db21e635b4..241530f77f 100644 --- a/src/stores/notifications/SpaceNotificationState.ts +++ b/src/stores/notifications/SpaceNotificationState.ts @@ -21,6 +21,8 @@ import { arrayDiff } from "../../utils/arrays"; import { RoomNotificationState } from "./RoomNotificationState"; import { NotificationState, NotificationStateEvents } from "./NotificationState"; import { FetchRoomFn } from "./ListNotificationState"; +import { DefaultTagID } from "../room-list/models"; +import RoomListStore from "../room-list/RoomListStore"; export class SpaceNotificationState extends NotificationState { public rooms: Room[] = []; // exposed only for tests @@ -74,7 +76,15 @@ export class SpaceNotificationState extends NotificationState { this._count = 0; this._color = NotificationColor.None; - for (const state of Object.values(this.states)) { + for (const [roomId, state] of Object.entries(this.states)) { + const roomTags = RoomListStore.instance.getTagsForRoom(this.rooms.find(r => r.roomId === roomId)); + + // We ignore unreads in LowPriority rooms, see https://github.com/vector-im/element-web/issues/16836 + if ( + roomTags.includes(DefaultTagID.LowPriority) && + state.color === NotificationColor.Bold + ) continue; + this._count += state.count; this._color = Math.max(this.color, state.color); }