fix: add tooltip hook
This commit is contained in:
parent
c1d781d488
commit
783e2cf9fc
1 changed files with 25 additions and 24 deletions
|
|
@ -18,7 +18,7 @@ const useStyles = makeStyles({
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
const Tooltip = memo(({ children, width, Icon = HelpIcon }) => {
|
const usePopperHandler = width => {
|
||||||
const classes = useStyles({ width })
|
const classes = useStyles({ width })
|
||||||
const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)
|
const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)
|
||||||
|
|
||||||
|
|
@ -32,19 +32,31 @@ const Tooltip = memo(({ children, width, Icon = HelpIcon }) => {
|
||||||
|
|
||||||
const helpPopperOpen = Boolean(helpPopperAnchorEl)
|
const helpPopperOpen = Boolean(helpPopperAnchorEl)
|
||||||
|
|
||||||
|
return {
|
||||||
|
classes,
|
||||||
|
helpPopperAnchorEl,
|
||||||
|
helpPopperOpen,
|
||||||
|
handleOpenHelpPopper,
|
||||||
|
handleCloseHelpPopper
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Tooltip = memo(({ children, width, Icon = HelpIcon }) => {
|
||||||
|
const handler = usePopperHandler(width)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ClickAwayListener onClickAway={handleCloseHelpPopper}>
|
<ClickAwayListener onClickAway={handler.handleCloseHelpPopper}>
|
||||||
<div>
|
<div>
|
||||||
<button
|
<button
|
||||||
className={classes.transparentButton}
|
className={handler.classes.transparentButton}
|
||||||
onClick={handleOpenHelpPopper}>
|
onClick={handler.handleOpenHelpPopper}>
|
||||||
<Icon />
|
<Icon />
|
||||||
</button>
|
</button>
|
||||||
<Popper
|
<Popper
|
||||||
open={helpPopperOpen}
|
open={handler.helpPopperOpen}
|
||||||
anchorEl={helpPopperAnchorEl}
|
anchorEl={handler.helpPopperAnchorEl}
|
||||||
placement="bottom">
|
placement="bottom">
|
||||||
<div className={classes.popoverContent}>{children}</div>
|
<div className={handler.classes.popoverContent}>{children}</div>
|
||||||
</Popper>
|
</Popper>
|
||||||
</div>
|
</div>
|
||||||
</ClickAwayListener>
|
</ClickAwayListener>
|
||||||
|
|
@ -52,31 +64,20 @@ const Tooltip = memo(({ children, width, Icon = HelpIcon }) => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const HoverableTooltip = memo(({ parentElements, children, width }) => {
|
const HoverableTooltip = memo(({ parentElements, children, width }) => {
|
||||||
const classes = useStyles({ width })
|
const handler = usePopperHandler(width)
|
||||||
const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)
|
|
||||||
|
|
||||||
const handleOpenHelpPopper = event => {
|
|
||||||
setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleCloseHelpPopper = () => {
|
|
||||||
setHelpPopperAnchorEl(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
const helpPopperOpen = Boolean(helpPopperAnchorEl)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
onMouseEnter={handleOpenHelpPopper}
|
onMouseEnter={handler.handleOpenHelpPopper}
|
||||||
onMouseLeave={handleCloseHelpPopper}>
|
onMouseLeave={handler.handleCloseHelpPopper}>
|
||||||
{parentElements}
|
{parentElements}
|
||||||
</div>
|
</div>
|
||||||
<Popper
|
<Popper
|
||||||
open={helpPopperOpen}
|
open={handler.helpPopperOpen}
|
||||||
anchorEl={helpPopperAnchorEl}
|
anchorEl={handler.helpPopperAnchorEl}
|
||||||
placement="bottom">
|
placement="bottom">
|
||||||
<div className={classes.popoverContent}>{children}</div>
|
<div className={handler.classes.popoverContent}>{children}</div>
|
||||||
</Popper>
|
</Popper>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue