Skip to main content

dioxus_element_plug/components/
carousel_item.rs

1use dioxus::prelude::*;
2
3/// CarouselItem props
4#[derive(Props, Clone, PartialEq)]
5pub struct CarouselItemProps {
6    #[props(default)]
7    pub children: Element,
8
9    /// Item name/label
10    #[props(default)]
11    pub name: Option<String>,
12
13    #[props(default)]
14    pub class: Option<String>,
15
16    #[props(default)]
17    pub style: Option<String>,
18}
19
20/// CarouselItem component for individual carousel slides
21#[component]
22pub fn CarouselItem(props: CarouselItemProps) -> Element {
23    let mut class_names = vec!["el-carousel__item".to_string()];
24    if let Some(ref c) = props.class { class_names.push(c.clone()); }
25
26    rsx! {
27        div {
28            class: "{class_names.join(\" \")}",
29            style: props.style.clone().unwrap_or_default(),
30            {props.children}
31        }
32    }
33}