summaryrefslogtreecommitdiffstats
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/search_bar.rs32
-rw-r--r--src/components/search_bar/options.rs15
-rw-r--r--src/components/search_bar/tests.rs48
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,