diff --git a/web/src/state.rs b/web/src/state.rs index efd2af3..f7588bf 100644 --- a/web/src/state.rs +++ b/web/src/state.rs @@ -692,6 +692,13 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { }; orders.send_msg(Msg::CatchupNext); } + Msg::CatchupMarkAsSpam => { + if let Some(thread_id) = current_thread_id(&model.context) { + orders.send_msg(Msg::AddTag(thread_id.clone(), "Spam".to_string())); + orders.send_msg(Msg::SetUnread(thread_id, false)); + }; + orders.send_msg(Msg::CatchupNext); + } Msg::CatchupNext => { orders.send_msg(Msg::ScrollToTop); let Some(catchup) = &mut model.catchup else { @@ -902,6 +909,7 @@ pub enum Msg { CatchupStart, CatchupKeepUnread, CatchupMarkAsRead, + CatchupMarkAsSpam, CatchupNext, CatchupExit, diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index a8bcd9c..9d4d7ef 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -268,6 +268,14 @@ fn catchup_view( Msg::GoToSearchResults ])) ], + button![ + tw_classes::button(), + C!["text-red-500"], + attrs! {At::Title => "Mark as spam"}, + span![i![C!["far", "fa-hand"]]], + span![C!["pl-2"], "Spam"], + ev(Ev::Click, |_| Msg::CatchupMarkAsSpam) + ], button![ tw_classes::button_with_color("bg-green-800", "hover:bg-green-700"), span![i![C!["far", "fa-envelope-open"]]],