sdk: Rename details field to event in InReplyToDetails

This commit is contained in:
Jonas Platte
2023-04-05 09:49:53 +02:00
committed by Jonas Platte
parent ef3ffda2d3
commit 5b512f020e
3 changed files with 17 additions and 14 deletions

View File

@@ -174,14 +174,14 @@ pub struct InReplyToDetails {
///
/// [`Timeline::fetch_item_details`]: super::Timeline::fetch_item_details
/// [`TimelineDetailsSettings`]: super::TimelineDetailsSettings
pub details: TimelineDetails<Box<RepliedToEvent>>,
pub event: TimelineDetails<Box<RepliedToEvent>>,
}
impl InReplyToDetails {
pub(in crate::room::timeline) fn from_relation<C>(relation: Relation<C>) -> Option<Self> {
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,
}

View File

@@ -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)));

View File

@@ -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]