Fix rendering and navigation with SSR

This commit is contained in:
Jeremy Wall 2022-08-15 22:15:53 -04:00
parent f187cd7c4e
commit c44b1597dc
3 changed files with 21 additions and 15 deletions

31
Cargo.lock generated
View File

@ -376,9 +376,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]] [[package]]
name = "cpufeatures" name = "cpufeatures"
version = "0.2.2" version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" checksum = "1079fb8528d9f9c888b1e8aa651e6e079ade467323d58f75faf1d30b1808f540"
dependencies = [ dependencies = [
"libc", "libc",
] ]
@ -580,11 +580,13 @@ dependencies = [
[[package]] [[package]]
name = "gloo-utils" name = "gloo-utils"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "929c53c913bb7a88d75d9dc3e9705f963d8c2b9001510b25ddaf671b9fb7049d" checksum = "40913a05c8297adca04392f707b1e73b12ba7b8eab7244a4961580b1fd34063c"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"serde",
"serde_json",
"wasm-bindgen", "wasm-bindgen",
"web-sys", "web-sys",
] ]
@ -678,9 +680,9 @@ dependencies = [
[[package]] [[package]]
name = "iana-time-zone" name = "iana-time-zone"
version = "0.1.45" version = "0.1.46"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501"
dependencies = [ dependencies = [
"android_system_properties", "android_system_properties",
"core-foundation-sys", "core-foundation-sys",
@ -1037,10 +1039,11 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]] [[package]]
name = "polling" name = "polling"
version = "2.2.0" version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011"
dependencies = [ dependencies = [
"autocfg",
"cfg-if", "cfg-if",
"libc", "libc",
"log", "log",
@ -1172,18 +1175,18 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.143" version = "1.0.144"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.143" version = "1.0.144"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1192,9 +1195,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.83" version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
dependencies = [ dependencies = [
"itoa 1.0.3", "itoa 1.0.3",
"ryu", "ryu",

View File

@ -18,6 +18,7 @@ mod router_integration;
mod service; mod service;
mod web; mod web;
#[cfg(not(target_arch = "wasm32"))]
use router_integration::DeriveRoute; use router_integration::DeriveRoute;
use sycamore::prelude::*; use sycamore::prelude::*;
use tracing::{debug, instrument}; use tracing::{debug, instrument};

View File

@ -51,7 +51,7 @@ fn route_switch<G: Html>(route: ReadSignal<AppRoutes>) -> View<G> {
} }
} }
}); });
debug!(node=?node, "routing to new page"); debug!(node=?node, route=?route.get_untracked(), "routing to new page");
node node
} }
@ -70,11 +70,13 @@ fn router_component(route: Option<AppRoutes>) -> View<G> {
debug!("Setting up router component"); debug!("Setting up router component");
match route { match route {
Some(route) => { Some(route) => {
debug!("Using static router");
view! { view! {
StaticRouter(StaticRouterProps{route: route, route_select: route_switch}) StaticRouter(StaticRouterProps{route: route, route_select: route_switch})
} }
} }
None => { None => {
debug!("Using dynamic router");
view! { view! {
Router(RouterProps{ Router(RouterProps{
route: AppRoutes::default(), route: AppRoutes::default(),