diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index 474d175..242f360 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -91,7 +91,7 @@ pub fn view(model: &Model) -> Node { "flex-wrap-reverse", "bg-black", "text-white", - "lg:flex-nowrap" + "lg:flex-nowrap", ], div![ C!["w-full", "lg:w-48", "flex-none", "flex", "flex-col"], @@ -917,7 +917,7 @@ fn thread( C![&tw_classes::BUTTON, "rounded-r-none"], attrs! {At::Title => "Mark as read"}, span![i![C!["far", "fa-envelope-open"]]], - span![C!["pl-2", "hidden", "md:inline"], "Read"], + span![C!["pl-2"], "Read"], ev(Ev::Click, move |_| Msg::MultiMsg(vec![ Msg::SetUnread(read_thread_id, false), Msg::GoToSearchResults @@ -927,7 +927,7 @@ fn thread( C![&tw_classes::BUTTON, "rounded-l-none"], attrs! {At::Title => "Mark as unread"}, span![i![C!["far", "fa-envelope"]]], - span![C!["pl-2", "hidden", "md:inline"], "Unread"], + span![C!["pl-2"], "Unread"], ev(Ev::Click, move |_| Msg::MultiMsg(vec![ Msg::SetUnread(unread_thread_id, true), Msg::GoToSearchResults @@ -938,7 +938,7 @@ fn thread( C![&tw_classes::BUTTON, "text-red-500"], attrs! {At::Title => "Spam"}, span![i![C!["far", "fa-hand"]]], - span![C!["pl-2", "hidden", "md:inline"], "Spam"], + span![C!["pl-2"], "Spam"], ev(Ev::Click, move |_| Msg::MultiMsg(vec![ Msg::AddTag(spam_add_thread_id, "Spam".to_string()), Msg::SetUnread(spam_unread_thread_id, false), @@ -1191,7 +1191,7 @@ fn news_post(post: &ShowThreadQueryThreadOnNewsPost, content_el: &ElRef "Mark as read"}, span![i![C!["far", "fa-envelope-open"]]], - span![C!["pl-2", "hidden", "md:inline"], "Read"], + span![C!["pl-2"], "Read"], ev(Ev::Click, move |_| Msg::MultiMsg(vec![ Msg::SetUnread(read_thread_id, false), Msg::GoToSearchResults @@ -1201,7 +1201,7 @@ fn news_post(post: &ShowThreadQueryThreadOnNewsPost, content_el: &ElRef "Mark as unread"}, span![i![C!["far", "fa-envelope"]]], - span![C!["pl-2", "hidden", "md:inline"], "Unread"], + span![C!["pl-2"], "Unread"], ev(Ev::Click, move |_| Msg::MultiMsg(vec![ Msg::SetUnread(unread_thread_id, true), Msg::GoToSearchResults @@ -1245,6 +1245,8 @@ fn render_news_post_header(post: &ShowThreadQueryThreadOnNewsPost) -> Node .map(|(idx, _)| idx) .unwrap_or(url.len()); let domain = &url[..idx]; + let add_archive_url = format!("https://archive.is/?url={url}"); + let view_archive_url = format!("https://archive.is/newest/{url}"); let favicon = div![ C![ "w-16", @@ -1267,17 +1269,36 @@ fn render_news_post_header(post: &ShowThreadQueryThreadOnNewsPost) -> Node div![ C!["px-4", "mr-auto"], div![ - span![C!["font-semibold", "text-sm"], from], + div![C!["font-semibold", "text-sm"], from], div![ - C!["text-xs"], - small![a![ + C!["flex", "gap-2", "pt-2", "text-sm"], + a![ + C![&tw_classes::BUTTON], attrs! { At::Href => post.url, At::Target => "_blank", }, - "Source ", + span![C!["hidden", "md:inline"], "Source "], i![C!["fas", "fa-up-right-from-square"]], - ]] + ], + a![ + C![&tw_classes::BUTTON], + attrs! { + At::Href => add_archive_url, + At::Target => "_blank", + }, + span![C!["hidden", "md:inline"], "Archive "], + i![C!["fas", "fa-plus"]], + ], + a![ + C![&tw_classes::BUTTON], + attrs! { + At::Href => view_archive_url, + At::Target => "_blank", + }, + span![C!["hidden", "md:inline"], "Archive "], + i![C!["fas", "fa-magnifying-glass"]], + ] ] ] ],