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| { orders.subscribe(|uc: subs::UrlChanged| {
info!("uc {:#?}", uc); info!("uc {}", uc.0);
}); });
info!("init query '{}'", query); info!("init query '{}'", query);
@ -110,6 +110,7 @@ fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
} }
Msg::SearchRequest(query) => { Msg::SearchRequest(query) => {
info!("searching for '{query}'");
model.query = query.clone(); model.query = query.clone();
let url = Url::new().set_hash_path(["s", &query]); let url = Url::new().set_hash_path(["s", &query]);
orders.request_url(url); 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 hex = format!("#{:06x}", hasher.finish() % (1 << 24));
let style = style! {St::BackgroundColor=>hex}; let style = style! {St::BackgroundColor=>hex};
let classes = C!["tag", IF!(is_mobile => "is-small")]; let classes = C!["tag", IF!(is_mobile => "is-small")];
let tag = tag.clone();
a![
match tag.as_str() { match tag.as_str() {
"attachment" => span![classes, style, "📎"], "attachment" => span![classes, style, "📎"],
"replied" => span![classes, style, i![C!["fa-solid", "fa-reply"]]], "replied" => span![classes, style, i![C!["fa-solid", "fa-reply"]]],
_ => span![classes, style, tag], _ => 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(); let tid = r.thread.clone();
div![ div![
div![C!["subject"], &r.subject], div![
C!["subject"],
&r.subject,
ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)),
],
div![ div![
span![C!["from"], pretty_authors(&r.authors)], span![C!["from"], pretty_authors(&r.authors)],
span![C!["tags"], tags_chiclet(&r.tags, true)], span![C!["tags"], tags_chiclet(&r.tags, true)],
], ],
span![C!["date"], &r.date_relative], span![C!["date"], &r.date_relative],
hr![], hr![],
ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)),
] ]
}); });
div![h1!["Search results"], rows] div![h1!["Search results"], rows]
@ -444,9 +454,16 @@ fn view_search_results(query: &str, search_results: &SearchSummary) -> Node<Msg>
pretty_authors(&r.authors), pretty_authors(&r.authors),
IF!(r.total>1 => small![" ", r.total.to_string()]), IF!(r.total>1 => small![" ", r.total.to_string()]),
], ],
td![C!["subject"], tags_chiclet(&r.tags, false), " ", &r.subject], td![
td![C!["date"], &r.date_relative], C!["subject"],
ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid)), tags_chiclet(&r.tags, false),
" ",
span![
&r.subject,
ev(Ev::Click, move |_| Msg::ShowPrettyRequest(tid))
]
],
td![C!["date"], &r.date_relative]
] ]
}); });
div![table![ div![table![