// eslint-disable-next-line import React, { useMemo, useState } from 'react'; import { styled } from '@mui/material/styles'; import Popover from '@mui/material/Popover'; import { CardDTO, TokenDTO } from 'services'; import CardDetails from '../CardDetails/CardDetails'; import TokenDetails from '../TokenDetails/TokenDetails'; import './CardCallout.css'; const PREFIX = 'CardCallout'; const classes = { popover: `${PREFIX}-popover`, popoverContent: `${PREFIX}-popoverContent` }; const Root = styled('span')(({ theme }) => ({ [`& .${classes.popover}`]: { pointerEvents: 'none', }, [`& .${classes.popoverContent}`]: { pointerEvents: 'none', } })); const CardCallout = ({ name }) => { const [card, setCard] = useState(null); const [token, setToken] = useState(null); const [anchorEl, setAnchorEl] = useState(null); useMemo(async () => { const card = await CardDTO.get(name); if (card) { return setCard(card) } const token = await TokenDTO.get(name); if (token) { return setToken(token); } }, [name]); const handlePopoverOpen = (event) => { setAnchorEl(event.currentTarget); }; const handlePopoverClose = () => { setAnchorEl(null); }; const open = Boolean(anchorEl); return ( {card?.name || token?.name?.value || name} { (card || token) && (
{ card && () } { token && () }
) }
); }; export default CardCallout;