Skip to content

Commit 5c34f46

Browse files
committed
refactor(timeline): use TimelineEventKind::AddItem for room member and state events
1 parent 100678c commit 5c34f46

File tree

1 file changed

+24
-48
lines changed

1 file changed

+24
-48
lines changed

crates/matrix-sdk-ui/src/timeline/event_handler.rs

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ use ruma::{
3535
reaction::ReactionEventContent,
3636
receipt::Receipt,
3737
relation::Replacement,
38-
room::{
39-
member::RoomMemberEventContent,
40-
message::{self, RoomMessageEventContent, RoomMessageEventContentWithoutRelation},
41-
},
38+
room::message::{self, RoomMessageEventContent, RoomMessageEventContentWithoutRelation},
4239
AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnySyncStateEvent,
4340
AnySyncTimelineEvent, BundledMessageLikeRelations, EventContent, FullStateEventContent,
4441
MessageLikeEventType, SyncStateEvent,
@@ -152,19 +149,6 @@ pub(super) enum TimelineEventKind {
152149
Redaction {
153150
redacts: OwnedEventId,
154151
},
155-
156-
/// A timeline event for a room membership update.
157-
RoomMember {
158-
user_id: OwnedUserId,
159-
content: FullStateEventContent<RoomMemberEventContent>,
160-
sender: OwnedUserId,
161-
},
162-
163-
/// A state update that's not a [`Self::RoomMember`] event.
164-
OtherState {
165-
state_key: String,
166-
content: AnyOtherFullStateEventContent,
167-
},
168152
}
169153

170154
impl TimelineEventKind {
@@ -252,23 +236,32 @@ impl TimelineEventKind {
252236

253237
AnySyncTimelineEvent::State(ev) => match ev {
254238
AnySyncStateEvent::RoomMember(ev) => match ev {
255-
SyncStateEvent::Original(ev) => Self::RoomMember {
256-
user_id: ev.state_key,
257-
content: FullStateEventContent::Original {
258-
content: ev.content,
259-
prev_content: ev.unsigned.prev_content,
260-
},
261-
sender: ev.sender,
239+
SyncStateEvent::Original(ev) => Self::AddItem {
240+
content: TimelineItemContent::room_member(
241+
ev.state_key,
242+
FullStateEventContent::Original {
243+
content: ev.content,
244+
prev_content: ev.unsigned.prev_content,
245+
},
246+
ev.sender,
247+
),
248+
edit_json: None,
262249
},
263-
SyncStateEvent::Redacted(ev) => Self::RoomMember {
264-
user_id: ev.state_key,
265-
content: FullStateEventContent::Redacted(ev.content),
266-
sender: ev.sender,
250+
SyncStateEvent::Redacted(ev) => Self::AddItem {
251+
content: TimelineItemContent::room_member(
252+
ev.state_key,
253+
FullStateEventContent::Redacted(ev.content),
254+
ev.sender,
255+
),
256+
edit_json: None,
267257
},
268258
},
269-
ev => Self::OtherState {
270-
state_key: ev.state_key().to_owned(),
271-
content: AnyOtherFullStateEventContent::with_event_content(ev.content()),
259+
ev => Self::AddItem {
260+
content: TimelineItemContent::OtherState(OtherState {
261+
state_key: ev.state_key().to_owned(),
262+
content: AnyOtherFullStateEventContent::with_event_content(ev.content()),
263+
}),
264+
edit_json: None,
272265
},
273266
},
274267
})
@@ -500,23 +493,6 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
500493
TimelineEventKind::Redaction { redacts } => {
501494
self.handle_redaction(redacts);
502495
}
503-
504-
TimelineEventKind::RoomMember { user_id, content, sender } => {
505-
if should_add {
506-
self.add_item(TimelineItemContent::room_member(user_id, content, sender), None);
507-
}
508-
}
509-
510-
TimelineEventKind::OtherState { state_key, content } => {
511-
// Update room encryption if a `m.room.encryption` event is found in the
512-
// timeline
513-
if should_add {
514-
self.add_item(
515-
TimelineItemContent::OtherState(OtherState { state_key, content }),
516-
None,
517-
);
518-
}
519-
}
520496
}
521497

522498
if !self.result.item_added {

0 commit comments

Comments
 (0)