'use client'; import { AlertTriangle, CheckCircle, Clock, CreditCard, Wallet } from 'lucide-react'; import { useT } from '@/i18n/I18nProvider'; export type UpgradeCostSummary = { proratedAmount: number; remainingHours: number; currentCost: { hourly: number; monthly: number; yearly: number }; newCost: { hourly: number; monthly: number; yearly: number }; }; export function ResourceUpgradeConfirmModal({ open, upgradeCostData, walletBalance, isPending, onCancel, onConfirm, }: { open: boolean; upgradeCostData: UpgradeCostSummary | null; walletBalance?: number; isPending: boolean; onCancel: () => void; onConfirm: () => void; }) { const t = useT(); const c = t.components; if (!open || !upgradeCostData) return null; const needsPay = upgradeCostData.proratedAmount > 0; const walletShort = needsPay && walletBalance != null && upgradeCostData.proratedAmount > walletBalance; return (

{c.upgradeTitle}

{needsPay ? c.upgradeNeedsPay : c.upgradeNoCost}

{c.currentHourlyCost} {c.tomanPerHour.replace('{n}', upgradeCostData.currentCost.hourly.toLocaleString('en-US'))}
{c.newHourlyCost} {c.tomanPerHour.replace('{n}', upgradeCostData.newCost.hourly.toLocaleString('en-US'))}
{c.remainingHoursInPeriod} {c.hoursUnit.replace('{n}', String(upgradeCostData.remainingHours))}
{c.proratedAmountToPay} {c.tomanUnit.replace('{n}', upgradeCostData.proratedAmount.toLocaleString('en-US'))}
{c.walletBalance}
{c.tomanUnit.replace('{n}', (walletBalance ?? 0).toLocaleString('en-US'))}
{walletShort && (

{c.walletShortBy.replace( '{n}', (upgradeCostData.proratedAmount - (walletBalance ?? 0)).toLocaleString('en-US'), )}

)}
); }