From 4a6b159ddbaf90bd1950df91e23f2ce95d121a7b Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sun, 13 Apr 2025 19:24:40 -0700 Subject: [PATCH] web: always show bulk-edit checkbox, fix check logic --- web/src/view/mod.rs | 54 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index a6389f3..0d8bcee 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -468,38 +468,42 @@ fn search_toolbar( if let Some(tri) = tri.get() { tri.set_indeterminate(indeterminate); } + let catchup = div![button![ + tw_classes::button(), + attrs! {At::Title => "Catch up"}, + span![i![C!["far", "fa-eye"]]], + span![C!["pl-2", "hidden", "md:inline"], "Catch-up"], + ev(Ev::Click, |_| Msg::CatchupStart) + ]]; + let tristate_input = div![ + C!["flex", "items-center", "mr-4"], + input![ + &tri, + C![&tw_classes::CHECKBOX], + attrs! { + At::Type=>"checkbox", + }, + IF!(all_selected=>attrs!{At::Checked=>true}) + ], + ev(Ev::Input, move |_| { + if all_selected { + Msg::SelectionSetNone + } else { + Msg::SelectionSetAll + } + }), + ]; nav![ C!["py-4", "flex", "w-full", "justify-between"], div![ C!["gap-2", "flex", IF!(show_bulk_edit => "hidden")], - div![button![ - tw_classes::button(), - attrs! {At::Title => "Mark as read"}, - span![i![C!["far", "fa-eye"]]], - span![C!["pl-2", "hidden", "md:inline"], "Catch-up"], - ev(Ev::Click, |_| Msg::CatchupStart) - ]], + &tristate_input, + &catchup ], div![ C!["gap-2", "flex", IF!(!show_bulk_edit => "hidden")], - div![ - C!["flex", "items-center", "mr-4"], - input![ - tri, - C![&tw_classes::CHECKBOX], - attrs! { - At::Type=>"checkbox", - At::Checked=>all_selected, - } - ], - ev(Ev::Input, move |_| { - if all_selected { - Msg::SelectionSetNone - } else { - Msg::SelectionSetAll - } - }), - ], + &tristate_input, + &catchup, div![ button![ tw_classes::button(),