From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001 From: wwf <yearningwang@iqtogether.com> Date: 星期三, 04 六月 2025 15:17:49 +0800 Subject: [PATCH] 初始化 --- app/components/billing/upgrade-btn/index.tsx | 59 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 38 insertions(+), 21 deletions(-) diff --git a/app/components/billing/upgrade-btn/index.tsx b/app/components/billing/upgrade-btn/index.tsx index 45f4d44..d7885d7 100644 --- a/app/components/billing/upgrade-btn/index.tsx +++ b/app/components/billing/upgrade-btn/index.tsx @@ -2,9 +2,10 @@ import type { FC } from 'react' import React from 'react' import { useTranslation } from 'react-i18next' -import PremiumBadge from '../../base/premium-badge' -import Button from '@/app/components/base/button' -import { SparklesSoft } from '@/app/components/base/icons/src/public/common' +import { GoldCoin } from '../../base/icons/src/vender/solid/FinanceAndECommerce' +import { Sparkles } from '../../base/icons/src/public/billing' +import s from './style.module.css' +import cn from '@/utils/classnames' import { useModalContext } from '@/context/modal-context' type Props = { @@ -17,9 +18,27 @@ loc?: string } +const PlainBtn = ({ className, onClick }: { className?: string; onClick: () => void }) => { + const { t } = useTranslation() + + return ( + <div + className={cn(className, 'flex items-center h-8 px-3 rounded-lg border border-gray-200 bg-white shadow-sm cursor-pointer')} + onClick={onClick} + > + <div className='leading-[18px] text-[13px] font-medium text-gray-700'> + {t('billing.upgradeBtn.plain')} + </div> + </div> + ) +} + const UpgradeBtn: FC<Props> = ({ + className, isPlain = false, + isFull = false, isShort = false, + size = 'md', onClick: _onClick, loc, }) => { @@ -40,28 +59,26 @@ } } - if (isPlain) { - return ( - <Button onClick={onClick}> - {t('billing.upgradeBtn.plain')} - </Button> - ) - } + if (isPlain) + return <PlainBtn onClick={onClick} className={className} /> return ( - <PremiumBadge - size="m" - color="blue" - allowHover={true} + <div + className={cn( + s.upgradeBtn, + className, + isFull ? 'justify-center' : 'px-3', + size === 'lg' ? 'h-10' : 'h-9', + 'relative flex items-center cursor-pointer border rounded-[20px] border-[#0096EA] text-white', + )} onClick={onClick} > - <SparklesSoft className='flex h-3.5 w-3.5 items-center py-[1px] pl-[3px] text-components-premium-badge-indigo-text-stop-0' /> - <div className='system-xs-medium'> - <span className='p-1'> - {t(`billing.upgradeBtn.${isShort ? 'encourageShort' : 'encourage'}`)} - </span> - </div> - </PremiumBadge> + <GoldCoin className='mr-1 w-3.5 h-3.5' /> + <div className='text-xs font-normal'>{t(`billing.upgradeBtn.${isShort ? 'encourageShort' : 'encourage'}`)}</div> + <Sparkles + className='absolute -right-1 -top-2 w-4 h-5 bg-cover' + /> + </div> ) } export default React.memo(UpgradeBtn) -- Gitblit v1.8.0