create node watcher API

This commit is contained in:
Evan Almloff committed 2023-02-06 13:40:22 -06:00
1 parent 93f64d91c9
commit bd07d7754c
9 files changed
+294 -339

No files matched your search

+6 -10
View File
@@ -77,14 +77,14 @@ impl DioxusState {
}
CreatePlaceholder { id } => {
let node = NodeType::Placeholder;
let node = rdom.create_node(node, true);
let node = rdom.create_node(node);
let node_id = node.id();
self.set_element_id(node, id);
self.stack.push(node_id);
}
CreateTextNode { value, id } => {
let node_data = NodeType::Text(value.to_string());
let node = rdom.create_node(node_data, true);
let node = rdom.create_node(node_data);
let node_id = node.id();
self.set_element_id(node, id);
self.stack.push(node_id);
@@ -228,20 +228,16 @@ fn create_template_node(rdom: &mut RealDom, node: &TemplateNode) -> NodeId {
.collect(),
listeners: FxHashSet::default(),
});
let node_id = rdom.create_node(node, true).id();
let node_id = rdom.create_node(node).id();
for child in *children {
let child_id = create_template_node(rdom, child);
rdom.add_child(node_id, child_id);
}
node_id
}
TemplateNode::Text { text } => rdom
.create_node(NodeType::Text(text.to_string()), true)
.id(),
TemplateNode::Dynamic { .. } => rdom.create_node(NodeType::Placeholder, true).id(),
TemplateNode::DynamicText { .. } => {
rdom.create_node(NodeType::Text(String::new()), true).id()
}
TemplateNode::Text { text } => rdom.create_node(NodeType::Text(text.to_string())).id(),
TemplateNode::Dynamic { .. } => rdom.create_node(NodeType::Placeholder).id(),
TemplateNode::DynamicText { .. } => rdom.create_node(NodeType::Text(String::new())).id(),
}
}