Skip to content

Commit 5301051

Browse files
committed
Fix regressions introduced in Popover
1 parent e9ef507 commit 5301051

File tree

2 files changed

+17
-23
lines changed

2 files changed

+17
-23
lines changed

src/components/feedback/Popover.tsx

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -415,12 +415,18 @@ export default function Popover({
415415
<div
416416
className={classnames(
417417
'absolute z-5',
418+
variant === 'panel' && [
419+
'max-h-80 ',
420+
'rounded border bg-white shadow hover:shadow-md focus-within:shadow-md',
421+
!arrow && 'overflow-y-auto overflow-x-hidden',
422+
],
423+
arrow && 'overflow-visible',
418424
asNativePopover && [
419425
// We don't want the popover to ever render outside the viewport,
420426
// and we give it a 16px gap
421427
'max-w-[calc(100%-16px)]',
422428
// Overwrite [popover] default styles
423-
'p-0 m-0 overflow-visible',
429+
'p-0 m-0',
424430
],
425431
!asNativePopover && {
426432
// Hiding instead of unmounting so that popover size can be computed
@@ -429,6 +435,7 @@ export default function Popover({
429435
'right-0': align === 'right',
430436
'min-w-full': true,
431437
},
438+
classes,
432439
)}
433440
ref={downcastRef(popoverRef)}
434441
popover={asNativePopover && 'auto'}
@@ -439,8 +446,8 @@ export default function Popover({
439446
{open && arrow && (
440447
<div
441448
className={classnames('absolute z-10', 'fill-white text-grey-3', {
442-
'top-[calc(100%-1px)]': resolvedPlacement === 'above',
443-
'bottom-[calc(100%-1px)]': resolvedPlacement === 'below',
449+
'top-full': resolvedPlacement === 'above',
450+
'bottom-full': resolvedPlacement === 'below',
444451
'left-2': align === 'left',
445452
'right-2': align === 'right',
446453
})}
@@ -453,20 +460,7 @@ export default function Popover({
453460
)}
454461
</div>
455462
)}
456-
{open && (
457-
<div
458-
className={classnames(
459-
variant === 'panel' && [
460-
'max-h-80 overflow-y-auto overflow-x-hidden',
461-
'rounded border bg-white shadow hover:shadow-md focus-within:shadow-md',
462-
],
463-
classes,
464-
)}
465-
data-testid="popover-content"
466-
>
467-
{children}
468-
</div>
469-
)}
463+
{open && children}
470464
</div>
471465
);
472466
}

src/components/feedback/test/Popover-test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ function TestComponent({ children, ...rest }) {
2626
{...rest}
2727
>
2828
{children ?? (
29-
<>
29+
<div data-testid="popover-content">
3030
Content of popover
3131
<button
3232
data-testid="inner-button"
3333
onClick={() => setOpen(prev => !prev)}
3434
>
3535
Focusable element inside popover
3636
</button>
37-
</>
37+
</div>
3838
)}
3939
</Popover>
4040
</div>
@@ -469,16 +469,16 @@ describe('Popover', () => {
469469
arrow: true,
470470
placement: 'above',
471471
expectedPointer: 'PointerDownIcon',
472-
expectedOffset: 14,
472+
expectedOffset: 12,
473473
},
474474
{
475475
arrow: true,
476476
placement: 'below',
477477
expectedPointer: 'PointerUpIcon',
478-
expectedOffset: 14,
478+
expectedOffset: 12,
479479
},
480-
{ arrow: false, placement: 'above', expectedOffset: 6 },
481-
{ arrow: false, placement: 'below', expectedOffset: 6 },
480+
{ arrow: false, placement: 'above', expectedOffset: 4 },
481+
{ arrow: false, placement: 'below', expectedOffset: 4 },
482482
].forEach(({ arrow, placement, expectedPointer, expectedOffset }) => {
483483
it('increases the offset between the anchor and the popover when arrow is true', () => {
484484
const wrapper = createComponent(

0 commit comments

Comments
 (0)