Skip to content

Commit fc8a6dc

Browse files
committed
refactor(ffi): always try to load InReplyToDetails from the event cache or network
1 parent 7b8694e commit fc8a6dc

File tree

1 file changed

+6
-14
lines changed
  • bindings/matrix-sdk-ffi/src/timeline

1 file changed

+6
-14
lines changed

bindings/matrix-sdk-ffi/src/timeline/mod.rs

+6-14
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ use matrix_sdk::{
2828
deserialized_responses::{ShieldState as SdkShieldState, ShieldStateCode},
2929
event_cache::RoomPaginationStatus,
3030
room::edit::EditedContent as SdkEditedContent,
31-
Error,
3231
};
3332
use matrix_sdk_ui::timeline::{
3433
self, EventItemOrigin, Profile, RepliedToEvent, TimelineDetails,
@@ -671,19 +670,12 @@ impl Timeline {
671670
) -> Result<Arc<InReplyToDetails>, ClientError> {
672671
let event_id = EventId::parse(&event_id_str)?;
673672

674-
let replied_to: Result<RepliedToEvent, Error> =
675-
if let Some(event) = self.inner.item_by_event_id(&event_id).await {
676-
Ok(RepliedToEvent::from_timeline_item(&event))
677-
} else {
678-
match self.inner.room().event(&event_id, None).await {
679-
Ok(timeline_event) => Ok(RepliedToEvent::try_from_timeline_event_for_room(
680-
timeline_event,
681-
self.inner.room(),
682-
)
683-
.await?),
684-
Err(e) => Err(e),
685-
}
686-
};
673+
let replied_to = match self.inner.room().load_or_fetch_event(&event_id, None).await {
674+
Ok(event) => RepliedToEvent::try_from_timeline_event_for_room(event, self.inner.room())
675+
.await
676+
.map_err(ClientError::from),
677+
Err(e) => Err(ClientError::from(e)),
678+
};
687679

688680
match replied_to {
689681
Ok(replied_to) => Ok(Arc::new(InReplyToDetails::new(

0 commit comments

Comments
 (0)