From ed9fe11fbf0234aa81eb6b52b218039f214cc6b2 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Tue, 25 Feb 2025 20:43:27 -0800 Subject: [PATCH] web: trimmed views for catchup mode --- web/src/view/mod.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index 996d526..133aa65 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -93,13 +93,13 @@ pub fn view(model: &Model) -> Node { } => { if let Some(catchup) = &model.catchup { catchup_view( - thread(thread_data, open_messages, &model.content_el), + thread(thread_data, open_messages, &model.content_el, true), &catchup.items, model.read_completion_ratio, ) } else { normal_view( - thread(thread_data, open_messages, &model.content_el), + thread(thread_data, open_messages, &model.content_el, false), &model.versions, &model.query, &model.refreshing_state, @@ -114,13 +114,13 @@ pub fn view(model: &Model) -> Node { } => { if let Some(catchup) = &model.catchup { catchup_view( - news_post(post, &model.content_el), + news_post(post, &model.content_el, true), &catchup.items, model.read_completion_ratio, ) } else { normal_view( - news_post(post, &model.content_el), + news_post(post, &model.content_el, false), &model.versions, &model.query, &model.refreshing_state, @@ -199,9 +199,10 @@ fn catchup_view( "border-b", "border-gray-500", "bg-black", + "opacity-50", ], div![ - C!["absolute", "right-4", "text-gray-500"], + C!["absolute", "top-0", "right-4", "text-gray-500", "p-4"], span![i![C!["fas", "fa-x"]]], ev(Ev::Click, move |_| Msg::CatchupExit) ], @@ -210,7 +211,7 @@ fn catchup_view( format!("{} left ", items.iter().filter(|i| !i.seen).count(),) ] ], - div![C!["mt-12", "mb-4"], content], + div![C!["mt-12", "mb-20"], content], div![ C![ "fixed", @@ -224,6 +225,7 @@ fn catchup_view( "border-t", "border-gray-500", "bg-black", + "opacity-50", ], button![ tw_classes::button(), @@ -1054,6 +1056,7 @@ fn thread( thread: &ShowThreadQueryThreadOnEmailThread, open_messages: &HashSet, content_el: &ElRef, + catchup_mode: bool, ) -> Node { // TODO(wathiede): show per-message subject if it changes significantly from top-level subject let subject = if thread.subject.is_empty() { @@ -1086,7 +1089,7 @@ fn thread( C!["p-4", "lg:p-0"], h3![C!["text-xl"], subject], span![removable_tags_chiclet(&thread.thread_id, &tags)], - div![ + IF!(!catchup_mode => div![ C!["pt-4", "gap-2", "flex", "justify-around"], div![ button![ @@ -1124,13 +1127,13 @@ fn thread( Msg::GoToSearchResults ])), ]] - ], + ]), ], div![ C!["lg:mt-4", "mail-thread"], el_ref(content_el), messages, - click_to_top() + IF!(!catchup_mode => click_to_top()) ], /* TODO(wathiede): plumb in orignal id a![ @@ -1351,7 +1354,11 @@ pub fn view_tags(tags: &Option>) -> Node { } // TODO: add cathup_mode:bool and hide elements when true -fn news_post(post: &ShowThreadQueryThreadOnNewsPost, content_el: &ElRef) -> Node { +fn news_post( + post: &ShowThreadQueryThreadOnNewsPost, + content_el: &ElRef, + catchup_mode: bool, +) -> Node { let subject = &post.title; set_title(subject); let read_thread_id = post.thread_id.clone(); @@ -1382,7 +1389,7 @@ fn news_post(post: &ShowThreadQueryThreadOnNewsPost, content_el: &ElRef div![ C!["pt-4", "gap-2", "flex", "justify-around"], div![ button![ @@ -1410,7 +1417,7 @@ fn news_post(post: &ShowThreadQueryThreadOnNewsPost, content_el: &ElRef click_to_top()), ] } fn render_news_post_header(post: &ShowThreadQueryThreadOnNewsPost) -> Node { let from = &post.site; - // TODO: move avatar/favicon stuff to the server side and and come up with a solution for emails let id = post.thread_id.clone(); let is_unread = !post.is_read; let url = &post.url;