feat(registry): add viewportRef prop to allow forwarding ref to Viewport #7951
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Is this a bug report or a feature request?
Feature Request
Problem
Currently, the
ScrollArea
component does not provide a way to access aref
to the innerScrollAreaPrimitive.Viewport
element. This makes it difficult to integrate with libraries that require a reference to the actual scrolling container, such as virtualization libraries like@tanstack/react-virtual
.When trying to implement a virtualized list inside
ScrollArea
, the virtualizer cannot detect scroll events because theref
can only be attached to theScrollAreaPrimitive.Root
element, which is not the scrolling element.Solution
I propose adding an optional
viewportRef
prop to theScrollArea
component. This prop will be forwarded directly to the underlyingScrollAreaPrimitive.Viewport
.This provides a clean escape hatch for developers who need direct access to the viewport DOM node, without changing the existing API.
Example Code Change in
scroll-area.tsx
Example Usage
Benefits
ScrollArea
.This would be a valuable addition for building complex and high-performance UIs. I'm happy to open a PR for this change.