refactor(multiverse): simplify code around search
This commit is contained in:
+24
-24
@@ -964,29 +964,29 @@ async fn get_events_from_event_ids(
|
||||
room: &Room,
|
||||
event_ids: Vec<OwnedEventId>,
|
||||
) -> Vec<TimelineEvent> {
|
||||
if let Ok(cache_lock) = client.event_cache_store().lock().await {
|
||||
let cache_lock =
|
||||
cache_lock.as_clean().expect("Only one process must access the event cache store");
|
||||
|
||||
futures_util::future::join_all(event_ids.iter().map(|event_id| async {
|
||||
let event_id = event_id.clone();
|
||||
match cache_lock.find_event(room.room_id(), &event_id).await {
|
||||
Ok(ev) => ev,
|
||||
Err(_) => room
|
||||
.event(&event_id, None)
|
||||
.await
|
||||
.inspect_err(|err| {
|
||||
debug!("Failed to find event {event_id} in event cache and server: {err}");
|
||||
})
|
||||
.ok(),
|
||||
}
|
||||
}))
|
||||
.await
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.collect::<Vec<TimelineEvent>>()
|
||||
} else {
|
||||
let Ok(cache_lock) = client.event_cache_store().lock().await else {
|
||||
debug!("Couldnt get event cache store lock.");
|
||||
Vec::new()
|
||||
}
|
||||
return Vec::new();
|
||||
};
|
||||
|
||||
let cache_lock =
|
||||
cache_lock.as_clean().expect("Only one process must access the event cache store");
|
||||
|
||||
futures_util::future::join_all(event_ids.iter().map(|event_id| async {
|
||||
let event_id = event_id.clone();
|
||||
match cache_lock.find_event(room.room_id(), &event_id).await {
|
||||
Ok(ev) => ev,
|
||||
Err(_) => room
|
||||
.event(&event_id, None)
|
||||
.await
|
||||
.inspect_err(|err| {
|
||||
debug!("Failed to find event {event_id} in event cache and server: {err}");
|
||||
})
|
||||
.ok(),
|
||||
}
|
||||
}))
|
||||
.await
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.collect::<Vec<TimelineEvent>>()
|
||||
}
|
||||
|
||||
@@ -111,15 +111,13 @@ impl Widget for &mut SearchingView {
|
||||
.len()
|
||||
+ 3;
|
||||
|
||||
if context.index % 2 == 0 {
|
||||
message_widget.style = Style::default().fg(TEXT_COLOR).bg(ALT_ROW_COLOR);
|
||||
message_widget.style = if context.is_selected {
|
||||
Style::default().bg(NORMAL_ROW_COLOR).fg(SELECTED_STYLE_FG)
|
||||
} else if context.index % 2 == 0 {
|
||||
Style::default().fg(TEXT_COLOR).bg(ALT_ROW_COLOR)
|
||||
} else {
|
||||
message_widget.style = Style::default().fg(TEXT_COLOR).bg(NORMAL_ROW_COLOR);
|
||||
}
|
||||
|
||||
if context.is_selected {
|
||||
message_widget.style = Style::default().bg(NORMAL_ROW_COLOR).fg(SELECTED_STYLE_FG);
|
||||
}
|
||||
Style::default().fg(TEXT_COLOR).bg(NORMAL_ROW_COLOR)
|
||||
};
|
||||
|
||||
(message_widget, main_axis_size as u16)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user