refactor: Refactored several usages of sort_by_key and match guards to utilize newer Rust version APIs
This commit is contained in:
@@ -52,33 +52,24 @@ impl DrawUi for IndexersUi {
|
||||
_ if TestAllIndexersUi::accepts(route) => TestAllIndexersUi::draw(f, app, area),
|
||||
Route::Lidarr(active_lidarr_block, _) => match active_lidarr_block {
|
||||
ActiveLidarrBlock::TestIndexer => {
|
||||
if app.is_loading || app.data.lidarr_data.indexer_test_errors.is_none() {
|
||||
if let Some(result) = app.data.lidarr_data.indexer_test_errors.as_ref().filter(|_| !app.is_loading) {
|
||||
let popup = if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
} else {
|
||||
let loading_popup = Popup::new(LoadingBlock::new(
|
||||
app.is_loading || app.data.lidarr_data.indexer_test_errors.is_none(),
|
||||
title_block("Testing Indexer"),
|
||||
))
|
||||
.size(Size::LargeMessage);
|
||||
f.render_widget(loading_popup, f.area());
|
||||
} else {
|
||||
let popup = {
|
||||
let result = app
|
||||
.data
|
||||
.lidarr_data
|
||||
.indexer_test_errors
|
||||
.as_ref()
|
||||
.expect("Test result is unpopulated");
|
||||
|
||||
if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
}
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
}
|
||||
ActiveLidarrBlock::DeleteIndexerPrompt => {
|
||||
|
||||
@@ -107,9 +107,8 @@ pub(super) fn draw_queued_events(f: &mut Frame<'_>, app: &mut App<'_>, area: Rec
|
||||
} else {
|
||||
queued
|
||||
};
|
||||
let started_string = if event.started.is_some() {
|
||||
let started =
|
||||
convert_to_minutes_hours_days(Utc::now().sub(event.started.unwrap()).num_minutes());
|
||||
let started_string = if let Some(date_time) = event.started {
|
||||
let started = convert_to_minutes_hours_days(Utc::now().sub(date_time).num_minutes());
|
||||
|
||||
if started != "now" {
|
||||
format!("{started} ago")
|
||||
@@ -120,8 +119,8 @@ pub(super) fn draw_queued_events(f: &mut Frame<'_>, app: &mut App<'_>, area: Rec
|
||||
String::new()
|
||||
};
|
||||
|
||||
let duration = if event.duration.is_some() {
|
||||
&event.duration.as_ref().unwrap()[..8]
|
||||
let duration = if let Some(dur) = &event.duration {
|
||||
&dur[..8]
|
||||
} else {
|
||||
""
|
||||
};
|
||||
|
||||
@@ -52,33 +52,24 @@ impl DrawUi for IndexersUi {
|
||||
_ if TestAllIndexersUi::accepts(route) => TestAllIndexersUi::draw(f, app, area),
|
||||
Route::Radarr(active_radarr_block, _) => match active_radarr_block {
|
||||
ActiveRadarrBlock::TestIndexer => {
|
||||
if app.is_loading || app.data.radarr_data.indexer_test_errors.is_none() {
|
||||
if let Some(result) = app.data.radarr_data.indexer_test_errors.as_ref().filter(|_| !app.is_loading) {
|
||||
let popup = if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
} else {
|
||||
let loading_popup = Popup::new(LoadingBlock::new(
|
||||
app.is_loading || app.data.radarr_data.indexer_test_errors.is_none(),
|
||||
title_block("Testing Indexer"),
|
||||
))
|
||||
.size(Size::LargeMessage);
|
||||
f.render_widget(loading_popup, f.area());
|
||||
} else {
|
||||
let popup = {
|
||||
let result = app
|
||||
.data
|
||||
.radarr_data
|
||||
.indexer_test_errors
|
||||
.as_ref()
|
||||
.expect("Test result is unpopulated");
|
||||
|
||||
if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
}
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
}
|
||||
ActiveRadarrBlock::DeleteIndexerPrompt => {
|
||||
|
||||
@@ -114,9 +114,8 @@ pub(super) fn draw_queued_events(f: &mut Frame<'_>, app: &mut App<'_>, area: Rec
|
||||
} else {
|
||||
queued
|
||||
};
|
||||
let started_string = if event.started.is_some() {
|
||||
let started =
|
||||
convert_to_minutes_hours_days(Utc::now().sub(event.started.unwrap()).num_minutes());
|
||||
let started_string = if let Some(date_time) = event.started {
|
||||
let started = convert_to_minutes_hours_days(Utc::now().sub(date_time).num_minutes());
|
||||
|
||||
if started != "now" {
|
||||
format!("{started} ago")
|
||||
|
||||
@@ -52,33 +52,24 @@ impl DrawUi for IndexersUi {
|
||||
_ if TestAllIndexersUi::accepts(route) => TestAllIndexersUi::draw(f, app, area),
|
||||
Route::Sonarr(active_sonarr_block, _) => match active_sonarr_block {
|
||||
ActiveSonarrBlock::TestIndexer => {
|
||||
if app.is_loading || app.data.sonarr_data.indexer_test_errors.is_none() {
|
||||
if let Some(result) = app.data.sonarr_data.indexer_test_errors.as_ref().filter(|_| !app.is_loading) {
|
||||
let popup = if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
} else {
|
||||
let loading_popup = Popup::new(LoadingBlock::new(
|
||||
app.is_loading || app.data.sonarr_data.indexer_test_errors.is_none(),
|
||||
title_block("Testing Indexer"),
|
||||
))
|
||||
.size(Size::LargeMessage);
|
||||
f.render_widget(loading_popup, f.area());
|
||||
} else {
|
||||
let popup = {
|
||||
let result = app
|
||||
.data
|
||||
.sonarr_data
|
||||
.indexer_test_errors
|
||||
.as_ref()
|
||||
.expect("Test result is unpopulated");
|
||||
|
||||
if !result.is_empty() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
} else {
|
||||
let message = Message::new("Indexer test succeeded!")
|
||||
.title("Success")
|
||||
.style(success_style().bold());
|
||||
Popup::new(message).size(Size::Message)
|
||||
}
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
}
|
||||
ActiveSonarrBlock::DeleteIndexerPrompt => {
|
||||
|
||||
@@ -107,9 +107,8 @@ pub(super) fn draw_queued_events(f: &mut Frame<'_>, app: &mut App<'_>, area: Rec
|
||||
} else {
|
||||
queued
|
||||
};
|
||||
let started_string = if event.started.is_some() {
|
||||
let started =
|
||||
convert_to_minutes_hours_days(Utc::now().sub(event.started.unwrap()).num_minutes());
|
||||
let started_string = if let Some(date_time) = event.started {
|
||||
let started = convert_to_minutes_hours_days(Utc::now().sub(date_time).num_minutes());
|
||||
|
||||
if started != "now" {
|
||||
format!("{started} ago")
|
||||
@@ -120,8 +119,8 @@ pub(super) fn draw_queued_events(f: &mut Frame<'_>, app: &mut App<'_>, area: Rec
|
||||
String::new()
|
||||
};
|
||||
|
||||
let duration = if event.duration.is_some() {
|
||||
&event.duration.as_ref().unwrap()[..8]
|
||||
let duration = if let Some(dur) = &event.duration {
|
||||
&dur[..8]
|
||||
} else {
|
||||
""
|
||||
};
|
||||
|
||||
@@ -125,11 +125,8 @@ where
|
||||
if let Some(content) = self.content
|
||||
&& !self.is_loading
|
||||
{
|
||||
let (table_contents, table_state) = if content.filtered_items.is_some() {
|
||||
(
|
||||
content.filtered_items.as_ref().unwrap(),
|
||||
content.filtered_state.as_mut().unwrap(),
|
||||
)
|
||||
let (table_contents, table_state) = if let Some(items) = &content.filtered_items {
|
||||
(items, content.filtered_state.as_mut().unwrap())
|
||||
} else {
|
||||
(&content.items, &mut content.state)
|
||||
};
|
||||
@@ -153,10 +150,11 @@ where
|
||||
|
||||
StatefulWidget::render(table, table_area, buf, table_state);
|
||||
|
||||
if content.sort.is_some() && self.is_sorting {
|
||||
let selectable_list = SelectableList::new(content.sort.as_mut().unwrap(), |item| {
|
||||
ListItem::new(Text::from(item.name))
|
||||
});
|
||||
if let Some(sort) = &mut content.sort
|
||||
&& self.is_sorting
|
||||
{
|
||||
let selectable_list =
|
||||
SelectableList::new(sort, |item| ListItem::new(Text::from(item.name)));
|
||||
Popup::new(selectable_list)
|
||||
.dimensions(20, 50)
|
||||
.render(table_area, buf);
|
||||
|
||||
Reference in New Issue
Block a user