diff --git a/crates/matrix-sdk/src/room/timeline/event_item/content.rs b/crates/matrix-sdk/src/room/timeline/event_item/content.rs index 47783f5fb..25318047a 100644 --- a/crates/matrix-sdk/src/room/timeline/event_item/content.rs +++ b/crates/matrix-sdk/src/room/timeline/event_item/content.rs @@ -174,14 +174,14 @@ pub struct InReplyToDetails { /// /// [`Timeline::fetch_item_details`]: super::Timeline::fetch_item_details /// [`TimelineDetailsSettings`]: super::TimelineDetailsSettings - pub details: TimelineDetails>, + pub event: TimelineDetails>, } impl InReplyToDetails { pub(in crate::room::timeline) fn from_relation(relation: Relation) -> Option { match relation { message::Relation::Reply { in_reply_to } => { - Some(Self { event_id: in_reply_to.event_id, details: TimelineDetails::Unavailable }) + Some(Self { event_id: in_reply_to.event_id, event: TimelineDetails::Unavailable }) } _ => None, } diff --git a/crates/matrix-sdk/src/room/timeline/inner.rs b/crates/matrix-sdk/src/room/timeline/inner.rs index 66d354447..6522acf11 100644 --- a/crates/matrix-sdk/src/room/timeline/inner.rs +++ b/crates/matrix-sdk/src/room/timeline/inner.rs @@ -562,7 +562,7 @@ impl TimelineInner { return Ok(item); }; - let details = fetch_replied_to_event( + let event = fetch_replied_to_event( state, index, &item, @@ -588,9 +588,12 @@ impl TimelineInner { return Ok(item); }; - item.set_content(TimelineItemContent::Message(message.with_in_reply_to( - InReplyToDetails { event_id: in_reply_to.event_id.clone(), details }, - ))); + item.set_content(TimelineItemContent::Message( + message.with_in_reply_to(InReplyToDetails { + event_id: in_reply_to.event_id.clone(), + event, + }), + )); state.items.set(index, Arc::new(TimelineItem::Event(item.clone().into()))); Ok(item) @@ -696,7 +699,7 @@ async fn fetch_replied_to_event( let reply = message.with_in_reply_to(InReplyToDetails { event_id: in_reply_to.to_owned(), - details: TimelineDetails::Pending, + event: TimelineDetails::Pending, }); let event_item = item.apply_edit(TimelineItemContent::Message(reply), None).into(); state.items.set(index, Arc::new(TimelineItem::Event(event_item))); diff --git a/crates/matrix-sdk/tests/integration/room/timeline/mod.rs b/crates/matrix-sdk/tests/integration/room/timeline/mod.rs index 1a93e8c5a..02b15cbce 100644 --- a/crates/matrix-sdk/tests/integration/room/timeline/mod.rs +++ b/crates/matrix-sdk/tests/integration/room/timeline/mod.rs @@ -662,14 +662,14 @@ async fn in_reply_to_details() { assert_matches!(second_event.content(), TimelineItemContent::Message(message) => message); let in_reply_to = message.in_reply_to().unwrap(); assert_eq!(in_reply_to.event_id, event_id!("$event1")); - assert_matches!(in_reply_to.details, TimelineDetails::Unavailable); + assert_matches!(in_reply_to.event, TimelineDetails::Unavailable); // Fetch details locally first. timeline.fetch_event_details(second_event.event_id()).await.unwrap(); let second = assert_matches!(timeline_stream.next().await, Some(VectorDiff::Set { index: 2, value }) => value); let message = assert_matches!(second.as_event().unwrap().content(), TimelineItemContent::Message(message) => message); - assert_matches!(message.in_reply_to().unwrap().details, TimelineDetails::Ready(_)); + assert_matches!(message.in_reply_to().unwrap().event, TimelineDetails::Ready(_)); ev_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_timeline_event( TimelineTestEvent::Custom(json!({ @@ -702,7 +702,7 @@ async fn in_reply_to_details() { assert_matches!(third_event.content(), TimelineItemContent::Message(message) => message); let in_reply_to = message.in_reply_to().unwrap(); assert_eq!(in_reply_to.event_id, event_id!("$remoteevent")); - assert_matches!(in_reply_to.details, TimelineDetails::Unavailable); + assert_matches!(in_reply_to.event, TimelineDetails::Unavailable); Mock::given(method("GET")) .and(path_regex(r"^/_matrix/client/r0/rooms/.*/event/\$remoteevent")) @@ -721,11 +721,11 @@ async fn in_reply_to_details() { let third = assert_matches!(timeline_stream.next().await, Some(VectorDiff::Set { index: 3, value }) => value); let message = assert_matches!(third.as_event().unwrap().content(), TimelineItemContent::Message(message) => message); - assert_matches!(message.in_reply_to().unwrap().details, TimelineDetails::Pending); + assert_matches!(message.in_reply_to().unwrap().event, TimelineDetails::Pending); let third = assert_matches!(timeline_stream.next().await, Some(VectorDiff::Set { index: 3, value }) => value); let message = assert_matches!(third.as_event().unwrap().content(), TimelineItemContent::Message(message) => message); - assert_matches!(message.in_reply_to().unwrap().details, TimelineDetails::Error(_)); + assert_matches!(message.in_reply_to().unwrap().event, TimelineDetails::Error(_)); Mock::given(method("GET")) .and(path_regex(r"^/_matrix/client/r0/rooms/.*/event/\$remoteevent")) @@ -749,11 +749,11 @@ async fn in_reply_to_details() { let third = assert_matches!(timeline_stream.next().await, Some(VectorDiff::Set { index: 3, value }) => value); let message = assert_matches!(third.as_event().unwrap().content(), TimelineItemContent::Message(message) => message); - assert_matches!(message.in_reply_to().unwrap().details, TimelineDetails::Pending); + assert_matches!(message.in_reply_to().unwrap().event, TimelineDetails::Pending); let third = assert_matches!(timeline_stream.next().await, Some(VectorDiff::Set { index: 3, value }) => value); let message = assert_matches!(third.as_event().unwrap().content(), TimelineItemContent::Message(message) => message); - assert_matches!(message.in_reply_to().unwrap().details, TimelineDetails::Ready(_)); + assert_matches!(message.in_reply_to().unwrap().event, TimelineDetails::Ready(_)); } #[async_test]