add if statements to test and rsx usage example
This commit is contained in:
1 parent
ab2b9fb34e
commit
c0f345e775
3 files changed
+14
-2
No files matched your search
@@ -53,6 +53,7 @@ fn app(cx: Scope) -> Element {
|
|||||||
let formatting = "formatting!";
|
let formatting = "formatting!";
|
||||||
let formatting_tuple = ("a", "b");
|
let formatting_tuple = ("a", "b");
|
||||||
let lazy_fmt = format_args!("lazily formatted text");
|
let lazy_fmt = format_args!("lazily formatted text");
|
||||||
|
let asd = 123;
|
||||||
cx.render(rsx! {
|
cx.render(rsx! {
|
||||||
div {
|
div {
|
||||||
// Elements
|
// Elements
|
||||||
@@ -80,6 +81,10 @@ fn app(cx: Scope) -> Element {
|
|||||||
// pass simple rust expressions in
|
// pass simple rust expressions in
|
||||||
class: lazy_fmt,
|
class: lazy_fmt,
|
||||||
id: format_args!("attributes can be passed lazily with std::fmt::Arguments"),
|
id: format_args!("attributes can be passed lazily with std::fmt::Arguments"),
|
||||||
|
class: "asd",
|
||||||
|
class: "{asd}",
|
||||||
|
// if statements can be used to conditionally render attributes
|
||||||
|
class: if formatting.contains("form") { "{asd}" },
|
||||||
div {
|
div {
|
||||||
class: {
|
class: {
|
||||||
const WORD: &str = "expressions";
|
const WORD: &str = "expressions";
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ fn basic_syntax_is_a_template(cx: Scope) -> Element {
|
|||||||
div { key: "12345",
|
div { key: "12345",
|
||||||
class: "asd",
|
class: "asd",
|
||||||
class: "{asd}",
|
class: "{asd}",
|
||||||
|
class: if true { "{asd}" },
|
||||||
|
class: if false { "{asd}" },
|
||||||
onclick: move |_| {},
|
onclick: move |_| {},
|
||||||
div { "{var}" }
|
div { "{var}" }
|
||||||
div {
|
div {
|
||||||
@@ -37,7 +39,7 @@ fn dual_stream() {
|
|||||||
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
LoadTemplate { name: "template", index: 0, id: ElementId(1) },
|
||||||
SetAttribute {
|
SetAttribute {
|
||||||
name: "class",
|
name: "class",
|
||||||
value: (&*bump.alloc("ast 123".into_value(&bump))).into(),
|
value: (&*bump.alloc("asd 123 123".into_value(&bump))).into(),
|
||||||
id: ElementId(1),
|
id: ElementId(1),
|
||||||
ns: None,
|
ns: None,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -121,7 +121,12 @@ impl Parse for ElementAttrValue {
|
|||||||
} else {
|
} else {
|
||||||
ElementAttrValue::AttrOptionalExpr {
|
ElementAttrValue::AttrOptionalExpr {
|
||||||
condition: *if_expr.cond,
|
condition: *if_expr.cond,
|
||||||
value: Box::new(syn::parse2(if_expr.then_branch.into_token_stream())?),
|
value: {
|
||||||
|
let stmts = if_expr.then_branch.stmts;
|
||||||
|
Box::new(syn::parse2(quote! {
|
||||||
|
#(#stmts)*
|
||||||
|
})?)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if input.peek(LitStr) {
|
} else if input.peek(LitStr) {
|
||||||
|
|||||||
Reference in new issue
Block a user