This commit is contained in:
2023-07-15 16:58:15 -07:00
parent 458bd356dd
commit 39bef1ea87
3 changed files with 51 additions and 8 deletions

View File

@@ -8,9 +8,9 @@ use std::{
use itertools::Itertools;
use log::{debug, error, info, Level};
use nm::{show_request, view_thread};
use notmuch::ThreadSet;
use seed::{prelude::*, *};
use serde::Deserialize;
use wasm_timer::Instant;
const SEARCH_RESULTS_PER_PAGE: usize = 20;
@@ -93,7 +93,7 @@ mod urls {
enum Context {
None,
Search(shared::SearchResult),
Thread(ThreadSet),
Thread(Vec<shared::Message>),
}
// `Model` describes our app state.
@@ -127,7 +127,7 @@ pub enum Msg {
},
SearchResult(fetch::Result<shared::SearchResult>),
ShowRequest(String),
ShowResult(fetch::Result<ThreadSet>),
ShowResult(fetch::Result<Vec<shared::Message>>),
NextPage,
PreviousPage,
}
@@ -210,6 +210,19 @@ fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
}
}
pub async fn show_request(tid: &str) -> fetch::Result<Vec<shared::Message>> {
let b = Request::new(api::show(tid))
.method(Method::Get)
.fetch()
.await?
.check_status()?
.bytes()
.await?;
let mut deserializer = serde_json::Deserializer::from_slice(&b);
deserializer.disable_recursion_limit();
Ok(Vec::<shared::Message>::deserialize(&mut deserializer)
.map_err(|_| FetchError::JsonError(fetch::JsonError::Serde(JsValue::NULL)))?)
}
async fn search_request(
query: &str,
page: usize,
@@ -496,6 +509,13 @@ fn view_footer(render_time_ms: u128) -> Node<Msg> {
]
}
fn view_thread(messages: &[shared::Message]) -> Node<Msg> {
div![
"MESSAGES GO HERE",
ol![messages.iter().map(|msg| li![format!("{:?}", msg)])]
]
}
fn view_desktop(model: &Model) -> Node<Msg> {
let content = match &model.context {
Context::None => div![h1!["Loading"]],