From 6eff900132a4716f26e99c422c2ef4c35ec953ec Mon Sep 17 00:00:00 2001 From: Dheepak Krishnamurthy Date: Mon, 1 Jan 2024 20:46:13 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20Better=20support=20for=20=3F=20for=20to?= =?UTF-8?q?ggling=20help=20=E2=9C=A8=20(#34)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- async/ratatui-counter/src/components/home.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/async/ratatui-counter/src/components/home.rs b/async/ratatui-counter/src/components/home.rs index 42c0042..e744813 100644 --- a/async/ratatui-counter/src/components/home.rs +++ b/async/ratatui-counter/src/components/home.rs @@ -17,6 +17,7 @@ pub enum Mode { Normal, Insert, Processing, + Help, } #[derive(Default)] @@ -96,7 +97,7 @@ impl Component for Home { fn handle_key_events(&mut self, key: KeyEvent) -> Result> { self.last_events.push(key.clone()); let action = match self.mode { - Mode::Normal | Mode::Processing => return Ok(None), + Mode::Normal | Mode::Processing | Mode::Help => return Ok(None), Mode::Insert => { match key.code { KeyCode::Esc => Action::EnterNormal, @@ -122,9 +123,16 @@ impl Component for Home { match action { Action::Tick => self.tick(), Action::Render => self.render_tick(), - Action::ToggleShowHelp => self.show_help = !self.show_help, - Action::ScheduleIncrement => self.schedule_increment(1), - Action::ScheduleDecrement => self.schedule_decrement(1), + Action::ToggleShowHelp if self.mode != Mode::Insert => { + self.show_help = !self.show_help; + if self.show_help { + self.mode = Mode::Help; + } else { + self.mode = Mode::Normal; + } + }, + Action::ScheduleIncrement if self.mode == Mode::Normal => self.schedule_increment(1), + Action::ScheduleDecrement if self.mode == Mode::Normal => self.schedule_decrement(1), Action::Increment(i) => self.increment(i), Action::Decrement(i) => self.decrement(i), Action::CompleteInput(s) => self.add(s),