From bd578191a8cab793940170b48381a51954927416 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Thu, 12 Sep 2024 22:37:58 -0700 Subject: [PATCH] web: add scroll to top button and squelch some debug logging --- web/src/state.rs | 7 ------- web/src/view/mod.rs | 26 +++++++++++++++++++------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/web/src/state.rs b/web/src/state.rs index 239f997..00fef7b 100644 --- a/web/src/state.rs +++ b/web/src/state.rs @@ -511,13 +511,6 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { .value_of(); let r = el.get_bounding_client_rect(); - info!( - "window scrolled {}x{}@{},{}", - r.width(), - r.height(), - r.x(), - r.y(), - ); let end = r.height() - ih; let y = -r.y(); orders.send_msg(Msg::SetProgress((y / end).max(0.))); diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index d8e2961..50b6579 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -869,12 +869,13 @@ fn thread( ], ], ], - div![el_ref(content_el), messages] /* TODO(wathiede): plumb in orignal id - a![ - attrs! {At::Href=>api::original(&thread_node.0.as_ref().expect("message missing").id)}, - "Original" - ], - */ + div![el_ref(content_el), messages, click_to_top()], + /* TODO(wathiede): plumb in orignal id + a![ + attrs! {At::Href=>api::original(&thread_node.0.as_ref().expect("message missing").id)}, + "Original" + ], + */ ] } @@ -1129,7 +1130,7 @@ fn news_post( "Original" ], */ - ev(Ev::Scroll, |e| info!("scroll event {e:?}")) + click_to_top(), ] } fn render_news_post_header(post: &ShowThreadQueryThreadOnNewsPost) -> Node { @@ -1222,3 +1223,14 @@ pub fn versions(versions: &crate::state::Version) -> Node { ]) ] } + +fn click_to_top() -> Node { + button![ + C!["button", "is-danger", "is-small"], + span!["Top"], + span![C!["icon"], i![C!["fas", "fa-arrow-turn-up"]]], + ev(Ev::Click, move |_| web_sys::window() + .unwrap() + .scroll_to_with_x_and_y(0., 0.)) + ] +}