From df8aa77198712559f72bef093d064e03b2a5245a Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Tue, 24 Aug 2021 12:51:53 -0400 Subject: [PATCH] fix: append isnt backwards --- packages/web/src/dom.rs | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/packages/web/src/dom.rs b/packages/web/src/dom.rs index 2aa57ea5b..8d06a6f5f 100644 --- a/packages/web/src/dom.rs +++ b/packages/web/src/dom.rs @@ -124,8 +124,6 @@ impl WebsysDom { } fn append_children(&mut self, many: u32) { - log::debug!("Called [`append_child`]"); - let root: Node = self .stack .list @@ -133,9 +131,11 @@ impl WebsysDom { .unwrap() .clone(); - for _ in 0..many { - let child = self.stack.pop(); - + for child in self + .stack + .list + .drain((self.stack.list.len() - many as usize)..) + { if child.dyn_ref::().is_some() { if self.last_node_was_text { let comment_node = self @@ -143,20 +143,17 @@ impl WebsysDom { .create_comment("dioxus") .dyn_into::() .unwrap(); - self.stack.top().append_child(&comment_node).unwrap(); + root.append_child(&comment_node).unwrap(); } self.last_node_was_text = true; } else { self.last_node_was_text = false; } - root.append_child(&child).unwrap(); } } fn replace_with(&mut self, m: u32, root: u64) { - log::debug!("Called [`replace_with`]"); - let mut new_nodes = vec![]; for _ in 0..m { new_nodes.push(self.stack.pop()); @@ -198,8 +195,6 @@ impl WebsysDom { } fn remove(&mut self, root: u64) { - log::debug!("Called [`remove`]"); - let node = self.nodes[root as usize].as_ref().unwrap(); if let Some(element) = node.dyn_ref::() { element.remove(); @@ -211,7 +206,6 @@ impl WebsysDom { } fn remove_all_children(&mut self) { - log::debug!("Called [`remove_all_children`]"); todo!() } @@ -255,7 +249,6 @@ impl WebsysDom { self.nodes[id] = Some(el); // let nid = self.node_counter.?next(); // let nid = self.nodes.insert(el).data().as_ffi(); - // log::debug!("Called [`create_element`]: {}, {:?}", tag, nid); // ElementId::new(nid) }