This commit is contained in:
2023-11-14 21:12:13 -08:00
parent da15ef0f15
commit 98df04527d
6 changed files with 199 additions and 29 deletions

View File

@@ -97,7 +97,7 @@ mod urls {
enum Context {
None,
Search(shared::SearchResult),
Thread(ThreadSet),
Thread(Vec<shared::Message>),
}
// `Model` describes our app state.
@@ -136,7 +136,7 @@ enum Msg {
ShowRequest(String),
ShowResult(fetch::Result<ThreadSet>),
ShowPrettyRequest(String),
ShowPrettyResult(fetch::Result<ThreadSet>),
ShowPrettyResult(fetch::Result<Vec<shared::Message>>),
NextPage,
PreviousPage,
}
@@ -185,9 +185,10 @@ fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
.skip()
.perform_cmd(async move { Msg::ShowResult(show_request(&tid).await) });
}
// TODO(wathiede): remove
Msg::ShowResult(Ok(response_data)) => {
debug!("fetch ok {:#?}", response_data);
model.context = Context::Thread(response_data);
//model.context = Context::Thread(response_data);
}
Msg::ShowResult(Err(fetch_error)) => {
error!("fetch failed {:?}", fetch_error);
@@ -199,7 +200,7 @@ fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
.perform_cmd(async move { Msg::ShowPrettyResult(show_pretty_request(&tid).await) });
}
Msg::ShowPrettyResult(Ok(response_data)) => {
debug!("fetch ok {:#?}", response_data);
info!("fetch ok {:#?}", response_data);
model.context = Context::Thread(response_data);
}
Msg::ShowPrettyResult(Err(fetch_error)) => {
@@ -288,7 +289,7 @@ async fn show_request(tid: &str) -> fetch::Result<ThreadSet> {
.map_err(|_| FetchError::JsonError(fetch::JsonError::Serde(JsValue::NULL)))?)
}
async fn show_pretty_request(tid: &str) -> fetch::Result<ThreadSet> {
async fn show_pretty_request(tid: &str) -> fetch::Result<Vec<shared::Message>> {
Request::new(api::show_pretty(tid))
.method(Method::Get)
.fetch()
@@ -602,29 +603,32 @@ fn view_search_pager(start: usize, count: usize, total: usize) -> Node<Msg> {
]
}
fn view_thread(thread_set: &ThreadSet) -> Node<Msg> {
assert_eq!(thread_set.0.len(), 1);
let thread = &thread_set.0[0];
assert_eq!(thread.0.len(), 1);
let thread_node = &thread.0[0];
let subject = first_subject(&thread_node).unwrap_or("<No subject>".to_string());
set_title(&subject);
fn view_thread(messages: &[shared::Message]) -> Node<Msg> {
div!["TODO(wathiede): view_thread(messages)"]
/*
assert_eq!(thread_set.0.len(), 1);
let thread = &thread_set.0[0];
assert_eq!(thread.0.len(), 1);
let thread_node = &thread.0[0];
let subject = first_subject(&thread_node).unwrap_or("<No subject>".to_string());
set_title(&subject);
div![
C!["container"],
h1![C!["title"], subject],
view_message(&thread_node),
a![
attrs! {At::Href=>api::original(&thread_node.0.as_ref().expect("message missing").id)},
"Original"
],
/*
div![
C!["container"],
h1![C!["title"], subject],
view_message(&thread_node),
a![
attrs! {At::Href=>api::original(&thread_node.0.as_ref().expect("message missing").id)},
"Original"
],
/*
div![
C!["debug"],
"Add zippy for debug dump",
view_debug_thread_set(thread_set)
] /* pre![format!("Thread: {:#?}", thread_set).replace(" ", " ")] */
*/
C!["debug"],
"Add zippy for debug dump",
view_debug_thread_set(thread_set)
] /* pre![format!("Thread: {:#?}", thread_set).replace(" ", " ")] */
*/
]
*/
}
fn view_debug_thread_set(thread_set: &ThreadSet) -> Node<Msg> {
@@ -732,7 +736,7 @@ fn view_footer(render_time_ms: u128) -> Node<Msg> {
fn view_desktop(model: &Model) -> Node<Msg> {
let content = match &model.context {
Context::None => div![h1!["Loading"]],
Context::Thread(thread_set) => view_thread(thread_set),
Context::Thread(messages) => view_thread(messages),
Context::Search(search_results) => view_search_results(&model.query, search_results),
};
div![
@@ -745,7 +749,7 @@ fn view_desktop(model: &Model) -> Node<Msg> {
fn view_mobile(model: &Model) -> Node<Msg> {
let content = match &model.context {
Context::None => div![h1!["Loading"]],
Context::Thread(thread_set) => view_thread(thread_set),
Context::Thread(messages) => view_thread(messages),
Context::Search(search_results) => view_mobile_search_results(&model.query, search_results),
};
div![