Fix additional attributes for js renderers (#3625)

This commit is contained in:
Evan Almloff authored and GitHub committed 2025-01-31 14:31:31 -08:00
1 parent 67515ce812
commit 2d188452ae
10 files changed
+125 -1

No files matched your search

+23
View File
@@ -124,3 +124,26 @@ impl DeduplicationContext {
}
}
}
/// Extend a list of string attributes with a list of dioxus attribute
pub(crate) fn extend_attributes(
attributes: &mut Vec<(&'static str, String)>,
additional_attributes: &[Attribute],
) {
for additional_attribute in additional_attributes {
let attribute_value_as_string = match &additional_attribute.value {
dioxus_core::AttributeValue::Text(v) => v.to_string(),
dioxus_core::AttributeValue::Float(v) => v.to_string(),
dioxus_core::AttributeValue::Int(v) => v.to_string(),
dioxus_core::AttributeValue::Bool(v) => v.to_string(),
dioxus_core::AttributeValue::Listener(_) | dioxus_core::AttributeValue::Any(_) => {
tracing::error!("document::* elements do not support event listeners or any value attributes. Expected displayable attribute, found {:?}", additional_attribute.value);
continue;
}
dioxus_core::AttributeValue::None => {
continue;
}
};
attributes.push((additional_attribute.name, attribute_value_as_string));
}
}