@@ -15,6 +15,10 @@ background: #B01E1E26; color: #B01E1E; } + + &:disabled { + cursor: default; + } } .badge:hover { @@ -50,11 +54,11 @@ transform: translateX(50%); } -.badge:hover .textDefault { +.badge_expiring:hover .textDefault { opacity: 0; } -.badge:hover .textHover { +.badge_expiring:hover .textHover { opacity: 1; } @@ -29,6 +29,13 @@ export const SubscriptionDaysBadge = ({ days }: SubscriptionDaysBadgeProps) => { const { data } = useSession() const { showMessage } = useShowDataStore() + const label = + normalizedDays <= 1 + ? normalizedDays === 0 + ? 'Закончится сегодня' + : 'Закончится завтра' + : `Закончится через ${normalizedDays} ${declineDays(normalizedDays)}` + const handleRenew = async () => { if (!data?.access || !currentPlanUid) { showMessage('Произошла ошибка при оплате') @@ -53,17 +60,24 @@ export const SubscriptionDaysBadge = ({ days }: SubscriptionDaysBadgeProps) => { styles.badge, isExpiring ? styles.badge_expiring : '', ].filter(Boolean).join(' ')} - onClick={handleRenew} + onClick={isExpiring ? handleRenew : undefined} + disabled={!isExpiring} > - Истечет через{' '} - - {normalizedDays} {declineDays(normalizedDays)} - + {normalizedDays <= 1 ? ( + label + ) : ( + <> + Закончится через{' '} + + {normalizedDays} {declineDays(normalizedDays)} + + + )} - Продлить + {isExpiring ? Продлить : null} ) @@ -60,9 +60,8 @@ export const CurrentPlanAndBalance = ({ - Мой тариф + Моя подписка {daysLeft !== null ? : null} @@ -71,7 +70,9 @@ export const CurrentPlanAndBalance = ({ {commaSeparated(Math.round(Number(planTokenLimit)))} токенов - {isDemoPlan ? 'Демо доступ' : `${formatterdPlanPrice} / мес`} + + {isDemoPlan ? (isIndividual ? 'Индивидуальная' : 'Демо доступ') : `${formatterdPlanPrice} / мес`} + {nextPaymentLabel} @@ -46,8 +46,8 @@ &.tarif_btn_current { background-color: transparent; - border: 3px solid #FFFFFF; - color: #FFFFFF; + border: 3px solid #8280FF; + color: #8280FF; } } @@ -27,6 +27,8 @@ const Offer: React.FC = ({ uid, tokens_per_plan, price, grouped_fea 'Чат-боты': 'страниц текста', Видео: 'видео', Аудио: 'аудиозаписей', + Музыка: 'минут', + Голос: 'минут', } const formatFeatures = (groupedFeatures: IFeatures[] | undefined): string[] => { @@ -92,13 +94,13 @@ const Offer: React.FC = ({ uid, tokens_per_plan, price, grouped_fea

{commaSeparated(parseInt(price) ?? 0)} ₽

{ e.stopPropagation() handlePayClick() }} > - {isCurrentSubscription ? 'Нажмите, чтобы пополнить баланс' : 'Оплатить'} + {isCurrentSubscription ? 'Восстановить токены' : 'Оплатить'}
@@ -113,11 +113,11 @@ export const SubscriptionRecurrentPage = () => { - {!isDemoPlan ? ( + {!isDemoPlan && !isIndividual ? ( - {isIndividual || !isRecurring ? ( + {!isRecurring ? (