handle rsx!{cx, ...}

This commit is contained in:
Evan Almloff committed 2022-06-05 07:38:05 -05:00
1 parent 586e29d815
commit 2a6d9ed075
3 files changed
+15 -5

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ license = "MIT/Apache-2.0"
syn = { version = "1.0", features = ["extra-traits"] }
quote = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = { vesion = "1.0" }
serde_json = "1.0"
lazy_static = "1.4.0"
dioxus-rsx = { path = "../rsx", default-features = false }
@@ -4,7 +4,7 @@ use dioxus_rsx::{
};
use quote::{quote, ToTokens, TokenStreamExt};
use std::collections::HashMap;
use syn::{Expr, Result};
use syn::{Expr, Ident, Result};
#[derive(Default)]
pub struct CapturedContextBuilder {
@@ -14,6 +14,7 @@ pub struct CapturedContextBuilder {
pub iterators: Vec<BodyNode>,
pub captured_expressions: Vec<Expr>,
pub listeners: Vec<ElementAttrNamed>,
pub custom_context: Option<Ident>,
}
impl CapturedContextBuilder {
@@ -28,6 +29,7 @@ impl CapturedContextBuilder {
pub fn from_call_body(body: CallBody) -> Result<Self> {
let mut new = Self::default();
new.custom_context = body.custom_context;
for node in body.roots {
new.extend(Self::find_captured(node)?);
}
@@ -86,6 +88,7 @@ impl ToTokens for CapturedContextBuilder {
iterators,
captured_expressions,
listeners,
custom_context: _,
} = self;
let listeners_str = listeners
.iter()