From 2d906b759265105801538e22ed649c2a837e8e10 Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Mon, 1 Jul 2024 12:02:28 +0200 Subject: [PATCH] fix(ui): Handle the case where we are sorting a room with itself. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch removes a bug… (TODO) --- crates/matrix-sdk-ui/src/room_list_service/sorters/name.rs | 4 ++++ .../matrix-sdk-ui/src/room_list_service/sorters/recency.rs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/crates/matrix-sdk-ui/src/room_list_service/sorters/name.rs b/crates/matrix-sdk-ui/src/room_list_service/sorters/name.rs index 41616108c74..227d56d1b66 100644 --- a/crates/matrix-sdk-ui/src/room_list_service/sorters/name.rs +++ b/crates/matrix-sdk-ui/src/room_list_service/sorters/name.rs @@ -28,6 +28,10 @@ where F: Fn(&Room, &Room) -> (Option, Option), { fn matches(&self, left: &Room, right: &Room) -> Ordering { + if left.id() == right.id() { + return Ordering::Greater; + } + let (left_name, right_name) = (self.names)(left, right); left_name.cmp(&right_name) diff --git a/crates/matrix-sdk-ui/src/room_list_service/sorters/recency.rs b/crates/matrix-sdk-ui/src/room_list_service/sorters/recency.rs index 215275a975c..077a49ec170 100644 --- a/crates/matrix-sdk-ui/src/room_list_service/sorters/recency.rs +++ b/crates/matrix-sdk-ui/src/room_list_service/sorters/recency.rs @@ -30,6 +30,11 @@ where F: Fn(&Room, &Room) -> (Option, Option), { fn matches(&self, left: &Room, right: &Room) -> Ordering { + // `left` and `right` are the same room. + if left.id() == right.id() { + return Ordering::Greater; + } + match (self.latest_events)(left, right) { (Some(left_latest_event), Some(right_latest_event)) => left_latest_event .event_origin_server_ts()