From d19e4b1d2bb8300b22f0c6c032c6aeb6cd7f9156 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Sat, 22 Feb 2025 20:01:23 -0800 Subject: [PATCH] search: improve search column header Signed-off-by: William Casarin --- crates/notedeck_columns/src/search.rs | 2 +- crates/notedeck_columns/src/timeline/kind.rs | 4 +++- crates/notedeck_columns/src/ui/column/header.rs | 7 ++++++- crates/notedeck_columns/src/ui/side_panel.rs | 3 +-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/crates/notedeck_columns/src/search.rs b/crates/notedeck_columns/src/search.rs index 7729490..2836362 100644 --- a/crates/notedeck_columns/src/search.rs +++ b/crates/notedeck_columns/src/search.rs @@ -6,7 +6,7 @@ use tokenator::{ParseError, TokenParser, TokenSerializable, TokenWriter}; #[derive(Debug, Eq, PartialEq, Clone, Hash)] pub struct SearchQuery { author: Option, - search: String, + pub search: String, } impl TokenSerializable for SearchQuery { diff --git a/crates/notedeck_columns/src/timeline/kind.rs b/crates/notedeck_columns/src/timeline/kind.rs index 0e57c12..c24c037 100644 --- a/crates/notedeck_columns/src/timeline/kind.rs +++ b/crates/notedeck_columns/src/timeline/kind.rs @@ -588,7 +588,9 @@ impl TimelineKind { pub fn to_title(&self) -> ColumnTitle<'_> { match self { - TimelineKind::Search(_query) => ColumnTitle::simple("Search"), + TimelineKind::Search(query) => { + ColumnTitle::formatted(format!("Search \"{}\"", query.search)) + } TimelineKind::List(list_kind) => match list_kind { ListKind::Contact(_pubkey_source) => ColumnTitle::simple("Contacts"), }, diff --git a/crates/notedeck_columns/src/ui/column/header.rs b/crates/notedeck_columns/src/ui/column/header.rs index 03922d0..c27e8ed 100644 --- a/crates/notedeck_columns/src/ui/column/header.rs +++ b/crates/notedeck_columns/src/ui/column/header.rs @@ -434,9 +434,14 @@ impl<'a> NavTitle<'a> { // no pfp for threads } + TimelineKind::Search(_sq) => { + // TODO: show author pfp if author field set? + + ui.add(ui::side_panel::search_button()); + } + TimelineKind::Universe | TimelineKind::Algo(_) - | TimelineKind::Search(_) | TimelineKind::Notifications(_) | TimelineKind::Generic(_) | TimelineKind::List(_) => { diff --git a/crates/notedeck_columns/src/ui/side_panel.rs b/crates/notedeck_columns/src/ui/side_panel.rs index 0939836..4e61872 100644 --- a/crates/notedeck_columns/src/ui/side_panel.rs +++ b/crates/notedeck_columns/src/ui/side_panel.rs @@ -487,8 +487,7 @@ fn compose_note_button(interactive: bool, dark_mode: bool) -> impl Widget { } } -#[allow(unused)] -fn search_button() -> impl Widget { +pub fn search_button() -> impl Widget { |ui: &mut egui::Ui| -> egui::Response { let max_size = ICON_WIDTH * ICON_EXPANSION_MULTIPLE; // max size of the widget let min_line_width_circle = 1.5; // width of the magnifying glass