style update
This commit is contained in:
@@ -46,6 +46,11 @@ pub fn element(_args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
.parse2(quote! { pub children: Children })
|
||||
.unwrap(),
|
||||
);
|
||||
fields.named.push(
|
||||
syn::Field::parse_named
|
||||
.parse2(quote! { pub style: Style })
|
||||
.unwrap(),
|
||||
);
|
||||
fields.named.push(
|
||||
syn::Field::parse_named
|
||||
.parse2(quote! { pub id: &'a str })
|
||||
@@ -92,6 +97,20 @@ pub fn element(_args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
None
|
||||
}
|
||||
}
|
||||
fn set_styling(&mut self, styling: &std::collections::HashMap<StyleName, Style>) {
|
||||
if let Some(style) = styling.get(&StyleName::Class(self.class.to_string())) {
|
||||
self.style = style.clone();
|
||||
} else if let Some(style) = styling.get(&StyleName::Id(self.id.to_string())) {
|
||||
self.style = style.clone();
|
||||
} else if let Some(style) = styling.get(&StyleName::Component(stringify!(#struct_name).to_string())) {
|
||||
self.style = style.clone();
|
||||
}
|
||||
if let Children::Children(children, _) = &mut self.children {
|
||||
for child in children {
|
||||
child.set_styling(styling);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user