From 443e729f5bb32bf5f92ff5de34ca2c3e93bbe8e4 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 4 May 2023 13:24:28 +0200 Subject: [PATCH] sdk: Fix redaction regression --- crates/matrix-sdk/src/room/timeline/event_handler.rs | 8 ++++++-- crates/matrix-sdk/src/room/timeline/event_item/remote.rs | 5 ++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/crates/matrix-sdk/src/room/timeline/event_handler.rs b/crates/matrix-sdk/src/room/timeline/event_handler.rs index 2dc762062..7aa102837 100644 --- a/crates/matrix-sdk/src/room/timeline/event_handler.rs +++ b/crates/matrix-sdk/src/room/timeline/event_handler.rs @@ -537,11 +537,15 @@ impl<'a> TimelineEventHandler<'a> { // directly with the raw event timeline feature (not yet implemented). update_timeline_item!(self, &redacts, "redaction", |event_item| { let Some(remote_event_item) = event_item.as_remote() else { - error!("inconsistent state: reaction received on a non-remote event item"); + error!("inconsistent state: redaction received on a non-remote event item"); return None; }; - Some(event_item.with_kind(remote_event_item.to_redacted())) + let mut event_item = event_item.to_owned(); + event_item.content = TimelineItemContent::RedactedMessage; + event_item.kind = remote_event_item.without_reactions().into(); + + Some(event_item) }); if self.result.items_updated == 0 { diff --git a/crates/matrix-sdk/src/room/timeline/event_item/remote.rs b/crates/matrix-sdk/src/room/timeline/event_item/remote.rs index 137c2ff50..d506ef0d5 100644 --- a/crates/matrix-sdk/src/room/timeline/event_item/remote.rs +++ b/crates/matrix-sdk/src/room/timeline/event_item/remote.rs @@ -58,9 +58,8 @@ impl RemoteEventTimelineItem { Self { reactions, ..self.clone() } } - /// Clone the current event item, change its `content` to - /// [`TimelineItemContent::RedactedMessage`], and reset its `reactions`. - pub fn to_redacted(&self) -> Self { + /// Clone the current event item, and reset its `reactions`. + pub fn without_reactions(&self) -> Self { Self { reactions: BundledReactions::default(), ..self.clone() } } }