All files / components/Infotip InfotipContent.jsx

100% Statements 46/46
100% Branches 1/1
100% Functions 1/1
100% Lines 46/46

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 471x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 1x 1x 1x 1x 1x 1x 1x 1x  
import React from 'react';
import PropTypes from 'prop-types';
import {
  Tooltip as TooltipAriaKit,
  TooltipAnchor,
  TooltipArrow,
  useTooltipState,
} from 'ariakit/tooltip';
 
const TEXT_COLOR = '#FFF';
const BACKGROUND_COLOR = '#333';
 
const InfotipContent = ({ children, label }) => {
  const tooltip = useTooltipState();
 
  const cssStyles = {
    maxWidth: '300px',
    padding: '8px',
    borderRadius: '4px',
    fontSize: '0.9rem',
    backgroundColor: BACKGROUND_COLOR,
    color: TEXT_COLOR,
  };
  return (
    <>
      <TooltipAnchor as={'span'} state={tooltip} className="tooltip-anchor">
        {children}
      </TooltipAnchor>
      <TooltipAriaKit
        state={tooltip}
        className="tooltip-content"
        style={cssStyles}
      >
        {label}
        <TooltipArrow />
      </TooltipAriaKit>
    </>
  );
};
 
InfotipContent.propTypes = {
  children: PropTypes.node.isRequired,
  label: PropTypes.node.isRequired,
};
 
export default InfotipContent;