From 64805e12b25b8de2d9f9e7456a46c422948956db Mon Sep 17 00:00:00 2001 From: Jet Li Date: Sun, 1 Feb 2026 22:54:43 +0800 Subject: [PATCH] fix use_virtual_list written by copilot --- crates/yew-hooks/Cargo.toml | 2 +- crates/yew-hooks/src/hooks/use_virtual_list.rs | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/yew-hooks/Cargo.toml b/crates/yew-hooks/Cargo.toml index 797d0e6..d5b283b 100644 --- a/crates/yew-hooks/Cargo.toml +++ b/crates/yew-hooks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "yew-hooks" -version = "0.4.1" +version = "0.4.2" edition = "2021" authors = ["Jet Li "] categories = ["gui", "wasm", "web-programming"] diff --git a/crates/yew-hooks/src/hooks/use_virtual_list.rs b/crates/yew-hooks/src/hooks/use_virtual_list.rs index eb89480..2fa1939 100644 --- a/crates/yew-hooks/src/hooks/use_virtual_list.rs +++ b/crates/yew-hooks/src/hooks/use_virtual_list.rs @@ -164,9 +164,11 @@ where end_index += 1; } end_index = end_index.min(items.len()); - let start_index = start_index.saturating_sub(*overscan); - let end_index = (end_index + *overscan).min(items.len()); - let visible_items = (start_index..end_index) + let visible_start = start_index; + let visible_end = end_index; + let render_start = visible_start.saturating_sub(*overscan); + let render_end = (visible_end + *overscan).min(items.len()); + let visible_items = (render_start..render_end) .map(|index| { let top = heights[0..index].iter().sum::(); VirtualListItem { @@ -196,8 +198,8 @@ where let new_handle = UseVirtualListHandle { visible_items, total_height, - start_index, - end_index, + start_index: visible_start, + end_index: visible_end.saturating_sub(1), scroll_to, }; handle_clone.set(new_handle.clone());