From 6be85e714651c8d3caf292b125c58b051a7f2016 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 12 Sep 2022 17:16:37 +0100 Subject: [PATCH] Prevent sliding sync from showing a room under multiple sublists (#9266) * Prevent sliding sync from showing a room under multiple sublists * Add tests (cherry picked from commit 96656e4e1762c08c324888eac6f065c509f193d6) --- cypress/e2e/sliding-sync/sliding-sync.ts | 12 ++++++++++++ src/stores/room-list/SlidingRoomListStore.ts | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/cypress/e2e/sliding-sync/sliding-sync.ts b/cypress/e2e/sliding-sync/sliding-sync.ts index 5b5ec5145e..80e20c51d8 100644 --- a/cypress/e2e/sliding-sync/sliding-sync.ts +++ b/cypress/e2e/sliding-sync/sliding-sync.ts @@ -319,4 +319,16 @@ describe("Sliding Sync", () => { "Join", "Test Room", ]); }); + + it("should show a favourite DM only in the favourite sublist", () => { + cy.createRoom({ + name: "Favourite DM", + is_direct: true, + }).as("room").then(roomId => { + cy.getClient().then(cli => cli.setRoomTag(roomId, "m.favourite", { order: 0.5 })); + }); + + cy.get('.mx_RoomSublist[aria-label="Favourites"]').contains(".mx_RoomTile", "Favourite DM").should("exist"); + cy.get('.mx_RoomSublist[aria-label="People"]').contains(".mx_RoomTile", "Favourite DM").should("not.exist"); + }); }); diff --git a/src/stores/room-list/SlidingRoomListStore.ts b/src/stores/room-list/SlidingRoomListStore.ts index ccf4946886..b8ba48659f 100644 --- a/src/stores/room-list/SlidingRoomListStore.ts +++ b/src/stores/room-list/SlidingRoomListStore.ts @@ -55,6 +55,8 @@ const filterConditions: Record = { is_dm: true, is_invite: false, is_tombstoned: false, + // If a DM has a Favourite & Low Prio tag then it'll be shown in those lists instead + not_tags: ["m.favourite", "m.lowpriority"], }, [DefaultTagID.Untagged]: { is_dm: false, @@ -66,6 +68,8 @@ const filterConditions: Record = { }, [DefaultTagID.LowPriority]: { tags: ["m.lowpriority"], + // If a room has both Favourite & Low Prio tags then it'll be shown under Favourites + not_tags: ["m.favourite"], is_tombstoned: false, }, // TODO https://github.com/vector-im/element-web/issues/23207