Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
bin: Fix search cursor on apply / cancel
Erik Kundt committed 1 year ago
commit 263146b8295d64fb64b76cf998dda58377a5aeeb
parent 97b4281553d3d5f9e2a4850c2834ff438fa2ca60
3 files changed +42 -21
modified bin/commands/inbox/select/ui.rs
@@ -172,12 +172,10 @@ impl Browser {
                }),
            search: TextField::default()
                .to_widget(tx.clone())
-
                .on_event(|key, s, _| match key {
-
                    Key::Esc => Some(Message::CloseSearch),
-
                    Key::Char('\n') => Some(Message::ApplySearch),
-
                    _ => Some(Message::UpdateSearch {
+
                .on_event(|_, s, _| {
+
                    Some(Message::UpdateSearch {
                        value: s.and_then(|i| i.unwrap_string()).unwrap_or_default(),
-
                    }),
+
                    })
                })
                .on_update(|state: &State| {
                    TextFieldProps::default()
@@ -202,8 +200,17 @@ impl View for Browser {
            .unwrap_or(&default);

        if props.show_search {
-
            self.search.handle_event(key);
-
            None
+
            match key {
+
                Key::Esc => {
+
                    self.search.reset();
+
                    Some(Message::CloseSearch)
+
                }
+
                Key::Char('\n') => Some(Message::ApplySearch),
+
                _ => {
+
                    self.search.handle_event(key);
+
                    None
+
                }
+
            }
        } else {
            match key {
                Key::Char('/') => Some(Message::OpenSearch),
modified bin/commands/issue/select/ui.rs
@@ -187,12 +187,10 @@ impl Browser {
                }),
            search: TextField::default()
                .to_widget(tx.clone())
-
                .on_event(|key, s, _| match key {
-
                    Key::Esc => Some(Message::CloseSearch),
-
                    Key::Char('\n') => Some(Message::ApplySearch),
-
                    _ => Some(Message::UpdateSearch {
+
                .on_event(|_, s, _| {
+
                    Some(Message::UpdateSearch {
                        value: s.and_then(|i| i.unwrap_string()).unwrap_or_default(),
-
                    }),
+
                    })
                })
                .on_update(|state: &State| {
                    TextFieldProps::default()
@@ -217,8 +215,17 @@ impl View for Browser {
            .unwrap_or(&default);

        if props.show_search {
-
            self.search.handle_event(key);
-
            None
+
            match key {
+
                Key::Esc => {
+
                    self.search.reset();
+
                    Some(Message::CloseSearch)
+
                }
+
                Key::Char('\n') => Some(Message::ApplySearch),
+
                _ => {
+
                    self.search.handle_event(key);
+
                    None
+
                }
+
            }
        } else {
            match key {
                Key::Char('/') => Some(Message::OpenSearch),
modified bin/commands/patch/select/ui.rs
@@ -189,12 +189,10 @@ impl Browser {
                }),
            search: TextField::default()
                .to_widget(tx.clone())
-
                .on_event(|key, s, _| match key {
-
                    Key::Esc => Some(Message::CloseSearch),
-
                    Key::Char('\n') => Some(Message::ApplySearch),
-
                    _ => Some(Message::UpdateSearch {
+
                .on_event(|_, s, _| {
+
                    Some(Message::UpdateSearch {
                        value: s.and_then(|i| i.unwrap_string()).unwrap_or_default(),
-
                    }),
+
                    })
                })
                .on_update(|state: &State| {
                    TextFieldProps::default()
@@ -219,8 +217,17 @@ impl View for Browser {
            .unwrap_or(&default);

        if props.show_search {
-
            self.search.handle_event(key);
-
            None
+
            match key {
+
                Key::Esc => {
+
                    self.search.reset();
+
                    Some(Message::CloseSearch)
+
                }
+
                Key::Char('\n') => Some(Message::ApplySearch),
+
                _ => {
+
                    self.search.handle_event(key);
+
                    None
+
                }
+
            }
        } else {
            match key {
                Key::Esc | Key::Ctrl('c') => Some(Message::Exit { selection: None }),