/ ui / src / components / InfoTooltip.tsx
InfoTooltip.tsx
 1  import { useState } from 'react';
 2  import { InfoOutlineIcon } from '@chakra-ui/icons';
 3  import { Tooltip, TooltipProps } from '@chakra-ui/react';
 4  
 5  interface InfoTooltipProps extends Omit<TooltipProps, 'children'> {
 6    iconSize?: number;
 7  }
 8  
 9  export const InfoTooltip = ({
10    iconSize,
11    label,
12    ...rest
13  }: InfoTooltipProps): JSX.Element => {
14    const [showTooltip, setShowTooltip] = useState(false);
15    return (
16      <Tooltip
17        hasArrow
18        bg="glass.black80"
19        color="white"
20        placement="top"
21        isOpen={showTooltip}
22        label={label}
23        {...rest}
24      >
25        <InfoOutlineIcon
26          boxSize={iconSize || 4}
27          onMouseEnter={() => setShowTooltip((c) => !c)}
28          onMouseLeave={() => setShowTooltip((c) => !c)}
29        />
30      </Tooltip>
31    );
32  };