dioxus_element_plug/components/
cascader_panel.rs1use dioxus::prelude::*;
2pub use super::cascader::{CascaderOption, CascaderProps};
3
4#[derive(Props, Clone, PartialEq)]
6pub struct CascaderPanelProps {
7 #[props(default)]
8 pub options: Vec<CascaderOption>,
9
10 #[props(default)]
11 pub on_change: Option<EventHandler<String>>,
12
13 #[props(default)]
14 pub class: Option<String>,
15
16 #[props(default)]
17 pub style: Option<String>,
18}
19
20#[component]
22pub fn CascaderPanel(props: CascaderPanelProps) -> Element {
23 let mut class_names = vec!["el-cascader-panel".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 div {
31 class: "el-cascader-menu",
32 for opt in props.options.iter() {
33 div {
34 class: "el-cascader-menu__item",
35 "{opt.label}"
36 }
37 }
38 }
39 }
40 }
41}