From c44b1597dc95c07734ce49e1eaed6b22b37099f3 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Mon, 15 Aug 2022 22:15:53 -0400 Subject: [PATCH] Fix rendering and navigation with SSR --- Cargo.lock | 31 +++++++++++++++++-------------- web/src/lib.rs | 1 + web/src/web.rs | 4 +++- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 44b9f6a..ea1537d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -376,9 +376,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "1079fb8528d9f9c888b1e8aa651e6e079ade467323d58f75faf1d30b1808f540" dependencies = [ "libc", ] @@ -580,11 +580,13 @@ dependencies = [ [[package]] name = "gloo-utils" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929c53c913bb7a88d75d9dc3e9705f963d8c2b9001510b25ddaf671b9fb7049d" +checksum = "40913a05c8297adca04392f707b1e73b12ba7b8eab7244a4961580b1fd34063c" dependencies = [ "js-sys", + "serde", + "serde_json", "wasm-bindgen", "web-sys", ] @@ -678,9 +680,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1037,10 +1039,11 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "polling" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ + "autocfg", "cfg-if", "libc", "log", @@ -1172,18 +1175,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ "proc-macro2", "quote", @@ -1192,9 +1195,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa 1.0.3", "ryu", diff --git a/web/src/lib.rs b/web/src/lib.rs index 74f7593..6662add 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -18,6 +18,7 @@ mod router_integration; mod service; mod web; +#[cfg(not(target_arch = "wasm32"))] use router_integration::DeriveRoute; use sycamore::prelude::*; use tracing::{debug, instrument}; diff --git a/web/src/web.rs b/web/src/web.rs index 7d8752c..6cf6b1a 100644 --- a/web/src/web.rs +++ b/web/src/web.rs @@ -51,7 +51,7 @@ fn route_switch(route: ReadSignal) -> View { } } }); - debug!(node=?node, "routing to new page"); + debug!(node=?node, route=?route.get_untracked(), "routing to new page"); node } @@ -70,11 +70,13 @@ fn router_component(route: Option) -> View { debug!("Setting up router component"); match route { Some(route) => { + debug!("Using static router"); view! { StaticRouter(StaticRouterProps{route: route, route_select: route_switch}) } } None => { + debug!("Using dynamic router"); view! { Router(RouterProps{ route: AppRoutes::default(),