Skip to content

Commit 86b92f9

Browse files
committed
Add inner div to headers
1 parent 75644e3 commit 86b92f9

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

packages/@react-spectrum/table/src/TableViewBase.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ function TableViewBase<T extends object>(props: TableBaseProps<T>, ref: DOMRef<H
286286
// This overrides collection view's renderWrapper to support DOM hierarchy.
287287
type View = ReusableView<GridNode<T>, ReactNode>;
288288
let renderWrapper = (parent: View, reusableView: View, children: View[], renderChildren: (views: View[]) => ReactElement[]) => {
289-
let style = layoutInfoToStyle(reusableView.layoutInfo, direction, parent?.layoutInfo, reusableView.virtualizer.contentSize);
289+
let style = layoutInfoToStyle(reusableView.layoutInfo, direction, parent?.layoutInfo, reusableView.virtualizer.visibleRect);
290290
if (style.overflow === 'hidden') {
291291
style.overflow = 'visible'; // needed to support position: sticky
292292
}
@@ -620,10 +620,11 @@ function TableVirtualizer(props) {
620620

621621
let resizerPosition = layout.getResizerPosition() - 2;
622622

623-
let resizerAtEdge = resizerPosition > Math.max(state.virtualizer.contentSize.width, state.virtualizer.visibleRect.width) - 3;
623+
let visibleRect = state.virtualizer.visibleRect;
624+
let resizerAtEdge = resizerPosition > Math.max(state.virtualizer.contentSize.width, visibleRect.width) - 3;
624625
// this should be fine, every movement of the resizer causes a rerender
625626
// scrolling can cause it to lag for a moment, but it's always updated
626-
let resizerInVisibleRegion = resizerPosition < state.virtualizer.visibleRect.maxX;
627+
let resizerInVisibleRegion = resizerPosition < visibleRect.maxX;
627628
let shouldHardCornerResizeCorner = resizerAtEdge && resizerInVisibleRegion;
628629

629630
// minimize re-render caused on Resizers by memoing this
@@ -655,7 +656,14 @@ function TableVirtualizer(props) {
655656
transition: state.isAnimating ? `none ${state.virtualizer.transitionDuration}ms` : undefined
656657
}}
657658
ref={headerRef}>
658-
{state.visibleViews[0]}
659+
<div
660+
role="presentation"
661+
style={{
662+
width: state.contentSize.width === visibleRect.width ? undefined : state.contentSize.width,
663+
height: headerHeight
664+
}}>
665+
{state.visibleViews[0]}
666+
</div>
659667
</div>
660668
<ScrollView
661669
role="presentation"

0 commit comments

Comments
 (0)