diff options
| author | mo8it <mo8it@proton.me> | 2024-05-13 02:32:25 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-05-13 02:32:25 +0200 |
| commit | f9e35a4344cd7d51923f1983cf824fb36be92d50 (patch) | |
| tree | 6a41653c14dcce73c398ebfec3051102d2c2566a /src/watch | |
| parent | 052573904604896398a6cc7281398fa9fdf8f083 (diff) | |
Improve input handling
Diffstat (limited to 'src/watch')
| -rw-r--r-- | src/watch/state.rs | 13 | ||||
| -rw-r--r-- | src/watch/terminal_event.rs | 4 |
2 files changed, 3 insertions, 14 deletions
diff --git a/src/watch/state.rs b/src/watch/state.rs index f3ffac8..2e98546 100644 --- a/src/watch/state.rs +++ b/src/watch/state.rs @@ -78,10 +78,7 @@ impl<'a> WatchState<'a> { pub fn next_exercise(&mut self) -> Result<ExercisesProgress> { if matches!(self.done_status, DoneStatus::Pending) { - self.writer - .write_all(b"The current exercise isn't done yet\n")?; - self.show_prompt()?; - return Ok(ExercisesProgress::Pending); + return Ok(ExercisesProgress::CurrentPending); } self.app_state.done_current_exercise(&mut self.writer) @@ -165,12 +162,4 @@ When you are done experimenting, enter `n` (or `next`) to move on to the next ex self.show_hint = true; self.render() } - - pub fn handle_invalid_input(&mut self, input: char) -> io::Result<()> { - writeln!( - self.writer, - "Invalid input: {input} (confusing input can occur after resizing the terminal)", - )?; - self.show_prompt() - } } diff --git a/src/watch/terminal_event.rs b/src/watch/terminal_event.rs index 846bec1..29a672a 100644 --- a/src/watch/terminal_event.rs +++ b/src/watch/terminal_event.rs @@ -9,7 +9,7 @@ pub enum InputEvent { Hint, List, Quit, - Unrecognized(char), + Unrecognized, } pub fn terminal_event_handler(tx: Sender<WatchEvent>, manual_run: bool) { @@ -42,7 +42,7 @@ pub fn terminal_event_handler(tx: Sender<WatchEvent>, manual_run: bool) { 'l' => break InputEvent::List, 'q' => break InputEvent::Quit, 'r' if manual_run => InputEvent::Run, - _ => InputEvent::Unrecognized(c), + _ => InputEvent::Unrecognized, }; if tx.send(WatchEvent::Input(input_event)).is_err() { |
