115 lines
3.2 KiB
Rust
115 lines
3.2 KiB
Rust
use dioxus_core::{prelude::*, TemplateNode, VTemplate, VText};
|
|
|
|
// #[test]
|
|
// fn simple_static() {
|
|
// fn app(cx: Scope) -> Element {
|
|
// static MyTemplate: TemplateDef = TemplateDef {
|
|
// id: "my-template",
|
|
// static_nodes: &[TemplateNode::Element {
|
|
// attributes: &[],
|
|
// nodes: &[TemplateNode::StaticText("Hello, world!")],
|
|
// tag: "div",
|
|
// }],
|
|
// dynamic_nodes: &[],
|
|
// };
|
|
|
|
// Some(VNode::Template(NodeFactory::new(&cx).bump().alloc(
|
|
// VTemplate {
|
|
// def: &MyTemplate,
|
|
// dynamic_nodes: &[],
|
|
// rendered_nodes: &[],
|
|
// },
|
|
// )))
|
|
// }
|
|
|
|
// let mut dom = VirtualDom::new(app);
|
|
// let edits = dom.rebuild();
|
|
// dbg!(edits);
|
|
// }
|
|
|
|
// #[test]
|
|
// fn mixed_dynamic() {
|
|
// fn app(cx: Scope) -> Element {
|
|
// static MyTemplate: TemplateDef = TemplateDef {
|
|
// id: "my-template",
|
|
// static_nodes: &[TemplateNode::Element {
|
|
// tag: "div",
|
|
// attributes: &[],
|
|
// nodes: &[
|
|
// TemplateNode::StaticText("Hello, world!"),
|
|
// TemplateNode::DynamicText,
|
|
// ],
|
|
// }],
|
|
// dynamic_nodes: &[],
|
|
// };
|
|
|
|
// let val = cx.use_hook(|| 0);
|
|
// *val += 1;
|
|
|
|
// let fact = NodeFactory::new(&cx);
|
|
|
|
// Some(VNode::Template(fact.bump().alloc(VTemplateRef {
|
|
// def: &MyTemplate,
|
|
// dynamic_nodes: fact.bump().alloc([fact.text(format_args!("{val}"))]),
|
|
// })))
|
|
// }
|
|
|
|
// let mut dom = VirtualDom::new(app);
|
|
// let edits = dom.rebuild();
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
// }
|
|
|
|
// #[test]
|
|
// fn mixes() {
|
|
// fn app(cx: Scope) -> Element {
|
|
// static MyTemplate: TemplateDef = TemplateDef {
|
|
// id: "my-template",
|
|
// static_nodes: &[TemplateNode::Element {
|
|
// tag: "div",
|
|
// attributes: &[],
|
|
// nodes: &[
|
|
// TemplateNode::StaticText("Hello, world!"),
|
|
// TemplateNode::DynamicText,
|
|
// ],
|
|
// }],
|
|
// dynamic_nodes: &[],
|
|
// };
|
|
|
|
// let val = cx.use_hook(|| 1);
|
|
// *val += 1;
|
|
|
|
// let fact = NodeFactory::new(&cx);
|
|
|
|
// if *val % 2 == 0 {
|
|
// Some(VNode::Template(fact.bump().alloc(VTemplateRef {
|
|
// def: &MyTemplate,
|
|
// dynamic_nodes: fact.bump().alloc([fact.text(format_args!("{val}"))]),
|
|
// })))
|
|
// } else {
|
|
// Some(fact.text(format_args!("Hello, world! {val}")))
|
|
// }
|
|
// }
|
|
|
|
// let mut dom = VirtualDom::new(app);
|
|
// let edits = dom.rebuild();
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
|
|
// let edits = dom.hard_diff(ScopeId(0));
|
|
// dbg!(edits);
|
|
// }
|