import { makeStyles, ClickAwayListener } from '@mui/material' import * as R from 'ramda' import React, { useState, memo } from 'react' import Popper from 'src/components/Popper' import HelpIcon from 'src/styling/icons/action/help/zodiac.svg?react' const useStyles = makeStyles({ transparentButton: { border: 'none', backgroundColor: 'transparent', outline: 'none', cursor: 'pointer', marginTop: 4 }, relativelyPositioned: { position: 'relative' }, safeSpace: { position: 'absolute', backgroundColor: '#0000', height: 40, left: '-50%', width: '200%' }, popoverContent: ({ width }) => ({ width, padding: [[10, 15]] }) }) const usePopperHandler = width => { const classes = useStyles({ width }) const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null) const handleOpenHelpPopper = event => { setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget) } const openHelpPopper = event => { setHelpPopperAnchorEl(event.currentTarget) } const handleCloseHelpPopper = () => { setHelpPopperAnchorEl(null) } const helpPopperOpen = Boolean(helpPopperAnchorEl) return { classes, helpPopperAnchorEl, helpPopperOpen, handleOpenHelpPopper, openHelpPopper, handleCloseHelpPopper } } const HelpTooltip = memo(({ children, width }) => { const handler = usePopperHandler(width) return (
{handler.helpPopperOpen && (
)}
{children}
) }) const HoverableTooltip = memo(({ parentElements, children, width }) => { const handler = usePopperHandler(width) return (
{!R.isNil(parentElements) && (
{parentElements}
)} {R.isNil(parentElements) && ( )}
{children}
) }) export { HoverableTooltip, HelpTooltip }