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;
|
let _ = set_idle;
|
||||||
} else {
|
} else {
|
||||||
use crate::utils::create_filter_wrapper;
|
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::ev::{visibilitychange, Custom};
|
||||||
use leptos::leptos_dom::helpers::TimeoutHandle;
|
use leptos::leptos_dom::helpers::TimeoutHandle;
|
||||||
use std::cell::Cell;
|
use std::cell::Cell;
|
||||||
|
use std::rc::Rc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
let timer = Rc::new(Cell::new(None::<TimeoutHandle>));
|
||||||
|
|
||||||
let reset = {
|
let reset = {
|
||||||
let timer = Cell::new(None::<TimeoutHandle>);
|
let timer = Rc::clone(&timer);
|
||||||
|
|
||||||
move || {
|
move || {
|
||||||
set_idle.set(false);
|
set_idle.set(false);
|
||||||
if let Some(timer) = timer.take() {
|
if let Some(timer) = timer.replace(
|
||||||
timer.clear();
|
|
||||||
}
|
|
||||||
timer.replace(
|
|
||||||
set_timeout_with_handle(move || set_idle.set(true), Duration::from_millis(timeout))
|
set_timeout_with_handle(move || set_idle.set(true), Duration::from_millis(timeout))
|
||||||
.ok(),
|
.ok(),
|
||||||
);
|
) {
|
||||||
|
timer.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue