diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/search_bar.rs | 32 | ||||
-rw-r--r-- | src/components/search_bar/options.rs | 15 | ||||
-rw-r--r-- | src/components/search_bar/tests.rs | 48 |
3 files changed, 40 insertions, 55 deletions
diff --git a/src/components/search_bar.rs b/src/components/search_bar.rs index 7b9991d..b91e225 100644 --- a/src/components/search_bar.rs +++ b/src/components/search_bar.rs @@ -54,10 +54,23 @@ impl SearchBar { } } - pub(crate) const fn read_event(&self, event: Event) -> Option<Event> { + pub(crate) fn read_event(&self, event: Event) -> Option<Event> { match self.state { State::Deactivated | State::Searching => None, - State::Editing => Some(event), + State::Editing => { + let evt = match event { + Event::Key(KeyEvent { + code: KeyCode::Enter, + modifiers: KeyModifiers::NONE, + }) => Event::from(StandardEvent::SearchFinish), + Event::Key(KeyEvent { + code: KeyCode::Esc, + modifiers: KeyModifiers::NONE, + }) => Event::from(StandardEvent::SearchCancel), + _ => event, + }; + Some(evt) + }, } } @@ -72,11 +85,7 @@ impl SearchBar { Event::Standard(StandardEvent::SearchPrevious) => { SearchBarAction::Previous(String::from(self.editable_line.get_content())) }, - Event::Standard(StandardEvent::SearchFinish) - | Event::Key(KeyEvent { - code: KeyCode::Enter, - modifiers: KeyModifiers::NONE, - }) => { + Event::Standard(StandardEvent::SearchFinish) => { self.editable_line.set_read_only(true); self.state = State::Searching; SearchBarAction::Start(String::from(self.editable_line.get_content())) @@ -85,10 +94,7 @@ impl SearchBar { self.state = State::Deactivated; SearchBarAction::Cancel }, - Event::Key(KeyEvent { - code: KeyCode::Esc, - modifiers: KeyModifiers::NONE, - }) => { + Event::Standard(StandardEvent::SearchCancel) => { self.reset(); SearchBarAction::Cancel }, @@ -121,10 +127,6 @@ impl SearchBar { self.state == State::Editing } - pub(crate) fn is_searching(&self) -> bool { - self.state == State::Searching - } - pub(crate) fn build_view_line(&self) -> ViewLine { ViewLine::from(self.editable_line.line_segments()) } diff --git a/src/components/search_bar/options.rs b/src/components/search_bar/options.rs deleted file mode 100644 index 3da59f1..0000000 --- a/src/components/search_bar/options.rs +++ /dev/null @@ -1,15 +0,0 @@ -use crate::input::Event; - -pub(crate) struct Options { - pub(crate) next_result_event: Vec<Event>, - pub(crate) previous_result_event: Vec<Event>, -} - -impl Options { - pub(crate) fn new(next_result_event: Vec<Event>, previous_result_event: Vec<Event>) -> Self { - Self { - next_result_event, - previous_result_event, - } - } -} diff --git a/src/components/search_bar/tests.rs b/src/components/search_bar/tests.rs index 382163d..7d2e44c 100644 --- a/src/components/search_bar/tests.rs +++ b/src/components/search_bar/tests.rs @@ -87,13 +87,33 @@ fn read_event_searching() { } #[test] -fn read_event_editing() { +fn read_event_editing_other() { let mut search_bar = SearchBar::new(); search_bar.state = State::Editing; assert_some_eq!(search_bar.read_event(Event::from('a')), Event::from('a')); } #[test] +fn read_event_editing_with_enter() { + let mut search_bar = SearchBar::new(); + search_bar.state = State::Editing; + assert_some_eq!( + search_bar.read_event(Event::from(KeyCode::Enter)), + Event::from(StandardEvent::SearchFinish) + ); +} + +#[test] +fn read_event_editing_ith_esc() { + let mut search_bar = SearchBar::new(); + search_bar.state = State::Editing; + assert_some_eq!( + search_bar.read_event(Event::from(KeyCode::Esc)), + Event::from(StandardEvent::SearchCancel) + ); +} + +#[test] fn handle_event_inactive() { let mut search_bar = SearchBar::new(); search_bar.state = State::Deactivated; @@ -137,21 +157,10 @@ fn handle_event_search_finish() { } #[test] -fn handle_event_search_finish_with_enter() { - let mut search_bar = SearchBar::new(); - search_bar.start_search(Some("foo")); - let event = Event::from(KeyCode::Enter); - assert_eq!( - search_bar.handle_event(event), - SearchBarAction::Start(String::from("foo")) - ); -} - -#[test] -fn handle_event_search_cancel_with_esc() { +fn handle_event_search_cancel_with_search_cancel() { let mut search_bar = SearchBar::new(); search_bar.start_search(Some("foo")); - let event = Event::from(KeyCode::Esc); + let event = Event::from(StandardEvent::SearchCancel); assert_eq!(search_bar.handle_event(event), SearchBarAction::Cancel); } @@ -245,17 +254,6 @@ fn is_editing() { } #[test] -fn is_searching() { - let mut search_bar = SearchBar::new(); - search_bar.state = State::Editing; - assert!(!search_bar.is_searching()); - search_bar.state = State::Deactivated; - assert!(!search_bar.is_searching()); - search_bar.state = State::Searching; - assert!(search_bar.is_searching()); -} - -#[test] fn build_view_line() { assert_rendered_output!( Options AssertRenderOptions::INCLUDE_STYLE | AssertRenderOptions::BODY_ONLY, |