wip: groundwork for noderefs
This commit is contained in:
1 parent
a44e9fcffa
commit
c1afeba1ef
21 files changed
+184
-103
No files matched your search
@@ -40,7 +40,7 @@ impl TestDom {
|
||||
|
||||
fn diff<'a>(&'a self, old: &'a VNode<'a>, new: &'a VNode<'a>) -> Vec<DomEdit<'a>> {
|
||||
let mut edits = Vec::new();
|
||||
let mut machine = DiffMachine::new_headless(&mut edits, &self.resources);
|
||||
let mut machine = DiffMachine::new_headless(&self.resources);
|
||||
machine.diff_node(old, new);
|
||||
edits
|
||||
}
|
||||
@@ -52,7 +52,7 @@ impl TestDom {
|
||||
let old = self.bump.alloc(self.render(left));
|
||||
let mut edits = Vec::new();
|
||||
|
||||
let mut machine = DiffMachine::new_headless(&mut edits, &self.resources);
|
||||
let mut machine = DiffMachine::new_headless(&self.resources);
|
||||
let meta = machine.create_vnode(old);
|
||||
(meta, edits)
|
||||
}
|
||||
@@ -72,11 +72,11 @@ impl TestDom {
|
||||
|
||||
let mut create_edits = Vec::new();
|
||||
|
||||
let mut machine = DiffMachine::new_headless(&mut create_edits, &self.resources);
|
||||
let mut machine = DiffMachine::new_headless(&self.resources);
|
||||
machine.create_vnode(old);
|
||||
|
||||
let mut edits = Vec::new();
|
||||
let mut machine = DiffMachine::new_headless(&mut edits, &self.resources);
|
||||
let mut machine = DiffMachine::new_headless(&self.resources);
|
||||
machine.diff_node(old, new);
|
||||
(create_edits, edits)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
use anyhow::{Context, Result};
|
||||
use dioxus::{
|
||||
arena::SharedResources,
|
||||
diff::{CreateMeta, DiffMachine},
|
||||
prelude::*,
|
||||
DomEdit,
|
||||
};
|
||||
use dioxus_core as dioxus;
|
||||
use dioxus_html as dioxus_elements;
|
||||
|
||||
#[test]
|
||||
fn sample_refs() {
|
||||
static App: FC<()> = |cx| {
|
||||
let div_ref = use_node_ref::<MyRef, _>(cx);
|
||||
|
||||
cx.render(rsx! {
|
||||
div {
|
||||
style: { color: "red" }
|
||||
node_ref: div_ref
|
||||
onmouseover: move |_| {
|
||||
div_ref.borrow_mut().focus();
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
struct MyRef {}
|
||||
Reference in new issue
Block a user