zino_dioxus/form/
checkbox.rs1use crate::class::Class;
2use dioxus::prelude::*;
3
4pub fn Checkbox(props: CheckboxProps) -> Element {
6 rsx! {
7 label {
8 class: props.label_class,
9 input {
10 class: props.class,
11 r#type: "checkbox",
12 onchange: move |event| {
13 if let Some(handler) = props.on_change.as_ref() {
14 handler.call(event.value());
15 }
16 },
17 ..props.attributes,
18 }
19 { props.children }
20 }
21 }
22}
23
24#[derive(Clone, PartialEq, Props)]
26pub struct CheckboxProps {
27 #[props(into, default = "checkbox")]
29 pub class: Class,
30 #[props(into, default = "checkbox")]
32 pub label_class: Class,
33 pub on_change: Option<EventHandler<String>>,
35 #[props(extends = input)]
37 attributes: Vec<Attribute>,
38 children: Element,
40}