diff --git a/src/components/subscription/purchase/TariffPurchaseForm.tsx b/src/components/subscription/purchase/TariffPurchaseForm.tsx index d49a918..a234f11 100644 --- a/src/components/subscription/purchase/TariffPurchaseForm.tsx +++ b/src/components/subscription/purchase/TariffPurchaseForm.tsx @@ -8,6 +8,7 @@ import { useCurrency } from '../../../hooks/useCurrency'; import { usePromoDiscount } from '../../../hooks/usePromoDiscount'; import { usePlatform } from '../../../platform'; import { openPaymentUrl } from '../../../utils/openPaymentUrl'; +import { getMonthlyPriceKopeks } from '../../../utils/pricing'; import InsufficientBalancePrompt from '../../InsufficientBalancePrompt'; import type { Tariff, TariffPeriod } from '../../../types'; @@ -279,10 +280,7 @@ export function TariffPurchaseForm({ const displayDiscount = promoPeriod.percent; const displayOriginal = promoPeriod.original; const displayPrice = promoPeriod.price; - const displayPerMonth = - displayPrice !== period.price_kopeks - ? Math.round(displayPrice / Math.max(1, period.days / 30)) - : period.price_per_month_kopeks; + const displayPerMonth = getMonthlyPriceKopeks(displayPrice, period.days); return ( ); })} diff --git a/src/pages/RenewSubscription.tsx b/src/pages/RenewSubscription.tsx index 8b9ea7e..ebcc461 100644 --- a/src/pages/RenewSubscription.tsx +++ b/src/pages/RenewSubscription.tsx @@ -5,6 +5,7 @@ import { Navigate, useNavigate, useParams } from 'react-router'; import { subscriptionApi } from '../api/subscription'; import { useTheme } from '../hooks/useTheme'; import { getGlassColors } from '../utils/glassTheme'; +import { getMonthlyPriceKopeks } from '../utils/pricing'; import { useCurrency } from '../hooks/useCurrency'; import { useHaptic } from '../platform'; import InsufficientBalancePrompt from '../components/InsufficientBalancePrompt'; @@ -143,8 +144,7 @@ export default function RenewSubscription() { {options.map((option) => { const isSelected = selectedPeriod === option.period_days; const canAfford = balanceKopeks >= option.price_kopeks; - const months = Math.max(1, Math.round(option.period_days / 30)); - const perMonth = option.price_kopeks / months; + const perMonth = getMonthlyPriceKopeks(option.price_kopeks, option.period_days); return (