'use client' import type { CSSProperties, FC } from 'react' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import { SparklesSoft } from '@/app/components/base/icons/src/public/common' import { useModalContext } from '@/context/modal-context' import PremiumBadge from '../../base/premium-badge' type Props = { className?: string style?: CSSProperties isFull?: boolean size?: 's' | 'm' | 'custom' isPlain?: boolean isShort?: boolean onClick?: () => void loc?: string labelKey?: string } const UpgradeBtn: FC = ({ className, size = 'm', style, isPlain = false, isShort = false, onClick: _onClick, loc, labelKey, }) => { const { t } = useTranslation() const { setShowPricingModal } = useModalContext() const handleClick = () => { if (_onClick) _onClick() else (setShowPricingModal as any)() } const onClick = () => { handleClick() if (loc && (window as any).gtag) { (window as any).gtag('event', 'click_upgrade_btn', { loc, }) } } const defaultBadgeLabel = t(`billing.upgradeBtn.${isShort ? 'encourageShort' : 'encourage'}` as any) as string const label = labelKey ? t(labelKey as any) as string : defaultBadgeLabel if (isPlain) { return ( ) } return (
{label}
) } export default React.memo(UpgradeBtn)