use color_eyre::Result;
use crossterm::event::{self, Event, KeyCode, KeyEventKind};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Action {
Quit,
Back,
NavigateUp,
NavigateDown,
Select,
None,
}
pub fn next_action() -> Result<Action> {
let action = match event::read()? {
Event::Key(key) if key.kind == KeyEventKind::Press => match key.code {
KeyCode::Char('q') => Action::Quit,
KeyCode::Esc | KeyCode::Char('b') => Action::Back,
KeyCode::Up | KeyCode::Char('k') => Action::NavigateUp,
KeyCode::Down | KeyCode::Char('j') => Action::NavigateDown,
KeyCode::Enter => Action::Select,
_ => Action::None,
},
_ => Action::None,
};
Ok(action)
}