Skip to content

Commit 99d740a

Browse files
committed
refactor(timeline): slightly optimize flow for saving a bundled edit
We only need the edit_json if we're about to save the edit aggregation. Likewise, if there's no current event id (i.e. the event being handled is a local echo), then we don't need to even try to extract anything from the bundle information.
1 parent af49a41 commit 99d740a

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -372,14 +372,13 @@ impl TimelineAction {
372372
c,
373373
)) => {
374374
// Record the bundled edit in the aggregations set, if any.
375-
if let Some(new_content) = relations.and_then(extract_poll_edit_content) {
376-
let edit_json = raw_event.and_then(extract_bundled_edit_event_json);
377-
378-
if let Some(target_id) = event_id {
375+
if let Some(target_id) = event_id {
376+
if let Some(new_content) = relations.and_then(extract_poll_edit_content) {
379377
// It is replacing the current event.
380378
if let Some(edit_event_id) = raw_event.and_then(|raw_event| {
381379
raw_event.get_field::<OwnedEventId>("event_id").ok().flatten()
382380
}) {
381+
let edit_json = raw_event.and_then(extract_bundled_edit_event_json);
383382
let aggregation = Aggregation::new(
384383
TimelineEventItemId::EventId(edit_event_id),
385384
AggregationKind::Edit(PendingEdit {
@@ -420,14 +419,13 @@ impl TimelineAction {
420419

421420
AnyMessageLikeEventContent::RoomMessage(msg) => {
422421
// Record the bundled edit in the aggregations set, if any.
423-
if let Some(new_content) = relations.and_then(extract_room_msg_edit_content) {
424-
let edit_json = raw_event.and_then(extract_bundled_edit_event_json);
425-
426-
if let Some(target_id) = event_id {
422+
if let Some(target_id) = event_id {
423+
if let Some(new_content) = relations.and_then(extract_room_msg_edit_content) {
427424
// It is replacing the current event.
428425
if let Some(edit_event_id) = raw_event.and_then(|raw_event| {
429426
raw_event.get_field::<OwnedEventId>("event_id").ok().flatten()
430427
}) {
428+
let edit_json = raw_event.and_then(extract_bundled_edit_event_json);
431429
let aggregation = Aggregation::new(
432430
TimelineEventItemId::EventId(edit_event_id),
433431
AggregationKind::Edit(PendingEdit {

0 commit comments

Comments
 (0)