From 6c29e2b825cf8fae8bbb728ce806d733326a1a83 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Thu, 11 Jan 2024 17:21:13 -0600 Subject: [PATCH] clean up some core context APIs --- packages/core/src/global_context.rs | 4 ++-- packages/core/src/scope_context.rs | 4 ++-- packages/signals/src/rt.rs | 4 ++-- packages/signals/src/signal.rs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core/src/global_context.rs b/packages/core/src/global_context.rs index 05002281c..9b3c6d61c 100644 --- a/packages/core/src/global_context.rs +++ b/packages/core/src/global_context.rs @@ -38,8 +38,8 @@ pub fn has_context() -> Option { } /// Provide context to the current scope -pub fn provide_context(value: T) -> Option { - with_current_scope(|cx| cx.provide_context(value)) +pub fn provide_context(value: T) -> T { + with_current_scope(|cx| cx.provide_context(value)).expect("to be in a dioxus runtime") } /// Provide a context to the root scope diff --git a/packages/core/src/scope_context.rs b/packages/core/src/scope_context.rs index bd0700ec7..88421549d 100644 --- a/packages/core/src/scope_context.rs +++ b/packages/core/src/scope_context.rs @@ -338,8 +338,8 @@ impl ScopeId { } /// Provide context to the current scope - pub fn provide_context(self, value: T) -> Option { - with_scope(self, |cx| cx.provide_context(value)) + pub fn provide_context(self, value: T) -> T { + with_scope(self, |cx| cx.provide_context(value)).expect("to be in a dioxus runtime") } /// Suspends the current component diff --git a/packages/signals/src/rt.rs b/packages/signals/src/rt.rs index 58f15a2fd..18e8b4626 100644 --- a/packages/signals/src/rt.rs +++ b/packages/signals/src/rt.rs @@ -33,7 +33,7 @@ fn current_owner() -> Rc { Some(rt) => rt, None => { let owner = Rc::new(current_store().owner()); - provide_context(owner).expect("in a virtual dom") + provide_context(owner) } }, } @@ -44,7 +44,7 @@ fn owner_in_scope(scope: ScopeId) -> Rc { Some(rt) => rt, None => { let owner = Rc::new(current_store().owner()); - scope.provide_context(owner).expect("in a virtual dom") + scope.provide_context(owner) } } } diff --git a/packages/signals/src/signal.rs b/packages/signals/src/signal.rs index 1f7426ff5..d92521e23 100644 --- a/packages/signals/src/signal.rs +++ b/packages/signals/src/signal.rs @@ -85,7 +85,7 @@ fn current_unsubscriber() -> Unsubscriber { scope: current_scope_id().expect("in a virtual dom"), subscribers: Default::default(), }; - provide_context(owner).expect("in a virtual dom") + provide_context(owner) } } }