From b82771107d25a76d3f97b13486075a8c9193fe6c Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Fri, 19 Jun 2026 06:52:22 +0300 Subject: [PATCH] fix: harden broker overview edge cases --- .../broker/BrokerAccountOverviewPage.tsx | 18 +- .../pages/broker/BrokerAllocationChart.tsx | 27 ++- .../pages/broker/BrokerOperationsTable.tsx | 8 +- .../src/pages/broker/BrokerPages.test.tsx | 198 +++++++++++++++++- .../src/pages/broker/brokerAllocation.test.ts | 13 ++ .../src/pages/broker/brokerAllocation.ts | 22 +- 6 files changed, 265 insertions(+), 21 deletions(-) diff --git a/apps/frontend/src/pages/broker/BrokerAccountOverviewPage.tsx b/apps/frontend/src/pages/broker/BrokerAccountOverviewPage.tsx index fe38f8f..2b95a47 100644 --- a/apps/frontend/src/pages/broker/BrokerAccountOverviewPage.tsx +++ b/apps/frontend/src/pages/broker/BrokerAccountOverviewPage.tsx @@ -7,7 +7,7 @@ import { BrokerAllocationChart } from './BrokerAllocationChart'; import { BrokerOperationsTable } from './BrokerOperationsTable'; function formatMoney(value: BrokerMoney | null | undefined) { - if (!value) return '-'; + if (!value) return '—'; return new Intl.NumberFormat('ru-RU', { style: 'currency', currency: value.currency || 'RUB', @@ -16,7 +16,7 @@ function formatMoney(value: BrokerMoney | null | undefined) { } function formatPercent(value: number | null) { - if (value === null) return '-'; + if (value === null) return '—'; return `${new Intl.NumberFormat('ru-RU', { maximumFractionDigits: 2 }).format(value)}%`; } @@ -47,8 +47,8 @@ function BrokerSummary({ portfolio }: { portfolio: BrokerPortfolio }) { Нет денежных остатков ) : ( diff --git a/apps/frontend/src/pages/broker/BrokerOperationsTable.tsx b/apps/frontend/src/pages/broker/BrokerOperationsTable.tsx index baaa12b..96b8661 100644 --- a/apps/frontend/src/pages/broker/BrokerOperationsTable.tsx +++ b/apps/frontend/src/pages/broker/BrokerOperationsTable.tsx @@ -111,7 +111,7 @@ export function BrokerOperationsTable({ const operations = page?.items ?? []; return ( -
+
{isFetching && ( -
-
+
+