import { Box, Typography } from '@mui/material'; import { useAtomValue } from 'jotai'; import { equals, isNil } from 'ramda'; import { formatMetricValueWithUnit } from '../../../common/timeSeries'; import type { Tooltip } from '../../models'; import { mousePositionAtom } from '../interactionWithGraphAtoms'; import { useGraphValueTooltip } from './useGraphValueTooltip'; import { useGraphValueTooltipStyles } from './useGraphValueTooltipStyles'; interface Props extends Pick { base: number; isSingleMode: boolean; } const GraphValueTooltipContent = ({ base, isSingleMode, sortOrder }: Props): JSX.Element | null => { const { classes } = useGraphValueTooltipStyles(); const mousePosition = useAtomValue(mousePositionAtom); const graphValue = useGraphValueTooltip({ isSingleMode, sortOrder }); if (isNil(graphValue) || isNil(mousePosition)) { return null; } return (
{graphValue.dateTime}
{graphValue.metrics.map(({ unit, color, id, value, name }) => { const isMetricHighlighted = equals( id, graphValue.highlightedMetricId ); return (
{name} {formatMetricValueWithUnit({ base, unit, value })}
); })}
); }; export default GraphValueTooltipContent;