Wait for the suspense boundary above the router to resolve before sending the first streaming chunk (#3891)
* Change the suspense streaming context after suspense is resolved in the router * Wait for the suspense context before streaming the first chunk in ssr * forward more response parts * warn * extract the hydration format into a crate * Fix hydration when no data is sent * forward web and server features * Fix suspense that starts on the client * fix use_server_future on the client * Add documentation for fullstack hooks and protocol * downgrade rust edition * fix clippy * fix tests * fix clippy * Fix pure web compile * undo changes to the fullstack router example * fix formatting
This commit is contained in:
1 parent
4f74ef81d1
commit
84221f55a0
45 files changed
+988
-533
No files matched your search
@@ -13,6 +13,7 @@ keywords = ["dom", "ui", "gui", "react", "wasm"]
|
||||
dioxus-lib = { workspace = true }
|
||||
dioxus-history = { workspace = true }
|
||||
dioxus-router-macro = { workspace = true }
|
||||
dioxus-fullstack-hooks = { workspace = true, optional = true }
|
||||
tracing = { workspace = true }
|
||||
urlencoding = "2.1.3"
|
||||
url = "2.3.1"
|
||||
@@ -21,6 +22,7 @@ rustversion = "1.0.17"
|
||||
|
||||
[features]
|
||||
default = []
|
||||
streaming = ["dep:dioxus-fullstack-hooks"]
|
||||
wasm-split = []
|
||||
|
||||
[dev-dependencies]
|
||||
|
||||
@@ -44,6 +44,11 @@ pub fn Router<R: Routable + Clone>(props: RouterProps<R>) -> Element {
|
||||
provide_router_context(RouterContext::new(props.config.call(())));
|
||||
});
|
||||
|
||||
#[cfg(feature = "streaming")]
|
||||
use_after_suspense_resolved(|| {
|
||||
dioxus_fullstack_hooks::commit_initial_chunk();
|
||||
});
|
||||
|
||||
use_hook(|| {
|
||||
provide_context(OutletContext::<R>::new());
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user