Skip to content

Commit 1234cc7

Browse files
committed
refactor(timeline): add a small helper function to create TimelineEventKind::AddItem items
1 parent 5c34f46 commit 1234cc7

File tree

1 file changed

+36
-49
lines changed

1 file changed

+36
-49
lines changed

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

Lines changed: 36 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,11 @@ pub(super) enum TimelineEventKind {
152152
}
153153

154154
impl TimelineEventKind {
155+
/// Create a new [`TimelineEventKind::AddItem`] with no edit json.
156+
fn add_item(content: TimelineItemContent) -> Self {
157+
Self::AddItem { content, edit_json: None }
158+
}
159+
155160
/// Creates a new `TimelineEventKind`.
156161
///
157162
/// # Arguments
@@ -182,10 +187,7 @@ impl TimelineEventKind {
182187
if let Some(redacts) = ev.redacts(&room_version).map(ToOwned::to_owned) {
183188
Self::Redaction { redacts }
184189
} else {
185-
Self::AddItem {
186-
content: redacted_message_or_none(ev.event_type())?,
187-
edit_json: None,
188-
}
190+
Self::add_item(redacted_message_or_none(ev.event_type())?)
189191
}
190192
}
191193

@@ -211,10 +213,7 @@ impl TimelineEventKind {
211213
.await;
212214
}
213215

214-
Self::AddItem {
215-
content: TimelineItemContent::unable_to_decrypt(content, utd_cause),
216-
edit_json: None,
217-
}
216+
Self::add_item(TimelineItemContent::unable_to_decrypt(content, utd_cause))
218217
} else {
219218
// If we get here, it means that some part of the code has created a
220219
// `TimelineEvent` containing an `m.room.encrypted` event
@@ -228,41 +227,33 @@ impl TimelineEventKind {
228227
}
229228
}
230229
Some(content) => Self::Message { content, relations: ev.relations() },
231-
None => Self::AddItem {
232-
content: redacted_message_or_none(ev.event_type())?,
233-
edit_json: None,
234-
},
230+
None => Self::add_item(redacted_message_or_none(ev.event_type())?),
235231
},
236232

237233
AnySyncTimelineEvent::State(ev) => match ev {
238234
AnySyncStateEvent::RoomMember(ev) => match ev {
239-
SyncStateEvent::Original(ev) => Self::AddItem {
240-
content: TimelineItemContent::room_member(
235+
SyncStateEvent::Original(ev) => {
236+
Self::add_item(TimelineItemContent::room_member(
241237
ev.state_key,
242238
FullStateEventContent::Original {
243239
content: ev.content,
244240
prev_content: ev.unsigned.prev_content,
245241
},
246242
ev.sender,
247-
),
248-
edit_json: None,
249-
},
250-
SyncStateEvent::Redacted(ev) => Self::AddItem {
251-
content: TimelineItemContent::room_member(
243+
))
244+
}
245+
SyncStateEvent::Redacted(ev) => {
246+
Self::add_item(TimelineItemContent::room_member(
252247
ev.state_key,
253248
FullStateEventContent::Redacted(ev.content),
254249
ev.sender,
255-
),
256-
edit_json: None,
257-
},
258-
},
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,
250+
))
251+
}
265252
},
253+
ev => Self::add_item(TimelineItemContent::OtherState(OtherState {
254+
state_key: ev.state_key().to_owned(),
255+
content: AnyOtherFullStateEventContent::with_event_content(ev.content()),
256+
})),
266257
},
267258
})
268259
}
@@ -273,36 +264,32 @@ impl TimelineEventKind {
273264
) -> Self {
274265
let error = Arc::new(error);
275266
match event {
276-
SyncTimelineEventWithoutContent::OriginalMessageLike(ev) => Self::AddItem {
277-
content: TimelineItemContent::FailedToParseMessageLike {
267+
SyncTimelineEventWithoutContent::OriginalMessageLike(ev) => {
268+
Self::add_item(TimelineItemContent::FailedToParseMessageLike {
278269
event_type: ev.content.event_type,
279270
error,
280-
},
281-
edit_json: None,
282-
},
283-
SyncTimelineEventWithoutContent::RedactedMessageLike(ev) => Self::AddItem {
284-
content: TimelineItemContent::FailedToParseMessageLike {
271+
})
272+
}
273+
SyncTimelineEventWithoutContent::RedactedMessageLike(ev) => {
274+
Self::add_item(TimelineItemContent::FailedToParseMessageLike {
285275
event_type: ev.content.event_type,
286276
error,
287-
},
288-
edit_json: None,
289-
},
290-
SyncTimelineEventWithoutContent::OriginalState(ev) => Self::AddItem {
291-
content: TimelineItemContent::FailedToParseState {
277+
})
278+
}
279+
SyncTimelineEventWithoutContent::OriginalState(ev) => {
280+
Self::add_item(TimelineItemContent::FailedToParseState {
292281
event_type: ev.content.event_type,
293282
state_key: ev.state_key,
294283
error,
295-
},
296-
edit_json: None,
297-
},
298-
SyncTimelineEventWithoutContent::RedactedState(ev) => Self::AddItem {
299-
content: TimelineItemContent::FailedToParseState {
284+
})
285+
}
286+
SyncTimelineEventWithoutContent::RedactedState(ev) => {
287+
Self::add_item(TimelineItemContent::FailedToParseState {
300288
event_type: ev.content.event_type,
301289
state_key: ev.state_key,
302290
error,
303-
},
304-
edit_json: None,
305-
},
291+
})
292+
}
306293
}
307294
}
308295
}

0 commit comments

Comments
 (0)