diff --git a/examples/react/dynamic/src/main.tsx b/examples/react/dynamic/src/main.tsx index 1b765bc4c..6539b4855 100644 --- a/examples/react/dynamic/src/main.tsx +++ b/examples/react/dynamic/src/main.tsx @@ -74,7 +74,7 @@ function RowVirtualizerDynamic() { top: 0, left: 0, width: '100%', - transform: `translateY(${items[0].start}px)`, + transform: `translateY(${items[0]?.start ?? 0}px)`, }} > {items.map((virtualRow) => ( @@ -131,7 +131,7 @@ const RowVirtualizerDynamicWindow = () => { left: 0, width: '100%', transform: `translateY(${ - items[0].start - virtualizer.options.scrollMargin + items[0] ? items[0].start - virtualizer.options.scrollMargin : 0 }px)`, }} > diff --git a/packages/react-virtual/__tests__/index.test.tsx b/packages/react-virtual/__tests__/index.test.tsx index b85dae62d..6455fdf34 100644 --- a/packages/react-virtual/__tests__/index.test.tsx +++ b/packages/react-virtual/__tests__/index.test.tsx @@ -148,7 +148,7 @@ test('should render given dynamic size after scroll', () => { expect(screen.queryByText('Row 6')).toBeInTheDocument() expect(screen.queryByText('Row 7')).not.toBeInTheDocument() - expect(renderer).toHaveBeenCalledTimes(3) + expect(renderer).toHaveBeenCalledTimes(2) }) test('should use rangeExtractor', () => { diff --git a/packages/virtual-core/__tests__/index.test.ts b/packages/virtual-core/__tests__/index.test.ts index 8607c68ca..9a1126f49 100644 --- a/packages/virtual-core/__tests__/index.test.ts +++ b/packages/virtual-core/__tests__/index.test.ts @@ -3,3 +3,15 @@ import { Virtualizer } from '../src/index' test('should export the Virtualizer class', () => { expect(Virtualizer).toBeDefined() }) + +test('shoul', () => { + const virtualizer = new Virtualizer({ + count: 100, + getScrollElement: () => null, + estimateSize: () => 50, + scrollToFn: jest.fn(), + observeElementRect: jest.fn(), + observeElementOffset: jest.fn(), + }) + expect(virtualizer.getVirtualItems()).toEqual([]) +}) diff --git a/packages/virtual-core/src/index.ts b/packages/virtual-core/src/index.ts index fb1d84aa9..09a886c29 100644 --- a/packages/virtual-core/src/index.ts +++ b/packages/virtual-core/src/index.ts @@ -587,13 +587,16 @@ export class Virtualizer< this.calculateRange(), this.options.overscan, this.options.count, + this.getSize(), ], - (rangeExtractor, range, overscan, count) => { - return rangeExtractor({ - ...range, - overscan, - count, - }) + (rangeExtractor, range, overscan, count, outerSize) => { + return outerSize === 0 + ? [] + : rangeExtractor({ + ...range, + overscan, + count, + }) }, { key: process.env.NODE_ENV !== 'production' && 'getIndexes',