import { HeartIcon } from '@heroicons/react/outline' import { Button } from 'web/components/button' import { formatMoney } from 'common/util/format' import clsx from 'clsx' import { Col } from 'web/components/layout/col' import { Tooltip } from '../tooltip' export function TipButton(props: { tipAmount: number totalTipped: number onClick: () => void userTipped: boolean isCompact?: boolean disabled?: boolean }) { const { tipAmount, totalTipped, userTipped, isCompact, onClick, disabled } = props return ( <Tooltip text={disabled ? 'Tips' : `Tip ${formatMoney(tipAmount)}`} placement="bottom" noTap noFade > <Button size={'sm'} className={clsx( 'max-w-xs self-center', isCompact && 'px-0 py-0', disabled && 'hover:bg-inherit' )} color={'gray-white'} onClick={onClick} disabled={disabled} > <Col className={'relative items-center sm:flex-row'}> <HeartIcon className={clsx( 'h-5 w-5 sm:h-6 sm:w-6', totalTipped > 0 ? 'mr-2' : '', userTipped ? 'fill-green-700 text-green-700' : '' )} /> {totalTipped > 0 && ( <div className={clsx( 'bg-greyscale-5 absolute ml-3.5 mt-2 h-4 w-4 rounded-full align-middle text-white sm:mt-3 sm:h-5 sm:w-5 sm:px-1', totalTipped > 99 ? 'text-[0.4rem] sm:text-[0.5rem]' : 'sm:text-2xs text-[0.5rem]' )} > {totalTipped} </div> )} </Col> </Button> </Tooltip> ) }