Merge pull request #1740 from RafaelTaranto/backport/button-popper-position

LAM-553 fix: transaction details ID button popper positioning
This commit is contained in:
Rafael Taranto 2024-11-29 13:46:53 +00:00 committed by GitHub
commit 463e99f284
2 changed files with 37 additions and 15 deletions

View file

@ -105,20 +105,29 @@ const Popover = ({
const classes = useStyles() const classes = useStyles()
const arrowClasses = { const getArrowClasses = placement => ({
[classes.arrow]: true, [classes.arrow]: true,
[classes.arrowBottom]: props.placement === 'bottom', [classes.arrowBottom]: placement === 'bottom',
[classes.arrowTop]: props.placement === 'top', [classes.arrowTop]: placement === 'top',
[classes.arrowRight]: props.placement === 'right', [classes.arrowRight]: placement === 'right',
[classes.arrowLeft]: props.placement === 'left' [classes.arrowLeft]: placement === 'left'
})
const flipPlacements = {
top: ['bottom'],
bottom: ['top'],
left: ['right'],
right: ['left']
} }
const modifiers = R.merge(props.modifiers, { const modifiers = R.mergeDeepLeft(props.modifiers, {
flip: { flip: {
enabled: false enabled: R.defaultTo(false, props.flip),
allowedAutoPlacements: flipPlacements[props.placement],
boundary: 'clippingParents'
}, },
preventOverflow: { preventOverflow: {
enabled: true, enabled: R.defaultTo(true, props.preventOverflow),
boundariesElement: 'scrollParent' boundariesElement: 'scrollParent'
}, },
offset: { offset: {
@ -126,7 +135,7 @@ const Popover = ({
offset: '0, 10' offset: '0, 10'
}, },
arrow: { arrow: {
enabled: true, enabled: R.defaultTo(true, props.showArrow),
element: arrowRef element: arrowRef
}, },
computeStyle: { computeStyle: {
@ -134,6 +143,12 @@ const Popover = ({
} }
}) })
if (props.preventOverflow === false) {
modifiers.hide = {
enabled: false
}
}
return ( return (
<> <>
<MaterialPopper <MaterialPopper
@ -141,10 +156,15 @@ const Popover = ({
modifiers={modifiers} modifiers={modifiers}
className={classes.popover} className={classes.popover}
{...props}> {...props}>
<Paper className={classnames(classes.root, className)}> {({ placement }) => (
<span className={classnames(arrowClasses)} ref={setArrowRef} /> <Paper className={classnames(classes.root, className)}>
{children} <span
</Paper> className={classnames(getArrowClasses(placement))}
ref={setArrowRef}
/>
{children}
</Paper>
)}
</MaterialPopper> </MaterialPopper>
</> </>
) )

View file

@ -56,7 +56,8 @@ const styles = {
alignItems: 'center', alignItems: 'center',
borderRadius: 4, borderRadius: 4,
'& img': { '& img': {
maxHeight: 145 height: 145,
minWidth: 200
} }
} }
} }
@ -127,7 +128,8 @@ const IDButton = memo(
anchorEl={anchorEl} anchorEl={anchorEl}
onClose={handleClose} onClose={handleClose}
arrowSize={3} arrowSize={3}
placement="top"> placement="top"
flip>
<div className={classes.popoverContent}> <div className={classes.popoverContent}>
<div>{children}</div> <div>{children}</div>
</div> </div>