diff --git a/examples/svelte/dynamic/package.json b/examples/svelte/dynamic/package.json index a6219d16..2fd43619 100644 --- a/examples/svelte/dynamic/package.json +++ b/examples/svelte/dynamic/package.json @@ -13,12 +13,12 @@ "@tanstack/svelte-virtual": "^3.13.12" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.1.2", + "@sveltejs/vite-plugin-svelte": "^6.1.0", "@tsconfig/svelte": "^5.0.4", - "svelte": "^4.2.20", - "svelte-check": "^4.2.1", + "svelte": "^5.36.10", + "svelte-check": "^4.3.0", "tslib": "^2.8.1", - "typescript": "5.4.5", - "vite": "^5.4.19" + "typescript": "^5.8.3", + "vite": "^7.0.5" } } diff --git a/examples/svelte/dynamic/src/ColumnVirtualizerDynamic.svelte b/examples/svelte/dynamic/src/ColumnVirtualizerDynamic.svelte index 5213c0f0..10b09664 100644 --- a/examples/svelte/dynamic/src/ColumnVirtualizerDynamic.svelte +++ b/examples/svelte/dynamic/src/ColumnVirtualizerDynamic.svelte @@ -2,8 +2,8 @@ import { faker } from '@faker-js/faker' import { createVirtualizer } from '@tanstack/svelte-virtual' - let virtualListEl: HTMLDivElement - let virtualItemEls: HTMLDivElement[] = [] + let virtualListEl = $state(null) + let virtualItemEls = $state([]) function randomNumber(min: number, max: number) { return faker.number.int({ min, max }) @@ -13,17 +13,21 @@ .fill(true) .map(() => faker.lorem.sentence(randomNumber(20, 70))) - $: virtualizer = createVirtualizer({ - horizontal: true, - count: sentences.length, - getScrollElement: () => virtualListEl, - estimateSize: () => 45, - }) + let makeGetScrollElement = (scrollElement: HTMLDivElement | null) => () => + scrollElement + let virtualizer = $derived( + createVirtualizer({ + horizontal: true, + count: sentences.length, + getScrollElement: makeGetScrollElement(virtualListEl), + estimateSize: () => 45, + }), + ) - $: { + $effect(() => { if (virtualItemEls.length) virtualItemEls.forEach((el) => $virtualizer.measureElement(el)) - } + })
diff --git a/examples/svelte/dynamic/src/GridVirtualizerDynamic.svelte b/examples/svelte/dynamic/src/GridVirtualizerDynamic.svelte index a11a4c48..e888df06 100644 --- a/examples/svelte/dynamic/src/GridVirtualizerDynamic.svelte +++ b/examples/svelte/dynamic/src/GridVirtualizerDynamic.svelte @@ -1,22 +1,28 @@
diff --git a/examples/svelte/dynamic/src/RowVirtualizerDynamic.svelte b/examples/svelte/dynamic/src/RowVirtualizerDynamic.svelte index 5450612e..7235fcd6 100644 --- a/examples/svelte/dynamic/src/RowVirtualizerDynamic.svelte +++ b/examples/svelte/dynamic/src/RowVirtualizerDynamic.svelte @@ -2,8 +2,8 @@ import { faker } from '@faker-js/faker' import { createVirtualizer } from '@tanstack/svelte-virtual' - let virtualListEl: HTMLDivElement - let virtualItemEls: HTMLDivElement[] = [] + let virtualListEl = $state(null) + let virtualItemEls = $state([]) function randomNumber(min: number, max: number) { return faker.number.int({ min, max }) @@ -15,39 +15,43 @@ const count = sentences.length - $: virtualizer = createVirtualizer({ - count, - getScrollElement: () => virtualListEl, - estimateSize: () => 45, - }) + let makeGetScrollElement = (scrollElement: HTMLDivElement | null) => () => + scrollElement + let virtualizer = $derived( + createVirtualizer({ + count, + getScrollElement: makeGetScrollElement(virtualListEl), + estimateSize: () => 45, + }), + ) - $: items = $virtualizer.getVirtualItems() + let items = $derived($virtualizer.getVirtualItems()) - $: { + $effect(() => { if (virtualItemEls.length) virtualItemEls.forEach((el) => $virtualizer.measureElement(el)) - } + })
- + - +