codify "platform" into resolution logic, server-fn/fullstack overhaul (#4596)

overhaul dioxus fullstack using a new implementation of server_fn

This PR is a complete rewrite of dioxus fullstack designed to improve compatibility with axum and to fix a number of compilation errors based on feature flag unification plumbing through macros.
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2025-10-03 18:26:19 -07:00
1 parent 8421c3aef0
commit f2b1c6d97f
424 files changed
+17284 -6624

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
//! Contains a hydration compatible error boundary context.
use crate::serialize_context;
use dioxus_core::{spawn_isomorphic, CapturedError, ErrorContext, ReactiveContext};
use futures_util::StreamExt;
/// Initializes an error boundary context that is compatible with hydration.
pub fn init_error_boundary() -> ErrorContext {
let initial_error = serialize_context().create_entry::<Option<CapturedError>>();
let (rx_context, mut rx) = ReactiveContext::new();
let errors = ErrorContext::new(None);
if let Ok(Some(err)) = initial_error.get() {
errors.insert_error(err);
}
rx_context.run_in(|| {
errors.error();
});
spawn_isomorphic({
let errors = errors.clone();
async move {
if rx.next().await.is_some() {
rx_context.run_in(|| {
initial_error.insert(&errors.error(), std::panic::Location::caller())
});
}
}
});
errors
}