mirror of
https://github.com/adoyle0/leptos-use.git
synced 2025-03-13 01:09:48 -04:00
fixes #57 (use_idle)
This commit is contained in:
parent
bb5054d403
commit
68116b8791
1 changed files with 11 additions and 7 deletions
|
@ -90,24 +90,28 @@ pub fn use_idle_with_options(
|
|||
let _ = set_idle;
|
||||
} else {
|
||||
use crate::utils::create_filter_wrapper;
|
||||
use crate::{use_document, use_event_listener, use_event_listener_with_options,UseEventListenerOptions};
|
||||
use crate::{
|
||||
use_document, use_event_listener, use_event_listener_with_options, UseEventListenerOptions,
|
||||
};
|
||||
use leptos::ev::{visibilitychange, Custom};
|
||||
use leptos::leptos_dom::helpers::TimeoutHandle;
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use std::time::Duration;
|
||||
|
||||
let timer = Rc::new(Cell::new(None::<TimeoutHandle>));
|
||||
|
||||
let reset = {
|
||||
let timer = Cell::new(None::<TimeoutHandle>);
|
||||
let timer = Rc::clone(&timer);
|
||||
|
||||
move || {
|
||||
set_idle.set(false);
|
||||
if let Some(timer) = timer.take() {
|
||||
timer.clear();
|
||||
}
|
||||
timer.replace(
|
||||
if let Some(timer) = timer.replace(
|
||||
set_timeout_with_handle(move || set_idle.set(true), Duration::from_millis(timeout))
|
||||
.ok(),
|
||||
);
|
||||
) {
|
||||
timer.clear();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue