dioxus_element_plug/components/
option_group.rs1use dioxus::prelude::*;
2
3#[derive(Props, Clone, PartialEq)]
5pub struct OptionGroupProps {
6 pub label: String,
8
9 #[props(default)]
11 pub children: Element,
12
13 #[props(default = false)]
15 pub disabled: bool,
16
17 #[props(default)]
19 pub class: Option<String>,
20}
21
22#[component]
24pub fn OptionGroup(props: OptionGroupProps) -> Element {
25 let mut class_names = vec!["el-select-group".to_string()];
26
27 if props.disabled {
28 class_names.push("is-disabled".to_string());
29 }
30
31 if let Some(ref custom_class) = props.class {
32 class_names.push(custom_class.clone());
33 }
34
35 let class_string = class_names.join(" ");
36
37 rsx! {
38 div {
39 class: "el-select-group__wrap",
40 div {
41 class: "el-select-group__title",
42 "{props.label}"
43 }
44 div {
45 class: "{class_string}",
46 {props.children}
47 }
48 }
49 }
50}