#[macro_export]
macro_rules! create_leptos_icons {
($component_name:ident, $snake_name:ident) => {
#[component]
pub fn $component_name(#[prop(into, optional)] class: Signal<String>) -> impl IntoView {
use leptos::prelude::*;
use super::parser::parse_svg_elements;
use super::svg_icon::SvgIcon;
const SVG_CONTENT: &str = include_str!(concat!("../../ICONS_TXT/", stringify!($snake_name), ".txt"));
let elements = parse_svg_elements(SVG_CONTENT);
view! {
<SvgIcon class=class>
<title>{format!("Rust UI Icons - {}", stringify!($component_name))}</title>
{elements.into_iter().map(|element| {
element.to_leptos_view()
}).collect::<Vec<_>>()}
</SvgIcon>
}
}
};
}