chore: more refactoring, docs

This commit is contained in:
Jonathan Kelley committed 2022-11-11 18:29:27 -08:00
1 parent f7df6a9893
commit c44bd11fe5
27 files changed
+657 -382

No files matched your search

+56 -3
View File
@@ -1,5 +1,3 @@
use dioxus::prelude::*;
fn basic_syntax_is_a_template(cx: Scope) -> Element {
let asd = 123;
let var = 123;
@@ -23,8 +21,63 @@ fn basic_syntax_is_a_template(cx: Scope) -> Element {
})
}
// imports come after the test since the rsx! macro is sensitive to its location in the file
// (the byte index is used to differentiate sub templates)
use dioxus::core::{ElementId, Mutation};
use dioxus::prelude::*;
#[test]
fn dual_stream() {
let mut dom = VirtualDom::new(basic_syntax_is_a_template);
dbg!(dom.rebuild());
let edits = dom.rebuild();
use Mutation::*;
assert_eq!(
edits.template_mutations,
vec![
CreateElement { name: "div", namespace: None, id: ElementId(1) },
SetAttribute { name: "class", value: "asd", id: ElementId(1) },
CreateElement { name: "div", namespace: None, id: ElementId(2) },
CreatePlaceholder { id: ElementId(3) },
AppendChildren { m: 1 },
CreateElement { name: "div", namespace: None, id: ElementId(4) },
CreateElement { name: "h1", namespace: None, id: ElementId(5) },
CreateText { value: "var" },
AppendChildren { m: 1 },
CreateElement { name: "p", namespace: None, id: ElementId(6) },
CreateText { value: "you're great!" },
AppendChildren { m: 1 },
CreateElement { name: "div", namespace: None, id: ElementId(7) },
SetAttribute { name: "background-color", value: "red", id: ElementId(7) },
CreateElement { name: "h1", namespace: None, id: ElementId(8) },
CreateText { value: "var" },
AppendChildren { m: 1 },
CreateElement { name: "div", namespace: None, id: ElementId(9) },
CreateElement { name: "b", namespace: None, id: ElementId(10) },
CreateText { value: "asd" },
AppendChildren { m: 1 },
CreateText { value: "not great" },
AppendChildren { m: 2 },
AppendChildren { m: 2 },
CreateElement { name: "p", namespace: None, id: ElementId(11) },
CreateText { value: "you're great!" },
AppendChildren { m: 1 },
AppendChildren { m: 4 },
AppendChildren { m: 2 },
SaveTemplate { name: "packages/dioxus/tests/rsx_syntax.rs:5:15:122", m: 1 }
]
);
assert_eq!(
edits.edits,
vec![
LoadTemplate { name: "packages/dioxus/tests/rsx_syntax.rs:5:15:122", index: 0 },
AssignId { path: &[], id: ElementId(12) },
SetAttribute { name: "class", value: "123", id: ElementId(12) },
SetAttribute { name: "onclick", value: "asd", id: ElementId(12) }, // ---- todo: listeners
HydrateText { path: &[0, 0], value: "123", id: ElementId(13) },
ReplacePlaceholder { m: 1, path: &[0, 0] },
AppendChildren { m: 1 }
]
);
}
+1
View File
@@ -1,6 +1,7 @@
use std::future::IntoFuture;
use dioxus::prelude::*;
use dioxus_core::SuspenseBoundary;
#[inline_props]
fn suspense_boundary<'a>(cx: Scope<'a>, children: Element<'a>) -> Element {
-1
View File
@@ -1 +0,0 @@
fn main() {}