use crate::*;
pub fn use_toggle(signal: Signal<bool>) -> NativeEventHandler {
NativeEventHandler::new(NativeEventName::Click, move |_event: Event| {
let current: bool = signal.get();
signal.set(!current);
})
}
pub fn on_input_value(signal: Signal<String>) -> NativeEventHandler {
NativeEventHandler::new(NativeEventName::Input, move |event: Event| {
if let Some(target) = event.target()
&& let Ok(input) = target.clone().dyn_into::<HtmlInputElement>()
{
signal.set(input.value());
}
})
}
pub fn on_change_value(signal: Signal<String>) -> NativeEventHandler {
NativeEventHandler::new(NativeEventName::Change, move |event: Event| {
if let Some(target) = event.target()
&& let Ok(input) = target.clone().dyn_into::<HtmlInputElement>()
{
signal.set(input.value());
}
})
}
pub fn on_change_checked(signal: Signal<bool>) -> NativeEventHandler {
NativeEventHandler::new(NativeEventName::Change, move |event: Event| {
if let Some(target) = event.target()
&& let Ok(input) = target.clone().dyn_into::<HtmlInputElement>()
{
signal.set(input.checked());
}
})
}