From be8fd5970314527d1c4012ee1bf66128895c7add Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sun, 3 Dec 2023 08:49:20 -0800 Subject: [PATCH] web: rename view_thread to take advantage of new namespaces --- web/src/state.rs | 2 +- web/src/view/desktop.rs | 4 ++-- web/src/view/mobile.rs | 6 +++--- web/src/view/mod.rs | 12 ++++++++++-- web/src/view/tablet.rs | 4 ++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/web/src/state.rs b/web/src/state.rs index 28afe8b..ce12dac 100644 --- a/web/src/state.rs +++ b/web/src/state.rs @@ -302,7 +302,7 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { model.context = Context::ThreadResult(data.thread); } Msg::ShowThreadResult(bad) => { - error!("show_thread_query error: {bad:?}"); + error!("show_thread_query error: {}", bad); } } } diff --git a/web/src/view/desktop.rs b/web/src/view/desktop.rs index 541b6ac..878a23e 100644 --- a/web/src/view/desktop.rs +++ b/web/src/view/desktop.rs @@ -5,7 +5,7 @@ use seed_hooks::{state_access::CloneState, topo, use_state}; use crate::{ api::urls, state::{Context, Model, Msg, Tag}, - view::{legacy, view_header, view_search_results, view_thread}, + view::{self, legacy, view_header, view_search_results}, }; #[topo::nested] @@ -14,7 +14,7 @@ pub(super) fn view(model: &Model) -> Node { let content = match &model.context { Context::None => div![h1!["Loading"]], Context::Thread(thread_set) => legacy::thread(thread_set), - Context::ThreadResult(thread) => view_thread(thread), + Context::ThreadResult(thread) => view::thread(thread), Context::Search(search_results) => legacy::search_results(&model.query, search_results), Context::SearchResult { query, diff --git a/web/src/view/mobile.rs b/web/src/view/mobile.rs index 6bdab16..7d73221 100644 --- a/web/src/view/mobile.rs +++ b/web/src/view/mobile.rs @@ -5,8 +5,8 @@ use crate::{ graphql::front_page_query::*, state::{Context, Model, Msg}, view::{ - human_age, legacy, pretty_authors, set_title, tags_chiclet, view_header, view_search_pager, - view_thread, + self, human_age, legacy, pretty_authors, set_title, tags_chiclet, view_header, + view_search_pager, }, }; @@ -14,7 +14,7 @@ pub(super) fn view(model: &Model) -> Node { let content = match &model.context { Context::None => div![h1!["Loading"]], Context::Thread(thread_set) => legacy::thread(thread_set), - Context::ThreadResult(thread) => view_thread(thread), + Context::ThreadResult(thread) => view::thread(thread), Context::Search(search_results) => { legacy::mobile_search_results(&model.query, search_results) } diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index 7a2578f..9eae79e 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -250,14 +250,13 @@ fn view_addresses(addrs: &[impl Email]) -> Vec> { addrs.into_iter().map(view_address).collect::>() } -fn view_thread(thread: &ShowThreadQueryThread) -> Node { +fn thread(thread: &ShowThreadQueryThread) -> Node { // TODO(wathiede): show per-message subject if it changes significantly from top-level subject set_title(&thread.subject); let messages = thread.messages.iter().map(|msg| { div![ C!["message"], /* TODO(wathiede): collect all the tags and show them here. */ - /* TODO(wathiede): collect all the attachments from all the subparts */ msg.from .as_ref() .map(|from| div![C!["header"], "From: ", view_address(&from)]), @@ -289,6 +288,15 @@ fn view_thread(thread: &ShowThreadQueryThread) -> Node { ) => div![ C!["view-part-text-html"], raw![contents], + IF!(!msg.attachments.is_empty() => + div![ + C!["attachments"], + br![], + h2!["Attachments"], + msg.attachments + .iter() + .map(|a| div!["Filename: ", &a.filename, " ", &a.content_type]) + ]), pre![content_tree] ], } diff --git a/web/src/view/tablet.rs b/web/src/view/tablet.rs index dd448df..24c2c6a 100644 --- a/web/src/view/tablet.rs +++ b/web/src/view/tablet.rs @@ -2,7 +2,7 @@ use seed::{prelude::*, *}; use crate::{ state::{Context, Model, Msg}, - view::{view_header, view_search_results, view_thread}, + view::{self, view_header, view_search_results}, }; pub(super) fn view(model: &Model) -> Node { @@ -10,7 +10,7 @@ pub(super) fn view(model: &Model) -> Node { let content = match &model.context { Context::None => div![h1!["Loading"]], Context::Thread(_) => unimplemented!("tablet legacy thread view"), - Context::ThreadResult(thread) => view_thread(thread), + Context::ThreadResult(thread) => view::thread(thread), Context::Search(_) => unimplemented!("tablet legacy search results view"), Context::SearchResult { query,