From 67abf707ff1d045448d32875c0f9912704d0d262 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Wed, 12 Jul 2023 11:26:07 +0200 Subject: [PATCH] ui: Move ReactionSenderData to reactions module and re-export publically --- crates/matrix-sdk-ui/src/timeline/event_handler.rs | 6 +++--- .../src/timeline/event_item/content.rs | 5 +++-- crates/matrix-sdk-ui/src/timeline/event_item/mod.rs | 11 ----------- crates/matrix-sdk-ui/src/timeline/inner.rs | 6 +++--- crates/matrix-sdk-ui/src/timeline/mod.rs | 1 + crates/matrix-sdk-ui/src/timeline/reactions.rs | 13 ++++++++++++- .../src/timeline/tests/reaction_group.rs | 4 ++-- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/crates/matrix-sdk-ui/src/timeline/event_handler.rs b/crates/matrix-sdk-ui/src/timeline/event_handler.rs index bea2ea522..e6b073790 100644 --- a/crates/matrix-sdk-ui/src/timeline/event_handler.rs +++ b/crates/matrix-sdk-ui/src/timeline/event_handler.rs @@ -53,10 +53,10 @@ use super::{ item::{new_timeline_item, timeline_item}, read_receipts::maybe_add_implicit_read_receipt, rfind_event_by_id, rfind_event_item, EventTimelineItem, Message, OtherState, ReactionGroup, - Sticker, TimelineDetails, TimelineInnerState, TimelineItem, TimelineItemContent, - VirtualTimelineItem, DEFAULT_SANITIZER_MODE, + ReactionSenderData, Sticker, TimelineDetails, TimelineInnerState, TimelineItem, + TimelineItemContent, VirtualTimelineItem, DEFAULT_SANITIZER_MODE, }; -use crate::{events::SyncTimelineEventWithoutContent, timeline::event_item::ReactionSenderData}; +use crate::events::SyncTimelineEventWithoutContent; #[derive(Clone)] pub(super) enum Flow { diff --git a/crates/matrix-sdk-ui/src/timeline/event_item/content.rs b/crates/matrix-sdk-ui/src/timeline/event_item/content.rs index a45a8f96c..9605b0a07 100644 --- a/crates/matrix-sdk-ui/src/timeline/event_item/content.rs +++ b/crates/matrix-sdk-ui/src/timeline/event_item/content.rs @@ -65,9 +65,10 @@ use ruma::{ use tracing::warn; use tracing::{debug, error}; -use super::{EventItemIdentifier, EventTimelineItem, Profile, ReactionSenderData, TimelineDetails}; +use super::{EventItemIdentifier, EventTimelineItem, Profile, TimelineDetails}; use crate::timeline::{ - traits::RoomDataProvider, Error as TimelineError, TimelineItem, DEFAULT_SANITIZER_MODE, + traits::RoomDataProvider, Error as TimelineError, ReactionSenderData, TimelineItem, + DEFAULT_SANITIZER_MODE, }; /// The content of an [`EventTimelineItem`][super::EventTimelineItem]. diff --git a/crates/matrix-sdk-ui/src/timeline/event_item/mod.rs b/crates/matrix-sdk-ui/src/timeline/event_item/mod.rs index a6204f5cb..43fb15d7a 100644 --- a/crates/matrix-sdk-ui/src/timeline/event_item/mod.rs +++ b/crates/matrix-sdk-ui/src/timeline/event_item/mod.rs @@ -81,17 +81,6 @@ pub enum EventItemIdentifier { EventId(OwnedEventId), } -/// Data associated with a reaction sender. It can be used to display -/// a details UI component for a reaction with both sender -/// names and the date at which they sent a reaction. -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct ReactionSenderData { - /// Sender identifier. - pub sender_id: OwnedUserId, - /// Date at which the sender reacted. - pub timestamp: MilliSecondsSinceUnixEpoch, -} - impl EventTimelineItem { pub(super) fn new( sender: OwnedUserId, diff --git a/crates/matrix-sdk-ui/src/timeline/inner.rs b/crates/matrix-sdk-ui/src/timeline/inner.rs index 5c2b6962b..6e01d4989 100644 --- a/crates/matrix-sdk-ui/src/timeline/inner.rs +++ b/crates/matrix-sdk-ui/src/timeline/inner.rs @@ -62,14 +62,14 @@ use super::{ update_read_marker, Flow, HandleEventResult, TimelineEventHandler, TimelineEventKind, TimelineEventMetadata, TimelineItemPosition, }, - event_item::{EventItemIdentifier, ReactionSenderData}, + event_item::EventItemIdentifier, item::{new_timeline_item, timeline_item}, reactions::ReactionToggleResult, rfind_event_by_id, rfind_event_item, traits::RoomDataProvider, AnnotationKey, EventSendState, EventTimelineItem, InReplyToDetails, Message, Profile, - RelativePosition, RepliedToEvent, TimelineDetails, TimelineItem, TimelineItemContent, - TimelineItemKind, + ReactionSenderData, RelativePosition, RepliedToEvent, TimelineDetails, TimelineItem, + TimelineItemContent, TimelineItemKind, }; use crate::events::SyncTimelineEventWithoutContent; diff --git a/crates/matrix-sdk-ui/src/timeline/mod.rs b/crates/matrix-sdk-ui/src/timeline/mod.rs index 57d359ace..4597a6159 100644 --- a/crates/matrix-sdk-ui/src/timeline/mod.rs +++ b/crates/matrix-sdk-ui/src/timeline/mod.rs @@ -80,6 +80,7 @@ pub use self::{ futures::SendAttachment, item::{TimelineItem, TimelineItemKind}, pagination::{PaginationOptions, PaginationOutcome}, + reactions::ReactionSenderData, traits::RoomExt, virtual_item::VirtualTimelineItem, }; diff --git a/crates/matrix-sdk-ui/src/timeline/reactions.rs b/crates/matrix-sdk-ui/src/timeline/reactions.rs index 9cc4c5b99..cf3dfe01e 100644 --- a/crates/matrix-sdk-ui/src/timeline/reactions.rs +++ b/crates/matrix-sdk-ui/src/timeline/reactions.rs @@ -12,7 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -use ruma::{OwnedEventId, OwnedTransactionId}; +use ruma::{MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedTransactionId, OwnedUserId}; + +/// Data associated with a reaction sender. It can be used to display +/// a details UI component for a reaction with both sender +/// names and the date at which they sent a reaction. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct ReactionSenderData { + /// Sender identifier. + pub sender_id: OwnedUserId, + /// Date at which the sender reacted. + pub timestamp: MilliSecondsSinceUnixEpoch, +} /// The result of toggling a reaction /// diff --git a/crates/matrix-sdk-ui/src/timeline/tests/reaction_group.rs b/crates/matrix-sdk-ui/src/timeline/tests/reaction_group.rs index 544d4aed1..12ca5c17e 100644 --- a/crates/matrix-sdk-ui/src/timeline/tests/reaction_group.rs +++ b/crates/matrix-sdk-ui/src/timeline/tests/reaction_group.rs @@ -17,9 +17,9 @@ use itertools::Itertools; use ruma::{server_name, uint, user_id, EventId, MilliSecondsSinceUnixEpoch, OwnedUserId, UserId}; use crate::timeline::{ - event_item::{EventItemIdentifier, ReactionSenderData}, + event_item::EventItemIdentifier, tests::{ALICE, BOB}, - ReactionGroup, + ReactionGroup, ReactionSenderData, }; #[test]