Merge pull request #1384 from ealmloff/new-in-scope-signals

Expose new_in_scope for signals
This commit is contained in:
Jonathan Kelley 2023-08-30 23:14:58 -07:00 committed by GitHub
commit 1ba6ca39e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -145,6 +145,21 @@ impl<T: 'static> Signal<T> {
}
}
/// Create a new signal with a custom owner scope. The signal will be dropped when the owner scope is dropped instead of the current scope.
pub fn new_in_scope(value: T, owner: ScopeId) -> Self {
Self {
inner: CopyValue::new_in_scope(
SignalData {
subscribers: Default::default(),
effect_subscribers: Default::default(),
update_any: schedule_update_any().expect("in a virtual dom"),
value,
},
owner,
),
}
}
/// Get the scope the signal was created in.
pub fn origin_scope(&self) -> ScopeId {
self.inner.origin_scope()