From 80ac63102b91a3aced5b3b599c5da05b6803bffa Mon Sep 17 00:00:00 2001 From: c0mrade Date: Tue, 2 Jun 2026 15:45:40 +0300 Subject: [PATCH] =?UTF-8?q?feat(sales-stats):=20=D0=B8=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BA=D0=B0=D1=85=20=D0=B2=D0=BE=20=D0=B2=D1=81=D0=B5?= =?UTF-8?q?=D1=85=20=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Доделал душевный вид: карточки внутри вкладок (Триалы/Продажи/Продления/Допы/ Депозиты) тоже получили иконки в цветных чипах с тонами — единый стиль со сводкой (регистрации/триалы/конверсия/длительность, продажи/выручка/чек/топ-тариф, продления/%, допы/GB/устройства, пополнения/сумма/средний). Крупные суммы — без копеек. --- src/components/sales-stats/AddonsTab.tsx | 23 ++++++++++++++++++---- src/components/sales-stats/DepositsTab.tsx | 10 ++++++++-- src/components/sales-stats/RenewalsTab.tsx | 16 +++++++++++---- src/components/sales-stats/SalesTab.tsx | 23 +++++++++++++++++----- src/components/sales-stats/TrialsTab.tsx | 15 ++++++++++++-- 5 files changed, 70 insertions(+), 17 deletions(-) diff --git a/src/components/sales-stats/AddonsTab.tsx b/src/components/sales-stats/AddonsTab.tsx index 7decffb..c0f961d 100644 --- a/src/components/sales-stats/AddonsTab.tsx +++ b/src/components/sales-stats/AddonsTab.tsx @@ -6,6 +6,13 @@ import type { SalesStatsParams } from '../../api/adminSalesStats'; import { salesStatsApi } from '../../api/adminSalesStats'; import { SALES_STATS } from '../../constants/salesStats'; import { useCurrency } from '../../hooks/useCurrency'; +import { + BanknotesIcon, + CardIcon, + DevicesIcon, + PlusIcon, + TrafficIcon, +} from '../../components/icons'; import { StatCard } from '../stats'; import { BreakdownList } from './BreakdownList'; @@ -64,24 +71,32 @@ export function AddonsTab({ params }: AddonsTabProps) { } + tone="accent" /> } + tone="neutral" /> } + tone="success" /> } + tone="accent" /> } + tone="success" /> diff --git a/src/components/sales-stats/DepositsTab.tsx b/src/components/sales-stats/DepositsTab.tsx index 60d544d..c73c8b2 100644 --- a/src/components/sales-stats/DepositsTab.tsx +++ b/src/components/sales-stats/DepositsTab.tsx @@ -7,6 +7,7 @@ import { salesStatsApi } from '../../api/adminSalesStats'; import { METHOD_LABELS } from '../../constants/paymentMethods'; import { SALES_STATS } from '../../constants/salesStats'; import { useCurrency } from '../../hooks/useCurrency'; +import { BanknotesIcon, CardIcon, WalletIcon } from '../../components/icons'; import { StatCard } from '../stats'; import PaymentMethodIcon from '../PaymentMethodIcon'; @@ -82,15 +83,20 @@ export function DepositsTab({ params }: DepositsTabProps) { } + tone="accent" /> } + tone="success" /> } + tone="neutral" /> diff --git a/src/components/sales-stats/RenewalsTab.tsx b/src/components/sales-stats/RenewalsTab.tsx index d145ba0..ddffdb1 100644 --- a/src/components/sales-stats/RenewalsTab.tsx +++ b/src/components/sales-stats/RenewalsTab.tsx @@ -5,6 +5,7 @@ import type { SalesStatsParams } from '../../api/adminSalesStats'; import { salesStatsApi } from '../../api/adminSalesStats'; import { SALES_STATS } from '../../constants/salesStats'; import { useCurrency } from '../../hooks/useCurrency'; +import { BanknotesIcon, PercentIcon, RepeatIcon } from '../../components/icons'; import { StatCard } from '../stats'; import { TREND_STYLES } from '../stats/constants'; @@ -49,16 +50,23 @@ export function RenewalsTab({ params }: RenewalsTabProps) { return (
- + } + tone="success" + /> } + tone="accent" /> } + tone="success" />
diff --git a/src/components/sales-stats/SalesTab.tsx b/src/components/sales-stats/SalesTab.tsx index 723b8f0..d1cd433 100644 --- a/src/components/sales-stats/SalesTab.tsx +++ b/src/components/sales-stats/SalesTab.tsx @@ -6,6 +6,7 @@ import type { SalesStatsParams } from '../../api/adminSalesStats'; import { salesStatsApi } from '../../api/adminSalesStats'; import { SALES_STATS } from '../../constants/salesStats'; import { useCurrency } from '../../hooks/useCurrency'; +import { BanknotesIcon, CardIcon, TicketIcon, TrophyIcon } from '../../components/icons'; import { StatCard } from '../stats'; import { BreakdownList } from './BreakdownList'; @@ -68,18 +69,30 @@ export function SalesTab({ params }: SalesTabProps) { return (
- + } + tone="accent" + /> } + tone="success" /> } + tone="success" + /> + } + tone="warning" /> -
diff --git a/src/components/sales-stats/TrialsTab.tsx b/src/components/sales-stats/TrialsTab.tsx index fc113da..f041105 100644 --- a/src/components/sales-stats/TrialsTab.tsx +++ b/src/components/sales-stats/TrialsTab.tsx @@ -4,6 +4,7 @@ import { useTranslation } from 'react-i18next'; import type { SalesStatsParams } from '../../api/adminSalesStats'; import { salesStatsApi } from '../../api/adminSalesStats'; import { SALES_STATS } from '../../constants/salesStats'; +import { ClockIcon, GiftIcon, PercentIcon, UserPlusIcon } from '../../components/icons'; import { StatCard } from '../stats'; import { DonutChart } from './DonutChart'; @@ -64,16 +65,26 @@ export function TrialsTab({ params }: TrialsTabProps) { } + tone="accent" + /> + } + tone="neutral" /> - } + tone="success" /> } + tone="neutral" />