use dioxus::prelude::*;
#[test]
#[allow(unused)]
fn event_handlers_compile() {
fn app() -> Element {
let mut todos = use_signal(String::new);
rsx! {
input {
oninput: move |evt| todos.set(evt.value()),
}
button {
onclick: |event| async move {
println!("{event:?}");
},
}
TakesEventHandler { onclick: |event| async move {
println!("{event:?}");
} }
TakesEventHandlerWithArg { double: move |value| (value * 2) as i32 }
}
}
#[component]
fn TakesEventHandler(onclick: EventHandler<MouseEvent>) -> Element {
rsx! {
button {
onclick: onclick,
"Click!"
}
button {
onclick,
"Click!"
}
TakesEventHandler {
onclick
}
}
}
#[component]
fn TakesEventHandlerWithArg(double: Callback<u32, i32>) -> Element {
let mut count = use_signal(|| 2);
rsx! {
button {
onclick: move |_| count.set(double(count()) as u32),
"{count}"
}
}
}
}