use super::*;
pub fn use_timer(interval_ms: u32) -> UseTimer {
let handle: UseTimer = HookContext::use_hook(|| UseTimer::new(interval_ms));
#[cfg(target_arch = "wasm32")]
{
let ticks: Signal<u64> = handle.get_ticks();
App::use_interval(interval_ms.max(1) as i32, move || {
let current: u64 = ticks.get();
ticks.set(current + 1);
});
}
handle
}
pub fn use_timeout<F>(delay_ms: u32, callback: F)
where
F: FnOnce() + 'static,
{
let cancelled: Signal<bool> = App::use_signal(|| false);
schedule_after(delay_ms, move || {
if cancelled.get() {
return;
}
callback();
});
App::use_cleanup(move || {
cancelled.set(true);
});
}