search: auto-focus search field on navigate
I'm going to add a search changelog on this commit since I forgot to do so previously. Fixes: https://linear.app/damus/issue/DECK-538/auto-focus-search-field-on-search-view Changelog-Added: Added fulltext search ui Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -12,7 +12,7 @@ use tracing::{error, info, warn};
|
||||
|
||||
mod state;
|
||||
|
||||
pub use state::{SearchQueryState, SearchState};
|
||||
pub use state::{FocusState, SearchQueryState, SearchState};
|
||||
|
||||
pub struct SearchView<'a> {
|
||||
query: &'a mut SearchQueryState,
|
||||
@@ -57,7 +57,7 @@ impl<'a> SearchView<'a> {
|
||||
}
|
||||
|
||||
match self.query.state {
|
||||
SearchState::New => None,
|
||||
SearchState::New | SearchState::Navigating => None,
|
||||
|
||||
SearchState::Searched | SearchState::Typing => {
|
||||
if self.query.state == SearchState::Typing {
|
||||
@@ -163,7 +163,7 @@ fn search_box(query: &mut SearchQueryState, ui: &mut egui::Ui) -> bool {
|
||||
|
||||
// Search input field
|
||||
//let font_size = notedeck::fonts::get_font_size(ui.ctx(), &NotedeckTextStyle::Body);
|
||||
ui.add_sized(
|
||||
let response = ui.add_sized(
|
||||
[ui.available_width(), search_height],
|
||||
TextEdit::singleline(&mut query.string)
|
||||
.hint_text(RichText::new("Search notes...").weak())
|
||||
@@ -173,6 +173,11 @@ fn search_box(query: &mut SearchQueryState, ui: &mut egui::Ui) -> bool {
|
||||
.frame(false),
|
||||
);
|
||||
|
||||
if query.focus_state == FocusState::ShouldRequestFocus {
|
||||
response.request_focus();
|
||||
query.focus_state = FocusState::RequestedFocus;
|
||||
}
|
||||
|
||||
let after_len = query.string.len();
|
||||
|
||||
let changed = before_len != after_len;
|
||||
|
||||
Reference in New Issue
Block a user