diff --git a/web/src/lib.rs b/web/src/lib.rs index fd152d1..0d1cdf2 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -41,7 +41,7 @@ fn init(url: Url, orders: &mut impl Orders) -> Model { } }; orders.subscribe(|uc: subs::UrlChanged| { - info!("uc {:#?}", uc); + info!("uc {}", uc.0); }); info!("init query '{}'", query); @@ -110,6 +110,7 @@ fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { } Msg::SearchRequest(query) => { + info!("searching for '{query}'"); model.query = query.clone(); let url = Url::new().set_hash_path(["s", &query]); orders.request_url(url); @@ -362,11 +363,17 @@ fn tags_chiclet(tags: &[String], is_mobile: bool) -> impl Iteratorhex}; let classes = C!["tag", IF!(is_mobile => "is-small")]; - match tag.as_str() { - "attachment" => span![classes, style, "📎"], - "replied" => span![classes, style, i![C!["fa-solid", "fa-reply"]]], - _ => span![classes, style, tag], - } + let tag = tag.clone(); + a![ + match tag.as_str() { + "attachment" => span![classes, style, "📎"], + "replied" => span![classes, style, i![C!["fa-solid", "fa-reply"]]], + _ => span![classes, style, &tag], + }, + ev(Ev::Click, move |_| Msg::SearchRequest( + Url::encode_uri_component(format!("tag:{tag}")) + )), + ] }) } @@ -417,14 +424,17 @@ fn view_mobile_search_results(query: &str, search_results: &SearchSummary) -> No */ let tid = r.thread.clone(); div![ - div![C!["subject"], &r.subject], + div![ + C!["subject"], + &r.subject, + ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)), + ], div![ span![C!["from"], pretty_authors(&r.authors)], span![C!["tags"], tags_chiclet(&r.tags, true)], ], span![C!["date"], &r.date_relative], hr![], - ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)), ] }); div![h1!["Search results"], rows] @@ -444,9 +454,16 @@ fn view_search_results(query: &str, search_results: &SearchSummary) -> Node pretty_authors(&r.authors), IF!(r.total>1 => small![" ", r.total.to_string()]), ], - td![C!["subject"], tags_chiclet(&r.tags, false), " ", &r.subject], - td![C!["date"], &r.date_relative], - ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)), + td![ + C!["subject"], + tags_chiclet(&r.tags, false), + " ", + span![ + &r.subject, + ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)) + ] + ], + td![C!["date"], &r.date_relative] ] }); div![table![