From 2d65c60bf1ffc912af51f259b8302c277ee16401 Mon Sep 17 00:00:00 2001 From: Maccesch Date: Wed, 15 Nov 2023 23:45:51 +0000 Subject: [PATCH] removed double call of infinite scroll callback Fixes #50 --- CHANGELOG.md | 1 + Cargo.toml | 4 ++-- src/use_infinite_scroll.rs | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42bf32b..93fee73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixes 🍕 - `use_raf_fn` and `use_timestamp` no longer spam warnings because of `get`ting signals outside of reactive contexts. +- `use_infinite_scroll` no longer calls the callback twice for the same event ## [0.8.2] - 2023-11-09 diff --git a/Cargo.toml b/Cargo.toml index 03e168e..4c31f33 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,11 +27,11 @@ prost = { version = "0.12", optional = true } serde = { version = "1", optional = true } serde_json = { version = "1", optional = true } thiserror = "1.0" -wasm-bindgen = "0.2.87" +wasm-bindgen = "0.2.88" wasm-bindgen-futures = "0.4" [dependencies.web-sys] -version = "0.3" +version = "0.3.65" features = [ "AddEventListenerOptions", "BinaryType", diff --git a/src/use_infinite_scroll.rs b/src/use_infinite_scroll.rs index d02d97d..2b23261 100644 --- a/src/use_infinite_scroll.rs +++ b/src/use_infinite_scroll.rs @@ -186,7 +186,13 @@ where let _ = watch( move || state.arrived_state.get().get_direction(direction), - move |_, _, _| { + move |arrived, prev_arrived, _| { + if let Some(prev_arrived) = prev_arrived { + if prev_arrived == arrived { + return; + } + } + check_and_load .get_value() .expect("check_and_load is set above")()