import React, { useState } from 'react'; import { Popover, Typography, Button, makeStyles } from '@material-ui/core'; const useStyles = makeStyles((theme) => ({ popover: { pointerEvents: 'none' }, paper: { padding: theme.spacing(1) }, popoverTextBlock: { padding: '10px' } })); export enum IconSize { Small = 'small', Medium = 'default', Large = 'large' } interface IProps { icon: React.ElementType; iconSize: IconSize; popoverText: string[]; className?: string; clickable?: boolean; } export function IconPopover(props: IProps) { const { icon: Icon, iconSize, popoverText, className, clickable = false, ...otherProps } = props; const classes = useStyles(); const [anchorEl, setAnchorEl] = useState(null); const open = Boolean(anchorEl); const handleClick = (event) => { if (event.currentTarget === anchorEl) { setAnchorEl(null); } else { setAnchorEl(event.currentTarget); } }; const handleClose = () => { setAnchorEl(null); }; const clickableId = open ? 'simple-popover' : undefined; const handlePopoverOpen = (event) => { setAnchorEl(event.currentTarget); }; const handlePopoverClose = () => { setAnchorEl(null); }; const textWithLineBreaks = popoverText.map((text) => ( {text}

)); return (
{clickable ? ( <> {textWithLineBreaks} ) : ( <> {textWithLineBreaks} )}
); }