import { type HTMLAttributes, type ReactNode } from 'react'; import cn from 'classnames'; import type { Except } from 'type-fest'; import '../styles/components/bubble.scss'; type Props = { /** * The number to display */ children?: number; /** * The bubble size (default is medium) */ size?: 'small' | 'medium' | 'large'; }; const Bubble = ({ children, size = 'medium', className, ...props }: Props & Except, 'children'>) => { let displayValue: ReactNode | undefined; if (children !== undefined && Number.isFinite(children)) { displayValue = Math.round(children * 10) / 10; } if (children !== undefined && children > 99) { displayValue = '99+'; } return ( {displayValue} ); }; export default Bubble;