feat(ui): 결제 금액 UI 표시 적용

This commit is contained in:
JiWoong Sul
2026-01-14 00:18:37 +09:00
parent 6e7a7d2477
commit 18a0004d57
5 changed files with 42 additions and 15 deletions

View File

@@ -7,6 +7,7 @@ import '../providers/locale_provider.dart';
import '../services/subscription_url_matcher.dart';
import '../services/currency_util.dart';
import '../utils/billing_date_util.dart';
import '../utils/billing_cost_util.dart';
import '../utils/payment_card_utils.dart';
import 'website_icon.dart';
import 'app_navigator.dart';
@@ -272,25 +273,41 @@ class _SubscriptionCardState extends State<SubscriptionCard>
}
}
// 가격 포맷팅 함수 (언어별 통화)
// 가격 포맷팅 함수 (언어별 통화) - 실제 결제 금액 표시
Future<String> _getFormattedPrice() async {
final locale = context.read<LocaleProvider>().locale.languageCode;
final billingCycle = widget.subscription.billingCycle;
if (widget.subscription.isCurrentlyInEvent) {
// 이벤트 중인 경우 원래 가격과 현재 가격 모두 표시
final originalPrice = await CurrencyUtil.formatAmountWithLocale(
// 이벤트 중인 경우: 월 비용을 실제 결제 금액으로 역변환
final actualOriginalPrice = BillingCostUtil.convertFromMonthlyCost(
widget.subscription.monthlyCost,
billingCycle,
);
final actualCurrentPrice = BillingCostUtil.convertFromMonthlyCost(
widget.subscription.currentPrice,
billingCycle,
);
final originalPrice = await CurrencyUtil.formatAmountWithLocale(
actualOriginalPrice,
widget.subscription.currency,
locale,
);
final currentPrice = await CurrencyUtil.formatAmountWithLocale(
widget.subscription.currentPrice,
actualCurrentPrice,
widget.subscription.currency,
locale,
);
return '$originalPrice|$currentPrice';
} else {
return CurrencyUtil.formatAmountWithLocale(
// 월 비용을 실제 결제 금액으로 역변환 (연간이면 x12, 분기면 x3 등)
final actualPrice = BillingCostUtil.convertFromMonthlyCost(
widget.subscription.currentPrice,
billingCycle,
);
return CurrencyUtil.formatAmountWithLocale(
actualPrice,
widget.subscription.currency,
locale,
);