web: scroll to top on page changes

This commit is contained in:
2025-02-24 18:39:47 -08:00
parent 45e4edb1dd
commit 77943b3570
2 changed files with 23 additions and 14 deletions

View File

@@ -4,7 +4,7 @@ use chrono::{DateTime, Datelike, Duration, Local, Utc};
use human_format::{Formatter, Scales};
use itertools::Itertools;
use letterbox_shared::compute_color;
use log::{debug, error, info};
use log::{debug, error};
use seed::{prelude::*, *};
use seed_hooks::{state_access::CloneState, topo, use_state, StateAccessEventHandlers};
use web_sys::{HtmlElement, HtmlInputElement};
@@ -1067,7 +1067,7 @@ fn thread(
let spam_add_thread_id = thread.thread_id.clone();
let spam_unread_thread_id = thread.thread_id.clone();
div![
C!["lg:p-4"],
C!["lg:p-4", "max-w-4xl"],
div![
C!["p-4", "lg:p-0"],
h3![C!["text-xl"], subject],
@@ -1252,11 +1252,7 @@ pub fn view_tags(tags: &Option<Vec<Tag>>) -> Node<Msg> {
],
IF!(t.unread>0 => format!("{}", t.unread))
],
ev(Ev::Click, |_| {
// Scroll window to the top when searching for a tag.
info!("scrolling to the top because you clicked a tag");
web_sys::window().unwrap().scroll_to_with_x_and_y(0., 0.);
})
ev(Ev::Click, |_| { Msg::ScrollToTop })
]
}
fn matches(a: &[&str], b: &[&str]) -> usize {
@@ -1544,8 +1540,6 @@ fn click_to_top() -> Node<Msg> {
C![&tw_classes::BUTTON, "bg-red-500", "lg:m-0", "m-4"],
span!["Top"],
span![i![C!["fas", "fa-arrow-turn-up"]]],
ev(Ev::Click, |_| web_sys::window()
.unwrap()
.scroll_to_with_x_and_y(0., 0.))
ev(Ev::Click, |_| Msg::ScrollToTop)
]
}