diff --git a/src/app/views/default.rs b/src/app/views/default.rs index 8978dd1..7512b60 100644 --- a/src/app/views/default.rs +++ b/src/app/views/default.rs @@ -1,7 +1,4 @@ -use crate::app::{ - keybindings::{Action, KeyBinding, binding_for}, - widgets::KeybindingsWidget, -}; +use crate::app::{keybindings::Action, widgets::KeybindingsWidget}; use ratatui::{ buffer::Buffer, layout::{Alignment, Constraint, Layout, Rect}, @@ -25,12 +22,8 @@ pub fn default_view(area: Rect, buf: &mut Buffer) { .render(main_area, buf); { - let keybindings: Vec> = vec![ - binding_for(Action::Quit), - binding_for(Action::Quit2), - binding_for(Action::Esc), - ]; + let actions: Vec = vec![Action::Quit, Action::Quit2, Action::Esc]; - KeybindingsWidget::new(keybindings).render(keybindings_area, buf); + KeybindingsWidget::new(actions).render(keybindings_area, buf); } } diff --git a/src/app/views/main_menu.rs b/src/app/views/main_menu.rs index df349c7..a4ecb2f 100644 --- a/src/app/views/main_menu.rs +++ b/src/app/views/main_menu.rs @@ -1,8 +1,4 @@ -use crate::app::{ - App, View, - keybindings::{Action, KeyBinding, binding_for}, - widgets::KeybindingsWidget, -}; +use crate::app::{App, View, keybindings::Action, widgets::KeybindingsWidget}; use clap::ValueEnum; use ratatui::{ buffer::Buffer, @@ -87,14 +83,14 @@ pub fn main_menu_view(app: &App, area: Rect, buf: &mut Buffer) { } { - let keybindings: Vec> = vec![ - binding_for(Action::Up), - binding_for(Action::Down), - binding_for(Action::Space), - binding_for(Action::Quit), - binding_for(Action::Quit2), + let actions: Vec = vec![ + Action::Up, + Action::Down, + Action::Space, + Action::Quit, + Action::Quit2, ]; - KeybindingsWidget::new(keybindings).render(keybindings_area, buf); + KeybindingsWidget::new(actions).render(keybindings_area, buf); } } diff --git a/src/app/views/settings.rs b/src/app/views/settings.rs index fadfc5c..30631df 100644 --- a/src/app/views/settings.rs +++ b/src/app/views/settings.rs @@ -1,8 +1,4 @@ -use crate::app::{ - App, - keybindings::{Action, KeyBinding, binding_for}, - widgets::KeybindingsWidget, -}; +use crate::app::{App, keybindings::Action, widgets::KeybindingsWidget}; use ratatui::{ buffer::Buffer, layout::{Alignment, Constraint, Layout, Rect}, @@ -64,16 +60,16 @@ pub fn settings_view(app: &App, area: Rect, buf: &mut Buffer) { } { - let keybindings: Vec> = vec![ - binding_for(Action::Up), - binding_for(Action::Down), - binding_for(Action::Space), - binding_for(Action::Enter), - binding_for(Action::Quit), - binding_for(Action::Quit2), - binding_for(Action::Esc), + let actions: Vec = vec![ + Action::Up, + Action::Down, + Action::Space, + Action::Enter, + Action::Quit, + Action::Quit2, + Action::Esc, ]; - KeybindingsWidget::new(keybindings).render(keybindings_area, buf); + KeybindingsWidget::new(actions).render(keybindings_area, buf); } } diff --git a/src/app/widgets/keybindings.rs b/src/app/widgets/keybindings.rs index 83917ac..0aed177 100644 --- a/src/app/widgets/keybindings.rs +++ b/src/app/widgets/keybindings.rs @@ -1,6 +1,4 @@ -use std::collections::HashSet; - -use crate::app::keybindings::{Group, KeyBinding}; +use crate::app::keybindings::{Action, Group, KeyBinding, binding_for}; use clap::ValueEnum; use ratatui::{ buffer::Buffer, @@ -9,13 +7,17 @@ use ratatui::{ text::Line, widgets::{Block, Borders, Padding, Paragraph, Widget}, }; +use std::collections::HashSet; pub struct KeybindingsWidget { grouped: Vec>, } impl KeybindingsWidget { - pub fn new(keybindings: Vec>) -> Self { + pub fn new(actions: Vec) -> Self { + let keybindings: Vec> = + actions.iter().map(|a| binding_for(*a)).collect(); + let used_groups: HashSet = keybindings .iter() .filter_map(|b| b.map(|binding| binding.group))