mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
feat(sales-stats): карточки возвратов в сводке
Две карточки — количество и сумма возвратов за период (красный тон). Сетку сводки перевёл на 2/5 (10 карточек делятся ровно, без пустых ячеек). StatCard получил invertDelta: для «меньше — лучше» метрик рост красится в красный, падение в зелёный (стрелка по факту). 4 локали.
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
||||
GiftIcon,
|
||||
PercentIcon,
|
||||
RepeatIcon,
|
||||
ResetIcon,
|
||||
RocketIcon,
|
||||
SparklesIcon,
|
||||
TicketIcon,
|
||||
@@ -115,6 +116,7 @@ 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]);
|
||||
|
||||
@@ -148,7 +150,7 @@ export default function AdminSalesStats() {
|
||||
{t('admin.salesStats.loadError')}
|
||||
</div>
|
||||
)}
|
||||
<div className="grid grid-cols-2 gap-3 sm:grid-cols-4">
|
||||
<div className="grid grid-cols-2 gap-3 sm:grid-cols-5">
|
||||
<StatCard
|
||||
label={t('admin.salesStats.summary.revenue')}
|
||||
value={
|
||||
@@ -223,6 +225,24 @@ export default function AdminSalesStats() {
|
||||
tone="warning"
|
||||
delta={deltas?.manualTopup}
|
||||
/>
|
||||
<StatCard
|
||||
label={t('admin.salesStats.summary.refundsCount')}
|
||||
value={summaryLoading ? '...' : (summary?.refunds_count ?? 0)}
|
||||
icon={<ResetIcon className="h-5 w-5" />}
|
||||
tone="error"
|
||||
/>
|
||||
<StatCard
|
||||
label={t('admin.salesStats.summary.refundsAmount')}
|
||||
value={
|
||||
summaryLoading
|
||||
? '...'
|
||||
: formatWithCurrency((summary?.refunds_kopeks ?? 0) / SALES_STATS.KOPEKS_DIVISOR, 0)
|
||||
}
|
||||
icon={<BanknotesIcon className="h-5 w-5" />}
|
||||
tone="error"
|
||||
delta={deltas?.refunds}
|
||||
invertDelta
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Tabs */}
|
||||
|
||||
Reference in New Issue
Block a user