Skip to main content

Interface: Components<Data, Context>

Customize the Virtuoso rendering by passing a set of custom components.

Type parameters

NameType
Dataunknown
Contextunknown

Properties

Optional Header: ComponentType<{ context?: Context }>

Set to render a component at the top of the list.

The header remains above the top items and does not remain sticky.


Optional Footer: ComponentType<{ context?: Context }>

Set to render a component at the bottom of the list.


Item

Optional Item: ComponentType<Pick<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "children"> & { data-index: number ; data-item-index: number ; data-item-group-index?: number ; data-known-size: number ; item: Data } & { context?: Context }>

Set to customize the item wrapping element. Use only if you would like to render list from elements different than a div.


Group

Optional Group: ComponentType<Pick<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "children"> & { data-index: number ; data-item-index: number ; data-known-size: number } & { context?: Context }>

Set to customize the group item wrapping element. Use only if you would like to render list from elements different than a div.


TopItemList

Optional TopItemList: ComponentType<TopItemListProps & { context?: Context }>

Set to customize the top list item wrapping element. Use if you would like to render list from elements different than a div or you want to set a custom z-index for the sticky position.


Scroller

Optional Scroller: ComponentType<Pick<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "children" | "tabIndex"> & { data-testid?: string ; data-virtuoso-scroller?: boolean } & RefAttributes<HTMLDivElement> & { context?: Context }>

Set to customize the outermost scrollable element. This should not be necessary in general, as the component passes its HTML attribute props to it.


List

Optional List: ComponentType<Pick<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "children"> & { data-testid: string } & RefAttributes<HTMLDivElement> & { context?: Context }>

Set to customize the items wrapper. Use only if you would like to render list from elements different than a div.


EmptyPlaceholder

Optional EmptyPlaceholder: ComponentType<{ context?: Context }>

Set to render a custom UI when the list is empty.


ScrollSeekPlaceholder

Optional ScrollSeekPlaceholder: ComponentType<ScrollSeekPlaceholderProps & { context?: Context }>

Set to render an item placeholder when the user scrolls fast. See the scrollSeek property for more details.