diff --git a/src/api/adminSalesStats.ts b/src/api/adminSalesStats.ts index 8faabc8..7b5f261 100644 --- a/src/api/adminSalesStats.ts +++ b/src/api/adminSalesStats.ts @@ -19,8 +19,6 @@ export interface SalesSummary { trial_to_paid_conversion: number; renewals_count: number; addon_revenue_kopeks: number; - refunds_count: number; - refunds_kopeks: number; } // ============ Trials ============ diff --git a/src/components/stats/StatCard.tsx b/src/components/stats/StatCard.tsx index 92189ae..79f2600 100644 --- a/src/components/stats/StatCard.tsx +++ b/src/components/stats/StatCard.tsx @@ -26,9 +26,6 @@ interface StatCardProps { valueClassName?: string; /** Optional period-over-period change shown under the value. */ delta?: StatCardDelta | null; - /** For "lower is better" metrics (e.g. refunds): keep the real arrow but flip - * the colour, so a rise reads as bad (red) and a drop as good (green). */ - invertDelta?: boolean; } export function StatCard({ @@ -38,18 +35,10 @@ export function StatCard({ tone = 'neutral', valueClassName, delta, - invertDelta = false, }: StatCardProps) { const toneStyle = TONE[tone]; const valueClass = valueClassName ?? toneStyle.value; - const baseTrend = delta ? (TREND_STYLES[delta.trend] ?? TREND_STYLES.stable) : null; - const trendStyle = - baseTrend && invertDelta && delta && delta.trend !== 'stable' - ? { - arrow: baseTrend.arrow, - className: TREND_STYLES[delta.trend === 'up' ? 'down' : 'up'].className, - } - : baseTrend; + const trendStyle = delta ? (TREND_STYLES[delta.trend] ?? TREND_STYLES.stable) : null; return (
diff --git a/src/locales/en.json b/src/locales/en.json index 68bfaac..6a482c4 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1306,9 +1306,7 @@ "conversion": "Conversion", "renewals": "Renewals", "addonRevenue": "Add-on Revenue", - "manualTopup": "Manual Top-ups", - "refundsCount": "Refunds", - "refundsAmount": "Refunded amount" + "manualTopup": "Manual Top-ups" }, "trials": { "total": "Total Trials", diff --git a/src/locales/fa.json b/src/locales/fa.json index 2c744e2..26cde24 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -1179,9 +1179,7 @@ "conversion": "تبدیل", "renewals": "تمدید", "addonRevenue": "درآمد خدمات اضافی", - "manualTopup": "شارژ دستی", - "refundsCount": "بازپرداخت‌ها", - "refundsAmount": "مبلغ بازپرداخت" + "manualTopup": "شارژ دستی" }, "trials": { "total": "کل آزمایشی", diff --git a/src/locales/ru.json b/src/locales/ru.json index b77dbec..872bd7c 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1328,9 +1328,7 @@ "conversion": "Конверсия", "renewals": "Продления", "addonRevenue": "Доп. услуги", - "manualTopup": "Ручные пополнения", - "refundsCount": "Возвраты", - "refundsAmount": "Сумма возвратов" + "manualTopup": "Ручные пополнения" }, "trials": { "total": "Всего триалов", diff --git a/src/locales/zh.json b/src/locales/zh.json index 6a9d6a1..dca06ba 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -1179,9 +1179,7 @@ "conversion": "转化率", "renewals": "续订", "addonRevenue": "附加服务收入", - "manualTopup": "手动充值", - "refundsCount": "退款", - "refundsAmount": "退款金额" + "manualTopup": "手动充值" }, "trials": { "total": "试用总数", diff --git a/src/pages/AdminSalesStats.tsx b/src/pages/AdminSalesStats.tsx index 0be2563..55cdb8d 100644 --- a/src/pages/AdminSalesStats.tsx +++ b/src/pages/AdminSalesStats.tsx @@ -13,7 +13,6 @@ import { GiftIcon, PercentIcon, RepeatIcon, - ResetIcon, RocketIcon, SparklesIcon, TicketIcon, @@ -116,7 +115,6 @@ export default function AdminSalesStats() { renewals: computeDelta(summary.renewals_count, prevSummary.renewals_count), addonRevenue: computeDelta(summary.addon_revenue_kopeks, prevSummary.addon_revenue_kopeks), manualTopup: computeDelta(summary.manual_topup_kopeks, prevSummary.manual_topup_kopeks), - refunds: computeDelta(summary.refunds_kopeks, prevSummary.refunds_kopeks), }; }, [summary, prevSummary]); @@ -150,7 +148,7 @@ export default function AdminSalesStats() { {t('admin.salesStats.loadError')}
)} -
+
- } - tone="error" - /> - } - tone="error" - delta={deltas?.refunds} - invertDelta - />
{/* Tabs */}