Change context api to panic with nice error message

This commit is contained in:
Jonathan Kelley committed 2024-01-15 18:02:58 -08:00
1 parent ee5020c41f
commit 14651a3573
19 files changed
+96 -69

No files matched your search

+1 -1
View File
@@ -9,7 +9,7 @@ use crate::prelude::{ExternalNavigationFailure, IntoRoutable, RouterContext};
/// Panics if there is no router present.
pub fn navigator() -> Navigator {
Navigator(
dioxus_lib::prelude::consume_context::<RouterContext>()
dioxus_lib::prelude::try_consume_context::<RouterContext>()
.expect("A router must be present to use navigator"),
)
}
+1 -1
View File
@@ -18,7 +18,7 @@ impl<R> Clone for OutletContext<R> {
pub(crate) fn use_outlet_context<R: 'static>() -> OutletContext<R> {
use_hook(|| {
consume_context().unwrap_or(OutletContext::<R> {
try_consume_context().unwrap_or(OutletContext::<R> {
current_level: 1,
_marker: std::marker::PhantomData,
})
+2 -2
View File
@@ -1,4 +1,4 @@
use dioxus_lib::prelude::{consume_context, use_hook};
use dioxus_lib::prelude::{consume_context, try_consume_context, use_hook};
use crate::prelude::{Navigator, RouterContext};
@@ -51,7 +51,7 @@ use crate::prelude::{Navigator, RouterContext};
#[must_use]
pub fn use_navigator() -> Navigator {
use_hook(|| {
let router = consume_context::<RouterContext>()
let router = try_consume_context::<RouterContext>()
.expect("Must be called in a descendant of a Router component");
Navigator(router)
+1 -1
View File
@@ -9,5 +9,5 @@ pub fn use_router() -> RouterContext {
/// Aquire the router without subscribing to updates.
pub fn router() -> RouterContext {
dioxus_lib::prelude::consume_context().unwrap()
dioxus_lib::prelude::consume_context()
}