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)]),
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<Msg> {
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<Msg> {
} 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<Msg> {
],
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![