icons 0.18.3

Icons for Rust fullstack applications — Leptos and Dioxus.
Documentation
use dioxus::prelude::*;

use crate::common::icon_registry_getter::{get_animated_icon_elements, get_icon_css};
use crate::common::icon_type::IconTypeAnimated;
use crate::dioxus::svg_icon::SvgIcon;

#[component]
pub fn AnimatedIcon(icon: IconTypeAnimated, class: Option<String>) -> Element {
    let elements = get_animated_icon_elements(icon).unwrap_or(&[]);
    let icon_css = get_icon_css(icon);
    let icon_name = icon.as_ref().to_string();

    rsx! {
        if let Some(css) = icon_css {
            style { "{css}" }
        }
        SvgIcon { class, data_name: icon_name.clone(),
            title { "Rust/UI Animated Icons - {icon_name}" }
            for element in elements.iter() {
                {element.to_dioxus_element()}
            }
        }
    }
}