dioxus_element_plug/components/
skeleton_item.rs1use dioxus::prelude::*;
2
3#[derive(Props, Clone, PartialEq)]
5pub struct SkeletonItemProps {
6 #[props(default = "text".to_string())]
8 pub variant: String,
9
10 #[props(default)]
12 pub class: Option<String>,
13
14 #[props(default)]
16 pub style: Option<String>,
17}
18
19#[component]
29pub fn SkeletonItem(props: SkeletonItemProps) -> Element {
30 let mut class_names = vec!["el-skeleton__item".to_string()];
31 class_names.push(format!("el-skeleton__{}", props.variant));
32
33 if let Some(ref custom_class) = props.class {
34 class_names.push(custom_class.clone());
35 }
36
37 let class_string = class_names.join(" ");
38 let style_string = props.style.clone().unwrap_or_default();
39
40 rsx! {
41 div {
42 class: "{class_string}",
43 style: "{style_string}",
44 }
45 }
46}