From 858171ee356eac3b643ea6f12ad5928256069b7f Mon Sep 17 00:00:00 2001 From: abdel-17 Date: Wed, 17 Sep 2025 23:28:06 +0300 Subject: [PATCH 1/3] feat: add `rangeExtractor` prop --- .../svelte-file-tree/src/lib/components/VirtualList.svelte | 2 ++ packages/svelte-file-tree/src/lib/components/types.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/svelte-file-tree/src/lib/components/VirtualList.svelte b/packages/svelte-file-tree/src/lib/components/VirtualList.svelte index b727bf9..2dafe9f 100644 --- a/packages/svelte-file-tree/src/lib/components/VirtualList.svelte +++ b/packages/svelte-file-tree/src/lib/components/VirtualList.svelte @@ -36,6 +36,7 @@ let { children, estimateSize, + rangeExtractor, overscan = 1, paddingStart, paddingEnd, @@ -109,6 +110,7 @@ }); $effect(() => { + options.rangeExtractor = rangeExtractor; options.count = visibleItems.length; options.overscan = overscan; options.paddingStart = paddingStart; diff --git a/packages/svelte-file-tree/src/lib/components/types.ts b/packages/svelte-file-tree/src/lib/components/types.ts index 7c26732..bede053 100644 --- a/packages/svelte-file-tree/src/lib/components/types.ts +++ b/packages/svelte-file-tree/src/lib/components/types.ts @@ -1,4 +1,4 @@ -import type { ScrollToOptions } from "@tanstack/virtual-core"; +import type { Range, ScrollToOptions } from "@tanstack/virtual-core"; import type { Snippet } from "svelte"; import type { HTMLAttributes } from "svelte/elements"; import type { SvelteSet } from "svelte/reactivity"; @@ -132,6 +132,8 @@ export type VirtualListItem< end: number; }; +export type VirtualListRange = Range; + export type VirtualListChildrenSnippetArgs< TFile extends FileNode = FileNode, TFolder extends FolderNode = DefaultTFolder, @@ -146,6 +148,7 @@ export interface VirtualListProps< > extends Omit, "children"> { children: Snippet<[args: VirtualListChildrenSnippetArgs]>; estimateSize: (item: TreeItemState, order: number) => number; + rangeExtractor?: (range: VirtualListRange) => Array; overscan?: number; paddingStart?: number; paddingEnd?: number; From cc31a2c664895bd7ae6666c6743802af06966cfa Mon Sep 17 00:00:00 2001 From: abdel-17 Date: Wed, 17 Sep 2025 23:30:52 +0300 Subject: [PATCH 2/3] minor refactor --- .../svelte-file-tree/src/lib/components/VirtualList.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/svelte-file-tree/src/lib/components/VirtualList.svelte b/packages/svelte-file-tree/src/lib/components/VirtualList.svelte index 2dafe9f..04f45d2 100644 --- a/packages/svelte-file-tree/src/lib/components/VirtualList.svelte +++ b/packages/svelte-file-tree/src/lib/components/VirtualList.svelte @@ -1,5 +1,6 @@