web: for tag list to be open when no unread messages

This commit is contained in:
Bill Thiede 2023-11-29 09:27:53 -08:00
parent 7c38962d21
commit cfe1446668

View File

@ -1056,8 +1056,11 @@ fn view_thread(thread: &ShowThreadQueryThread) -> Node<Msg> {
.map(|from| div![C!["header"], "From: ", view_address(&from)]), .map(|from| div![C!["header"], "From: ", view_address(&from)]),
msg.timestamp msg.timestamp
.map(|ts| div![C!["header"], "Date: ", human_age(ts)]), .map(|ts| div![C!["header"], "Date: ", human_age(ts)]),
IF!(!msg.to.is_empty() => div![C!["header"], "To: ", view_addresses(&msg.to)]), div![
IF!(!msg.cc.is_empty() => div![C!["header"], "CC: ", view_addresses(&msg.cc)]), 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![ div![
C!["body"], C!["body"],
match &msg.body { match &msg.body {
@ -1275,20 +1278,19 @@ fn view_desktop(model: &Model) -> Node<Msg> {
let unread = model let unread = model
.tags .tags
.as_ref() .as_ref()
.map(|tags| tags.iter().filter(|t| t.unread > 0)); .map(|tags| tags.iter().filter(|t| t.unread > 0).collect())
let read = model .unwrap_or(Vec::new());
.tags
.as_ref()
.map(|tags| tags.iter().filter(|t| t.unread == 0));
let tags_open = use_state(|| false); let tags_open = use_state(|| false);
let force_tags_open = unread.is_empty();
div![ div![
C!["desktop-main-content"], C!["desktop-main-content"],
aside![ aside![
C!["tags-menu", "menu"], C!["tags-menu", "menu"],
IF!(unread.is_some() => p![C!["menu-label"], "Unread"]), IF!(!unread.is_empty() => p![C!["menu-label"], "Unread"]),
IF!(unread.is_some() => ul![C!["menu-list"], unread.map(view_tag_list)]), IF!(!unread.is_empty() => ul![C!["menu-list"], view_tag_list(unread.into_iter())]),
p![ p![
C!["menu-label"], C!["menu-label"],
IF!(!force_tags_open =>
i![C![ i![C![
"fa-solid", "fa-solid",
if tags_open.get() { if tags_open.get() {
@ -1296,7 +1298,7 @@ fn view_desktop(model: &Model) -> Node<Msg> {
} else { } else {
"fa-angle-down" "fa-angle-down"
} }
]], ]]),
" Tags", " Tags",
ev(Ev::Click, move |_| { ev(Ev::Click, move |_| {
tags_open.set(!tags_open.get()); tags_open.set(!tags_open.get());
@ -1304,7 +1306,7 @@ fn view_desktop(model: &Model) -> Node<Msg> {
], ],
ul![ ul![
C!["menu-list"], 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![ div![