diff --git a/Cargo.lock b/Cargo.lock index 8b0b07d..b1fdd22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1552,7 +1552,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2886,7 +2886,7 @@ checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" dependencies = [ "hermit-abi 0.4.0", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3057,6 +3057,7 @@ dependencies = [ "seed_hooks", "serde", "serde_json", + "strum_macros 0.27.1", "thiserror 2.0.11", "uuid", "wasm-bindgen", @@ -4446,7 +4447,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5129,7 +5130,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5962,7 +5963,7 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros", + "strum_macros 0.26.4", ] [[package]] @@ -5978,6 +5979,19 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.98", +] + [[package]] name = "subtle" version = "1.0.0" @@ -6205,7 +6219,7 @@ dependencies = [ "getrandom 0.3.1", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7281,7 +7295,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/web/Cargo.toml b/web/Cargo.toml index 715aaad..be3df1c 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -36,6 +36,7 @@ uuid = { version = "1.13.1", features = [ letterbox-shared = { version = "0.9.2", path = "../shared", registry = "xinu" } letterbox-notmuch = { version = "0.9.2", path = "../notmuch", registry = "xinu" } seed_hooks = { version = "0.4.0", registry = "xinu" } +strum_macros = "0.27.1" [package.metadata.wasm-pack.profile.release] wasm-opt = ['-Os'] diff --git a/web/src/state.rs b/web/src/state.rs index a4b15c3..5abf749 100644 --- a/web/src/state.rs +++ b/web/src/state.rs @@ -116,6 +116,7 @@ fn on_url_changed(uc: subs::UrlChanged) -> Msg { // `update` describes how to handle each `Msg`. pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { + debug!("update({})", msg); match msg { Msg::Noop => {} Msg::RefreshStart => { @@ -191,10 +192,7 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { }; } Msg::GoToSearchResults => { - let url = urls::search(&model.query, 0); - info!("GoToSearchResults Start"); - orders.request_url(url); - info!("GoToSearchResults End"); + orders.send_msg(Msg::SearchQuery(model.query.clone())); } Msg::UpdateQuery(query) => model.query = query, @@ -605,6 +603,7 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { format!("{} is:unread", model.query) }; info!("starting catchup mode w/ {}", query); + orders.send_msg(Msg::ScrollToTop); orders.send_msg(Msg::CatchupRequest { query }); } Msg::CatchupKeepUnread => { @@ -643,6 +642,7 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders) { }; } Msg::CatchupExit => { + orders.send_msg(Msg::ScrollToTop); model.catchup = None; } } @@ -734,6 +734,7 @@ pub enum RefreshingState { Error(String), } // `Msg` describes the different events you can modify state with. +#[derive(strum_macros::Display)] pub enum Msg { Noop, // Tell the client to refresh its state