From cfe1446668fcfe71af0ac0b3c4bde83107e3eae2 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Wed, 29 Nov 2023 09:27:53 -0800 Subject: [PATCH] web: for tag list to be open when no unread messages --- web/src/lib.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/web/src/lib.rs b/web/src/lib.rs index 4c329f8..70f4cae 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -1056,8 +1056,11 @@ fn view_thread(thread: &ShowThreadQueryThread) -> Node { .map(|from| div![C!["header"], "From: ", view_address(&from)]), msg.timestamp .map(|ts| div![C!["header"], "Date: ", human_age(ts)]), - IF!(!msg.to.is_empty() => div![C!["header"], "To: ", view_addresses(&msg.to)]), - IF!(!msg.cc.is_empty() => div![C!["header"], "CC: ", view_addresses(&msg.cc)]), + div![ + C!["header"], + IF!(!msg.to.is_empty() => span!["To: ", view_addresses(&msg.to)]), + IF!(!msg.cc.is_empty() => span!["CC: ", view_addresses(&msg.cc)]) + ], div![ C!["body"], match &msg.body { @@ -1275,20 +1278,19 @@ fn view_desktop(model: &Model) -> Node { let unread = model .tags .as_ref() - .map(|tags| tags.iter().filter(|t| t.unread > 0)); - let read = model - .tags - .as_ref() - .map(|tags| tags.iter().filter(|t| t.unread == 0)); + .map(|tags| tags.iter().filter(|t| t.unread > 0).collect()) + .unwrap_or(Vec::new()); let tags_open = use_state(|| false); + let force_tags_open = unread.is_empty(); div![ C!["desktop-main-content"], aside![ C!["tags-menu", "menu"], - IF!(unread.is_some() => p![C!["menu-label"], "Unread"]), - IF!(unread.is_some() => ul![C!["menu-list"], unread.map(view_tag_list)]), + IF!(!unread.is_empty() => p![C!["menu-label"], "Unread"]), + IF!(!unread.is_empty() => ul![C!["menu-list"], view_tag_list(unread.into_iter())]), p![ C!["menu-label"], + IF!(!force_tags_open => i![C![ "fa-solid", if tags_open.get() { @@ -1296,7 +1298,7 @@ fn view_desktop(model: &Model) -> Node { } else { "fa-angle-down" } - ]], + ]]), " Tags", ev(Ev::Click, move |_| { tags_open.set(!tags_open.get()); @@ -1304,7 +1306,7 @@ fn view_desktop(model: &Model) -> Node { ], ul![ C!["menu-list"], - IF!(tags_open.get() => model.tags.as_ref().map(|tags| view_tag_list(tags.iter()))), + IF!(force_tags_open||tags_open.get() => model.tags.as_ref().map(|tags| view_tag_list(tags.iter()))), ] ], div![