diff --git a/packages/@react-stately/virtualizer/package.json b/packages/@react-stately/virtualizer/package.json index 6f7b543d25b..ea8f9a9edca 100644 --- a/packages/@react-stately/virtualizer/package.json +++ b/packages/@react-stately/virtualizer/package.json @@ -26,7 +26,6 @@ "url": "https://github.com/adobe/react-spectrum" }, "dependencies": { - "@react-aria/utils": "^3.30.0", "@react-types/shared": "^3.31.0", "@swc/helpers": "^0.5.0" }, diff --git a/packages/@react-stately/virtualizer/src/useVirtualizerState.ts b/packages/@react-stately/virtualizer/src/useVirtualizerState.ts index 9844e2acdd0..dfa5181991e 100644 --- a/packages/@react-stately/virtualizer/src/useVirtualizerState.ts +++ b/packages/@react-stately/virtualizer/src/useVirtualizerState.ts @@ -13,13 +13,19 @@ import {Collection, Key} from '@react-types/shared'; import {InvalidationContext} from './types'; import {Layout} from './Layout'; +import React, {useCallback, useMemo, useRef, useState} from 'react'; import {Rect} from './Rect'; import {ReusableView} from './ReusableView'; import {Size} from './Size'; -import {useCallback, useMemo, useRef, useState} from 'react'; -import {useLayoutEffect} from '@react-aria/utils'; import {Virtualizer} from './Virtualizer'; +// During SSR, React emits a warning when calling useLayoutEffect. +// Since neither useLayoutEffect nor useEffect run on the server, +// we can suppress this by replace it with a noop on the server. +export const useLayoutEffect: typeof React.useLayoutEffect = typeof document !== 'undefined' + ? React.useLayoutEffect + : () => {}; + interface VirtualizerProps { renderView(type: string, content: T | null): V, layout: Layout,