Fix clicking on subjects.

This commit is contained in:
Bill Thiede 2023-03-08 19:59:40 -08:00
parent 371a8b98eb
commit e7a0e5b662

View File

@ -41,7 +41,7 @@ fn init(url: Url, orders: &mut impl Orders<Msg>) -> 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>) {
}
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 Iterator<Item = Node<M
let hex = format!("#{:06x}", hasher.finish() % (1 << 24));
let style = style! {St::BackgroundColor=>hex};
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<Msg>
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![