feat(sales-stats): разбивка допов по пакетам тоже на BreakdownList

Для консистентности: «Допы → по пакетам» теперь список с долями % и мини-баром,
как остальные категорийные разбивки, вместо отдельного bar-графика.
This commit is contained in:
c0mrade
2026-06-02 15:17:34 +03:00
parent a685e542aa
commit bb97ee8430

View File

@@ -8,8 +8,8 @@ import { SALES_STATS } from '../../constants/salesStats';
import { useCurrency } from '../../hooks/useCurrency'; import { useCurrency } from '../../hooks/useCurrency';
import { StatCard } from '../stats'; import { StatCard } from '../stats';
import { BreakdownList } from './BreakdownList';
import { DualAreaChart } from './DualAreaChart'; import { DualAreaChart } from './DualAreaChart';
import { SimpleBarChart } from './SimpleBarChart';
interface AddonsTabProps { interface AddonsTabProps {
params: SalesStatsParams; params: SalesStatsParams;
@@ -51,8 +51,9 @@ export function AddonsTab({ params }: AddonsTabProps) {
return <div className="py-8 text-center text-error-400">{t('admin.salesStats.loadError')}</div>; return <div className="py-8 text-center text-error-400">{t('admin.salesStats.loadError')}</div>;
} }
const packageBarData = data.by_package.map((item) => ({ const packageBreakdown = data.by_package.map((item) => ({
name: `${item.traffic_gb} GB`, key: String(item.traffic_gb),
label: `${item.traffic_gb} GB`,
value: item.count, value: item.count,
})); }));
@@ -84,7 +85,7 @@ export function AddonsTab({ params }: AddonsTabProps) {
</div> </div>
<div className="grid grid-cols-1 gap-4 lg:grid-cols-2"> <div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
<SimpleBarChart data={packageBarData} title={t('admin.salesStats.addons.byPackage')} /> <BreakdownList title={t('admin.salesStats.addons.byPackage')} items={packageBreakdown} />
<DualAreaChart <DualAreaChart
data={dailyChartData} data={dailyChartData}
title={t('admin.salesStats.addons.dailyChart')} title={t('admin.salesStats.addons.dailyChart')}