use dioxus::prelude::*;
#[derive(Clone, PartialEq, Props)]
pub struct CollapseProps {
pub expanded: Signal<bool>,
#[props(default)]
pub horizontal: bool,
#[props(default)]
pub class: String,
pub children: Element,
}
#[component]
pub fn Collapse(props: CollapseProps) -> Element {
let is_expanded = *props.expanded.read();
let horizontal = if props.horizontal {
" collapse-horizontal"
} else {
""
};
let show = if is_expanded { " show" } else { "" };
let full_class = if props.class.is_empty() {
format!("collapse{horizontal}{show}")
} else {
format!("collapse{horizontal}{show} {}", props.class)
};
rsx! {
div { class: "{full_class}",
{props.children}
}
}
}