web: upgrade to seed-0.10.0

This commit is contained in:
Bill Thiede 2023-12-05 20:46:59 -08:00
parent f2347345b4
commit c31f9d581f
7 changed files with 98 additions and 74 deletions

105
Cargo.lock generated
View File

@ -477,17 +477,6 @@ dependencies = [
"time 0.1.45",
]
[[package]]
name = "cookie"
version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
dependencies = [
"percent-encoding 2.3.1",
"time 0.3.30",
"version_check 0.9.4",
]
[[package]]
name = "cookie"
version = "0.18.0"
@ -633,15 +622,6 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
[[package]]
name = "dbg"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4677188513e0e9d7adced5997cf9a1e7a3c996c994f90093325c5332c1a8b221"
dependencies = [
"version_check 0.1.5",
]
[[package]]
name = "deranged"
version = "0.3.10"
@ -1092,6 +1072,27 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-net"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4"
dependencies = [
"futures-channel",
"futures-core",
"futures-sink",
"gloo-utils 0.2.0",
"http",
"js-sys",
"pin-project",
"serde",
"serde_json",
"thiserror",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
name = "gloo-timers"
version = "0.2.6"
@ -1117,6 +1118,19 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-utils"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"
dependencies = [
"js-sys",
"serde",
"serde_json",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "graphql-introspection-query"
version = "0.2.0"
@ -1563,11 +1577,12 @@ dependencies = [
"chrono",
"console_error_panic_hook",
"console_log",
"gloo-net",
"graphql_client",
"itertools",
"log 0.4.20",
"notmuch",
"seed 0.9.2",
"seed 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"seed_hooks",
"serde",
"serde_json",
@ -2112,6 +2127,26 @@ dependencies = [
"siphasher",
]
[[package]]
name = "pin-project"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2 1.0.70",
"quote 1.0.33",
"syn 2.0.39",
]
[[package]]
name = "pin-project-lite"
version = "0.2.13"
@ -2614,24 +2649,21 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "seed"
version = "0.9.2"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9352d75dd253803ce05722fe3acaafffc461d4faeaf0ebe0d8bf831059482e21"
checksum = "9c0e296ea0569d20467e9a1df3cb6ed66ce3b791a7eaf1e1110ae231f75e2b46"
dependencies = [
"console_error_panic_hook",
"cookie 0.16.2",
"dbg",
"enclose",
"futures",
"getrandom",
"gloo-file",
"gloo-timers",
"gloo-utils",
"gloo-utils 0.1.7",
"indexmap 1.9.3",
"js-sys",
"rand",
"serde",
"serde_json",
"serde-wasm-bindgen",
"uuid",
"version_check 0.9.4",
"wasm-bindgen",
@ -2649,7 +2681,7 @@ dependencies = [
"getrandom",
"gloo-file",
"gloo-timers",
"gloo-utils",
"gloo-utils 0.1.7",
"indexmap 1.9.3",
"js-sys",
"rand",
@ -2669,7 +2701,7 @@ dependencies = [
"derive_more",
"gloo-timers",
"lazy_static",
"seed 0.10.0",
"seed 0.10.0 (git+https://github.com/seed-rs/seed.git?branch=master)",
"wasm-bindgen",
"web-sys",
]
@ -2689,6 +2721,17 @@ dependencies = [
"serde_derive",
]
[[package]]
name = "serde-wasm-bindgen"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
dependencies = [
"js-sys",
"serde",
"wasm-bindgen",
]
[[package]]
name = "serde_derive"
version = "1.0.193"
@ -3535,8 +3578,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
dependencies = [
"cfg-if 1.0.0",
"serde",
"serde_json",
"wasm-bindgen-macro",
]

View File

@ -18,7 +18,8 @@ wasm-bindgen-test = "0.3.33"
[dependencies]
console_error_panic_hook = "0.1.7"
log = "0.4.17"
seed = "0.9.2"
seed = { version = "0.10.0", features = ["routing"] }
#seed = "0.9.2"
console_log = {git = "http://git-private.h.xinu.tv/wathiede/console_log.git"}
serde = { version = "1.0.147", features = ["derive"] }
notmuch = {path = "../notmuch"}
@ -30,6 +31,7 @@ chrono = "0.4.31"
graphql_client = "0.13.0"
thiserror = "1.0.50"
seed_hooks = { git = "https://github.com/seed-rs/styles_hooks", package = "seed_hooks", branch = "main" }
gloo-net = { version = "0.4.0", features = ["json", "serde_json"] }
[package.metadata.wasm-pack.profile.release]

View File

@ -1,6 +1,7 @@
use gloo_net::{http::Request, Error};
use log::info;
use notmuch::ThreadSet;
use seed::{prelude::*, Url};
use seed::Url;
const BASE_URL: &str = "/api";
pub fn refresh() -> String {
@ -35,34 +36,20 @@ pub async fn search_request(
query: &str,
page: usize,
results_per_page: usize,
) -> fetch::Result<shared::SearchResult> {
Request::new(search(query, page, results_per_page))
.method(Method::Get)
.fetch()
) -> Result<shared::SearchResult, Error> {
Request::get(&search(query, page, results_per_page))
.send()
.await?
.check_status()?
.json()
.await
}
pub async fn refresh_request() -> fetch::Result<()> {
let t = Request::new(refresh())
.method(Method::Get)
.fetch()
.await?
.check_status()?
.text()
.await?;
pub async fn refresh_request() -> Result<(), Error> {
let t = Request::get(&refresh()).send().await?.text().await?;
info!("refresh {t}");
Ok(())
}
pub async fn show_pretty_request(tid: &str) -> fetch::Result<ThreadSet> {
Request::new(show_pretty(tid))
.method(Method::Get)
.fetch()
.await?
.check_status()?
.json()
.await
pub async fn show_pretty_request(tid: &str) -> Result<ThreadSet, Error> {
Request::get(&show_pretty(tid)).send().await?.json().await
}

View File

@ -1,8 +1,5 @@
use gloo_net::{http::Request, Error};
use graphql_client::GraphQLQuery;
use seed::{
fetch,
fetch::{Header, Method, Request},
};
use serde::{de::DeserializeOwned, Serialize};
// The paths are relative to the directory where your `Cargo.toml` is located.
@ -23,21 +20,18 @@ pub struct FrontPageQuery;
)]
pub struct ShowThreadQuery;
pub async fn send_graphql<Body, Resp>(body: Body) -> fetch::Result<graphql_client::Response<Resp>>
pub async fn send_graphql<Body, Resp>(body: Body) -> Result<graphql_client::Response<Resp>, Error>
where
Body: Serialize,
Resp: DeserializeOwned + 'static,
{
use web_sys::RequestMode;
Request::new("/graphql/")
.method(Method::Post)
.header(Header::content_type("application/json"))
Request::post("/graphql/")
.mode(RequestMode::Cors)
.json(&body)?
.fetch()
.send()
.await?
.check_status()?
.json()
.await
}

View File

@ -4,7 +4,7 @@
#![allow(clippy::wildcard_imports)]
use log::Level;
use seed::prelude::*;
use seed::{prelude::wasm_bindgen, App};
mod api;
mod consts;

View File

@ -1,7 +1,7 @@
use graphql_client::GraphQLQuery;
use log::{debug, error, info};
use notmuch::ThreadSet;
use seed::{prelude::*, *};
use seed::{app::subs, prelude::*, *};
use thiserror::Error;
use crate::{
@ -321,7 +321,7 @@ pub enum UIError {
#[error("No error, this should never be presented to user")]
NoError,
#[error("failed to fetch {0}: {1:?}")]
FetchError(&'static str, FetchError),
FetchError(&'static str, gloo_net::Error),
#[error("{0} error decoding: {1:?}")]
FetchDecodeError(&'static str, Vec<graphql_client::Error>),
#[error("no data or errors for {0}")]
@ -363,15 +363,15 @@ pub enum Msg {
OnResize,
// Tell the server to update state
RefreshStart,
RefreshDone(Option<FetchError>),
RefreshDone(Option<gloo_net::Error>),
SearchRequest {
query: String,
page: usize,
results_per_page: usize,
},
SearchResult(fetch::Result<shared::SearchResult>),
SearchResult(Result<shared::SearchResult, gloo_net::Error>),
ShowPrettyRequest(String),
ShowPrettyResult(fetch::Result<ThreadSet>),
ShowPrettyResult(Result<ThreadSet, gloo_net::Error>),
NextPage,
PreviousPage,
UpdateQuery(String),
@ -385,12 +385,12 @@ pub enum Msg {
last: Option<i64>,
},
FrontPageResult(
fetch::Result<graphql_client::Response<graphql::front_page_query::ResponseData>>,
Result<graphql_client::Response<graphql::front_page_query::ResponseData>, gloo_net::Error>,
),
ShowThreadRequest {
thread_id: String,
},
ShowThreadResult(
fetch::Result<graphql_client::Response<graphql::show_thread_query::ResponseData>>,
Result<graphql_client::Response<graphql::show_thread_query::ResponseData>, gloo_net::Error>,
),
}

View File

@ -5,7 +5,7 @@ use std::{
use chrono::{DateTime, Datelike, Duration, Local, Utc};
use itertools::Itertools;
use log::info;
use log::{error, info};
use seed::{prelude::*, *};
use wasm_timer::Instant;