From 15dfc6293337b5fea0e9c037232181a0c4a23c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= Date: Thu, 14 Mar 2024 23:31:55 +0300 Subject: [PATCH] refactor: Accommodate latest changes in ratatui --- src/app/keys.rs | 19 ++++++++------- src/app/renderer.rs | 57 +++++++++++++++------------------------------ src/app/style.rs | 31 +++++++++++++----------- 3 files changed, 47 insertions(+), 60 deletions(-) diff --git a/src/app/keys.rs b/src/app/keys.rs index 402a405..9006f69 100644 --- a/src/app/keys.rs +++ b/src/app/keys.rs @@ -308,16 +308,17 @@ mod tests { content: Borrowed("quits the application\n"), style: Style::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed(":quit\n"), style: Style::default().fg(Color::Red), }], - alignment: None, + ..Default::default() }, ], + ..Default::default() }, key_binding.get_description_text(Style::default().fg(Color::Red)) ); @@ -329,23 +330,24 @@ mod tests { content: Borrowed("[q] [esc] "), style: Style::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed(" └─quit"), style: Style::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed(" "), style: Style::default(), }], - alignment: None, + ..Default::default() }, ], + ..Default::default() }), key_binding.as_list_item(false, false) ); @@ -403,7 +405,7 @@ mod tests { }, }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -422,10 +424,11 @@ mod tests { }, }, ], - alignment: None, + ..Default::default() }, Line::default(), - ] + ], + ..Default::default() }), key_binding.as_list_item(true, true) ); diff --git a/src/app/renderer.rs b/src/app/renderer.rs index 6257f77..eb24aec 100644 --- a/src/app/renderer.rs +++ b/src/app/renderer.rs @@ -5,7 +5,6 @@ use crate::app::style; use crate::app::tab::Tab; use crate::widget::row::RowItem; use crate::widget::table::TableSize; -use ratatui::backend::Backend; use ratatui::layout::{Alignment, Constraint, Direction, Layout, Rect}; use ratatui::style::{Color, Modifier, Style}; use ratatui::terminal::Frame; @@ -22,7 +21,7 @@ use unicode_width::UnicodeWidthStr; const KEYS_ROW_LENGTH: (u16, u16) = (31, 55); /// Renders all the widgets thus the user interface. -pub fn render(app: &mut App, frame: &mut Frame<'_, B>) { +pub fn render(app: &mut App, frame: &mut Frame) { let rect = frame.size(); if app.keys_table.state.minimize_threshold != 0 { app.keys_table.state.size.set_minimized( @@ -50,11 +49,7 @@ pub fn render(app: &mut App, frame: &mut Frame<'_, B>) { } /// Renders the splash screen. -fn render_splash_screen( - app: &mut App, - frame: &mut Frame<'_, B>, - rect: Rect, -) { +fn render_splash_screen(app: &mut App, frame: &mut Frame, rect: Rect) { app.state.show_splash = app.splash_screen.step != 0; let data = app.splash_screen.get(app.state.style.is_colored()); frame.render_widget( @@ -82,11 +77,7 @@ fn render_splash_screen( } /// Renders the command prompt. -fn render_command_prompt( - app: &mut App, - frame: &mut Frame<'_, B>, - rect: Rect, -) { +fn render_command_prompt(app: &mut App, frame: &mut Frame, rect: Rect) { frame.render_widget( Paragraph::new(Line::from(if !app.prompt.text.is_empty() { vec![Span::raw(format!( @@ -165,11 +156,7 @@ fn render_command_prompt( } /// Renders the help tab. -fn render_help_tab( - app: &mut App, - frame: &mut Frame<'_, B>, - rect: Rect, -) { +fn render_help_tab(app: &mut App, frame: &mut Frame, rect: Rect) { frame.render_widget( Block::default() .borders(Borders::ALL) @@ -323,11 +310,7 @@ fn render_help_tab( } /// Renders the options menu. -fn render_options_menu( - app: &mut App, - frame: &mut Frame<'_, B>, - rect: Rect, -) { +fn render_options_menu(app: &mut App, frame: &mut Frame, rect: Rect) { let items = app .options .items @@ -394,24 +377,26 @@ fn render_options_menu( } /// Renders the table of keys. -fn render_keys_table( - app: &mut App, - frame: &mut Frame<'_, B>, - rect: Rect, -) { +fn render_keys_table(app: &mut App, frame: &mut Frame, rect: Rect) { let keys_row_length = if app.keys_table.state.size != TableSize::Normal { KEYS_ROW_LENGTH.0 } else { KEYS_ROW_LENGTH.1 }; frame.render_stateful_widget( - Table::new(get_keys_table_rows( - app, - rect.width - .checked_sub(keys_row_length + 7) - .unwrap_or(rect.width), - rect.height.checked_sub(2).unwrap_or(rect.height), - )) + Table::new( + get_keys_table_rows( + app, + rect.width + .checked_sub(keys_row_length + 7) + .unwrap_or(rect.width), + rect.height.checked_sub(2).unwrap_or(rect.height), + ), + &[ + Constraint::Min(keys_row_length), + Constraint::Percentage(100), + ], + ) .style(Style::default().fg(app.state.color)) .highlight_style(if app.state.style.is_colored() { Style::default().add_modifier(Modifier::BOLD) @@ -426,10 +411,6 @@ fn render_keys_table( .borders(Borders::ALL) .border_style(Style::default().fg(Color::DarkGray)), ) - .widths(&[ - Constraint::Min(keys_row_length), - Constraint::Percentage(100), - ]) .column_spacing(1), rect, &mut app.keys_table.state.tui, diff --git a/src/app/style.rs b/src/app/style.rs index 3c8a6f0..a839dbd 100644 --- a/src/app/style.rs +++ b/src/app/style.rs @@ -245,7 +245,7 @@ mod tests { content: Borrowed(""), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -306,23 +306,24 @@ mod tests { style: TuiStyle::default(), }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed(" └─(2020-07-29)"), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed("\t\t"), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, ], + ..Default::default() }, get_colored_table_row(&row_data, false) ); @@ -344,7 +345,7 @@ mod tests { content: Borrowed(""), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -389,7 +390,7 @@ mod tests { style: TuiStyle::default(), }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -409,14 +410,14 @@ mod tests { style: TuiStyle::default(), }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed("\t├─][ test"), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -461,16 +462,17 @@ mod tests { style: TuiStyle::default(), }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { content: Borrowed("\t\t\t\t"), style: TuiStyle::default(), }], - alignment: None, + ..Default::default() }, ], + ..Default::default() }, get_colored_table_row(&row_data, false) ); @@ -501,7 +503,7 @@ mod tests { }, }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![ @@ -527,7 +529,7 @@ mod tests { }, }, ], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { @@ -537,7 +539,7 @@ mod tests { ..TuiStyle::default() }, }], - alignment: None, + ..Default::default() }, Line { spans: vec![Span { @@ -547,9 +549,10 @@ mod tests { ..TuiStyle::default() }, }], - alignment: None, + ..Default::default() }, ], + ..Default::default() }, get_colored_info( "test: xyz \n\