Upgraded ratatui to 0.28.0
This commit is contained in:
@@ -18,18 +18,16 @@ impl<T> Scrollable for StatefulList<T> {
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.state.selected() {
|
||||
match self.state.selected() {
|
||||
Some(i) => {
|
||||
if i >= self.items.len() - 1 {
|
||||
0
|
||||
self.state.select_first();
|
||||
} else {
|
||||
i + 1
|
||||
self.state.select_next();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.state.select_first(),
|
||||
};
|
||||
|
||||
self.state.select(Some(selected_row));
|
||||
}
|
||||
|
||||
fn scroll_up(&mut self) {
|
||||
@@ -37,18 +35,16 @@ impl<T> Scrollable for StatefulList<T> {
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.state.selected() {
|
||||
match self.state.selected() {
|
||||
Some(i) => {
|
||||
if i == 0 {
|
||||
self.items.len() - 1
|
||||
self.state.select(Some(self.items.len() - 1));
|
||||
} else {
|
||||
i - 1
|
||||
self.state.select_previous();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.state.select_first(),
|
||||
};
|
||||
|
||||
self.state.select(Some(selected_row));
|
||||
}
|
||||
|
||||
fn scroll_to_top(&mut self) {
|
||||
@@ -56,7 +52,7 @@ impl<T> Scrollable for StatefulList<T> {
|
||||
return;
|
||||
}
|
||||
|
||||
self.state.select(Some(0));
|
||||
self.state.select_first();
|
||||
}
|
||||
|
||||
fn scroll_to_bottom(&mut self) {
|
||||
|
||||
@@ -42,22 +42,17 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.filtered_state.as_ref().unwrap().selected() {
|
||||
match self.filtered_state.as_ref().unwrap().selected() {
|
||||
Some(i) => {
|
||||
if i >= filtered_items.len() - 1 {
|
||||
0
|
||||
self.filtered_state.as_mut().unwrap().select_first();
|
||||
} else {
|
||||
i + 1
|
||||
self.filtered_state.as_mut().unwrap().select_next();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.filtered_state.as_mut().unwrap().select_first(),
|
||||
};
|
||||
|
||||
self
|
||||
.filtered_state
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.select(Some(selected_row));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -65,18 +60,16 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.state.selected() {
|
||||
match self.state.selected() {
|
||||
Some(i) => {
|
||||
if i >= self.items.len() - 1 {
|
||||
0
|
||||
self.state.select_first();
|
||||
} else {
|
||||
i + 1
|
||||
self.state.select_next();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.state.select_first(),
|
||||
};
|
||||
|
||||
self.state.select(Some(selected_row));
|
||||
}
|
||||
|
||||
fn scroll_up(&mut self) {
|
||||
@@ -85,22 +78,21 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.filtered_state.as_ref().unwrap().selected() {
|
||||
match self.filtered_state.as_ref().unwrap().selected() {
|
||||
Some(i) => {
|
||||
if i == 0 {
|
||||
filtered_items.len() - 1
|
||||
self
|
||||
.filtered_state
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.select(Some(filtered_items.len() - 1));
|
||||
} else {
|
||||
i - 1
|
||||
self.filtered_state.as_mut().unwrap().select_previous();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.filtered_state.as_mut().unwrap().select_first(),
|
||||
};
|
||||
|
||||
self
|
||||
.filtered_state
|
||||
.as_mut()
|
||||
.unwrap()
|
||||
.select(Some(selected_row));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -108,18 +100,16 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
let selected_row = match self.state.selected() {
|
||||
match self.state.selected() {
|
||||
Some(i) => {
|
||||
if i == 0 {
|
||||
self.items.len() - 1
|
||||
self.state.select(Some(self.items.len() - 1));
|
||||
} else {
|
||||
i - 1
|
||||
self.state.select_previous();
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => self.state.select_first(),
|
||||
};
|
||||
|
||||
self.state.select(Some(selected_row));
|
||||
}
|
||||
|
||||
fn scroll_to_top(&mut self) {
|
||||
@@ -128,7 +118,7 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
self.filtered_state.as_mut().unwrap().select(Some(0));
|
||||
self.filtered_state.as_mut().unwrap().select_first();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -136,7 +126,7 @@ where
|
||||
return;
|
||||
}
|
||||
|
||||
self.state.select(Some(0));
|
||||
self.state.select_first();
|
||||
}
|
||||
|
||||
fn scroll_to_bottom(&mut self) {
|
||||
|
||||
+5
-5
@@ -31,7 +31,7 @@ pub trait DrawUi {
|
||||
}
|
||||
|
||||
pub fn ui(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
f.render_widget(background_block(), f.size());
|
||||
f.render_widget(background_block(), f.area());
|
||||
let [header_area, context_area, table_area] = if !app.error.text.is_empty() {
|
||||
let [header_area, error_area, context_area, table_area] = Layout::vertical([
|
||||
Constraint::Length(3),
|
||||
@@ -39,7 +39,7 @@ pub fn ui(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
Constraint::Length(10),
|
||||
Constraint::Fill(0),
|
||||
])
|
||||
.areas(f.size());
|
||||
.areas(f.area());
|
||||
|
||||
draw_error(f, app, error_area);
|
||||
|
||||
@@ -50,7 +50,7 @@ pub fn ui(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
Constraint::Length(10),
|
||||
Constraint::Fill(0),
|
||||
])
|
||||
.areas(f.size())
|
||||
.areas(f.area())
|
||||
};
|
||||
|
||||
draw_header_row(f, app, header_area);
|
||||
@@ -110,7 +110,7 @@ pub fn draw_popup(
|
||||
size: Size,
|
||||
) {
|
||||
let (percent_x, percent_y) = size.to_percent();
|
||||
let popup_area = centered_rect(percent_x, percent_y, f.size());
|
||||
let popup_area = centered_rect(percent_x, percent_y, f.area());
|
||||
f.render_widget(Clear, popup_area);
|
||||
f.render_widget(background_block(), popup_area);
|
||||
popup_fn(f, app, popup_area);
|
||||
@@ -118,7 +118,7 @@ pub fn draw_popup(
|
||||
|
||||
fn draw_popup_ui<T: DrawUi>(f: &mut Frame<'_>, app: &mut App<'_>, size: Size) {
|
||||
let (percent_x, percent_y) = size.to_percent();
|
||||
let popup_area = centered_rect(percent_x, percent_y, f.size());
|
||||
let popup_area = centered_rect(percent_x, percent_y, f.area());
|
||||
f.render_widget(Clear, popup_area);
|
||||
f.render_widget(background_block(), popup_area);
|
||||
T::draw(f, app, popup_area);
|
||||
|
||||
@@ -56,7 +56,7 @@ impl DrawUi for BlocklistUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_blocklist_table(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
ActiveRadarrBlock::BlocklistClearAllItemsPrompt => {
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
@@ -67,7 +67,7 @@ impl DrawUi for BlocklistUi {
|
||||
draw_blocklist_table(f, app, area);
|
||||
f.render_widget(
|
||||
Popup::new(confirmation_prompt).size(Size::SmallPrompt),
|
||||
f.size(),
|
||||
f.area(),
|
||||
);
|
||||
}
|
||||
_ => (),
|
||||
@@ -197,5 +197,5 @@ fn draw_blocklist_item_details_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.style(Style::new().secondary())
|
||||
.alignment(Alignment::Left);
|
||||
|
||||
f.render_widget(Popup::new(message).size(Size::NarrowMessage), f.size());
|
||||
f.render_widget(Popup::new(message).size(Size::NarrowMessage), f.area());
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ fn draw_edit_collection_select_minimum_availability_popup(f: &mut Frame<'_>, app
|
||||
);
|
||||
let popup = Popup::new(min_availability_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_edit_collection_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
@@ -198,5 +198,5 @@ fn draw_edit_collection_select_quality_profile_popup(f: &mut Frame<'_>, app: &mu
|
||||
);
|
||||
let popup = Popup::new(quality_profile_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ impl DrawUi for CollectionsUi {
|
||||
let popup = Popup::new(Message::new("Collection not found!")).size(Size::Message);
|
||||
|
||||
draw_collections(f, app, area);
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
ActiveRadarrBlock::FilterCollections => draw_popup_over(
|
||||
f,
|
||||
@@ -72,7 +72,7 @@ impl DrawUi for CollectionsUi {
|
||||
.size(Size::Message);
|
||||
|
||||
draw_collections(f, app, area);
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
ActiveRadarrBlock::UpdateAllCollectionsPrompt => {
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
@@ -81,7 +81,7 @@ impl DrawUi for CollectionsUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_collections(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
_ => (),
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@ impl DrawUi for DownloadsUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_downloads(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
ActiveRadarrBlock::UpdateDownloadsPrompt => {
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
@@ -53,7 +53,7 @@ impl DrawUi for DownloadsUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_downloads(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ impl DrawUi for IndexersUi {
|
||||
title_block("Testing Indexer"),
|
||||
))
|
||||
.size(Size::LargeMessage);
|
||||
f.render_widget(loading_popup, f.size());
|
||||
f.render_widget(loading_popup, f.area());
|
||||
} else {
|
||||
let popup = if let Some(result) = app.data.radarr_data.indexer_test_error.as_ref() {
|
||||
Popup::new(Message::new(result.clone())).size(Size::LargeMessage)
|
||||
@@ -65,7 +65,7 @@ impl DrawUi for IndexersUi {
|
||||
Popup::new(message).size(Size::Message)
|
||||
};
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
}
|
||||
ActiveRadarrBlock::DeleteIndexerPrompt => {
|
||||
@@ -86,7 +86,7 @@ impl DrawUi for IndexersUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_indexers(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
_ => (),
|
||||
};
|
||||
|
||||
@@ -80,7 +80,7 @@ impl DrawUi for AddMovieUi {
|
||||
draw_add_movie_search(f, app, area);
|
||||
f.render_widget(
|
||||
Popup::new(Message::new("This film is already in your library")).size(Size::Message),
|
||||
f.size(),
|
||||
f.area(),
|
||||
);
|
||||
}
|
||||
_ => (),
|
||||
@@ -223,7 +223,7 @@ fn draw_add_movie_search(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
let error_message_popup = Popup::new(error_message).size(Size::Message);
|
||||
|
||||
f.render_widget(layout_block(), results_area);
|
||||
f.render_widget(error_message_popup, f.size());
|
||||
f.render_widget(error_message_popup, f.area());
|
||||
f.render_widget(help_paragraph, help_area);
|
||||
}
|
||||
ActiveRadarrBlock::AddMovieSearchResults
|
||||
@@ -447,7 +447,7 @@ fn draw_add_movie_select_monitor_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
);
|
||||
let popup = Popup::new(monitor_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_add_movie_select_minimum_availability_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
@@ -463,7 +463,7 @@ fn draw_add_movie_select_minimum_availability_popup(f: &mut Frame<'_>, app: &mut
|
||||
);
|
||||
let popup = Popup::new(minimum_availability_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_add_movie_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
@@ -479,7 +479,7 @@ fn draw_add_movie_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App<
|
||||
);
|
||||
let popup = Popup::new(quality_profile_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_add_movie_select_root_folder_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
@@ -495,5 +495,5 @@ fn draw_add_movie_select_root_folder_popup(f: &mut Frame<'_>, app: &mut App<'_>)
|
||||
);
|
||||
let popup = Popup::new(root_folder_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ impl DrawUi for DeleteMovieUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_library(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ fn draw_edit_movie_select_minimum_availability_popup(f: &mut Frame<'_>, app: &mu
|
||||
);
|
||||
let popup = Popup::new(minimum_availability_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_edit_movie_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
@@ -210,5 +210,5 @@ fn draw_edit_movie_select_quality_profile_popup(f: &mut Frame<'_>, app: &mut App
|
||||
);
|
||||
let popup = Popup::new(quality_profile_list).size(Size::Dropdown);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ impl DrawUi for LibraryUi {
|
||||
let popup = Popup::new(Message::new("Movie not found!")).size(Size::Message);
|
||||
|
||||
draw_library(f, app, area);
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
ActiveRadarrBlock::FilterMovies => draw_popup_over(
|
||||
f,
|
||||
@@ -75,7 +75,7 @@ impl DrawUi for LibraryUi {
|
||||
.size(Size::Message);
|
||||
|
||||
draw_library(f, app, area);
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
ActiveRadarrBlock::UpdateAllMoviesPrompt => {
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
@@ -84,7 +84,7 @@ impl DrawUi for LibraryUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_library(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
_ => (),
|
||||
};
|
||||
|
||||
@@ -61,7 +61,7 @@ impl DrawUi for MovieDetailsUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_movie_info(f, app, content_area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
ActiveRadarrBlock::UpdateAndScanPrompt => {
|
||||
let prompt = format!(
|
||||
@@ -73,7 +73,7 @@ impl DrawUi for MovieDetailsUi {
|
||||
.prompt(&prompt)
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
ActiveRadarrBlock::ManualSearchConfirmPrompt => {
|
||||
draw_manual_search_confirm_prompt(f, app);
|
||||
@@ -517,14 +517,14 @@ fn draw_manual_search_confirm_prompt(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.content(content_paragraph)
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Small), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Small), f.area());
|
||||
} else {
|
||||
let confirmation_prompt = ConfirmationPrompt::new()
|
||||
.title(title)
|
||||
.prompt(&prompt)
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ impl DrawUi for RootFoldersUi {
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
draw_root_folders(f, app, area);
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ fn draw_logs_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.block(block)
|
||||
.footer(&help_footer);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ fn draw_logs_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.block(block)
|
||||
.footer(&help_footer);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
|
||||
fn draw_tasks_popup(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
@@ -145,7 +145,7 @@ fn draw_tasks_popup(f: &mut Frame<'_>, app: &mut App<'_>, area: Rect) {
|
||||
.prompt(&prompt)
|
||||
.yes_no_value(app.data.radarr_data.prompt_confirm);
|
||||
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.size());
|
||||
f.render_widget(Popup::new(confirmation_prompt).size(Size::Prompt), f.area());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ fn draw_updates_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.block(block)
|
||||
.footer(&help_footer);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
} else {
|
||||
let loading = LoadingBlock::new(app.is_loading, borderless_block());
|
||||
let popup = Popup::new(loading)
|
||||
@@ -174,6 +174,6 @@ fn draw_updates_popup(f: &mut Frame<'_>, app: &mut App<'_>) {
|
||||
.block(block)
|
||||
.footer(&help_footer);
|
||||
|
||||
f.render_widget(popup, f.size());
|
||||
f.render_widget(popup, f.area());
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
use ratatui::prelude::{Color, Styled};
|
||||
use ratatui::style::Stylize;
|
||||
use ratatui::prelude::Color;
|
||||
use ratatui::style::{Styled, Stylize};
|
||||
|
||||
pub const COLOR_ORANGE: Color = Color::Rgb(255, 170, 66);
|
||||
|
||||
@@ -99,7 +99,7 @@ where
|
||||
fn unreleased(self) -> T {
|
||||
self.light_cyan()
|
||||
}
|
||||
|
||||
|
||||
fn warning(self) -> T {
|
||||
self.magenta()
|
||||
}
|
||||
|
||||
+2
-2
@@ -98,7 +98,7 @@ pub fn centered_rect(percent_x: u16, percent_y: u16, area: Rect) -> Rect {
|
||||
pub fn line_gauge_with_title(title: &str, ratio: f64) -> LineGauge<'_> {
|
||||
LineGauge::new()
|
||||
.block(Block::new().title(title))
|
||||
.gauge_style(Style::new().cyan())
|
||||
.filled_style(Style::new().cyan())
|
||||
.line_set(symbols::line::THICK)
|
||||
.ratio(ratio)
|
||||
.label(Line::from(format!("{:.0}%", ratio * 100.0)))
|
||||
@@ -107,7 +107,7 @@ pub fn line_gauge_with_title(title: &str, ratio: f64) -> LineGauge<'_> {
|
||||
pub fn line_gauge_with_label(title: &str, ratio: f64) -> LineGauge<'_> {
|
||||
LineGauge::new()
|
||||
.block(Block::new())
|
||||
.gauge_style(Style::new().cyan())
|
||||
.filled_style(Style::new().cyan())
|
||||
.line_set(symbols::line::THICK)
|
||||
.ratio(ratio)
|
||||
.label(Line::from(format!("{title}: {:.0}%", ratio * 100.0)))
|
||||
|
||||
@@ -2,7 +2,8 @@ use crate::ui::styles::ManagarrStyle;
|
||||
use crate::ui::utils::{layout_block, style_block_highlight};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Constraint, Flex, Layout, Rect};
|
||||
use ratatui::prelude::{Style, Styled, Text, Widget};
|
||||
use ratatui::prelude::{Style, Text, Widget};
|
||||
use ratatui::style::Styled;
|
||||
use ratatui::widgets::Paragraph;
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::{Alignment, Constraint, Layout, Rect};
|
||||
use ratatui::layout::{Alignment, Constraint, Layout, Position, Rect};
|
||||
use ratatui::prelude::Text;
|
||||
use ratatui::style::{Style, Styled, Stylize};
|
||||
use ratatui::widgets::{Block, Paragraph, Widget};
|
||||
@@ -84,12 +84,15 @@ impl<'a> InputBox<'a> {
|
||||
};
|
||||
|
||||
if self.cursor_after_string {
|
||||
f.set_cursor(
|
||||
area.x + (self.content.len() - self.offset) as u16 + 1,
|
||||
area.y + 1,
|
||||
);
|
||||
f.set_cursor_position(Position {
|
||||
x: area.x + (self.content.len() - self.offset) as u16 + 1,
|
||||
y: area.y + 1,
|
||||
});
|
||||
} else {
|
||||
f.set_cursor(area.x + 1u16, area.y + 1);
|
||||
f.set_cursor_position(Position {
|
||||
x: area.x + 1u16,
|
||||
y: area.y + 1,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user