This commit is contained in:
Evan Almloff 2023-08-04 15:23:09 -07:00
parent 48b1e9e54c
commit 0032f7e2af
2 changed files with 4 additions and 4 deletions

View file

@ -21,7 +21,7 @@ impl VirtualDom {
let entry = self.scopes.vacant_entry();
let id = ScopeId(entry.key());
let scope = entry.insert(ScopeState {
let scope = entry.insert(Box::new(ScopeState {
runtime: self.runtime.clone(),
context_id: id,
@ -36,7 +36,7 @@ impl VirtualDom {
borrowed_props: Default::default(),
attributes_to_drop: Default::default(),
});
}));
let context =
ScopeContext::new(name, id, parent_id, height, self.runtime.scheduler.clone());

View file

@ -175,7 +175,7 @@ use std::{any::Any, cell::Cell, collections::BTreeSet, future::Future, rc::Rc};
/// }
/// ```
pub struct VirtualDom {
pub(crate) scopes: Slab<ScopeState>,
pub(crate) scopes: Slab<Box<ScopeState>>,
pub(crate) dirty_scopes: BTreeSet<DirtyScope>,
@ -285,7 +285,7 @@ impl VirtualDom {
///
/// This is useful for inserting or removing contexts from a scope, or rendering out its root node
pub fn get_scope(&self, id: ScopeId) -> Option<&ScopeState> {
self.scopes.get(id.0)
self.scopes.get(id.0).map(|s| &**s)
}
/// Get the single scope at the top of the VirtualDom tree that will always be around