import { Metric, Text } from '@moex-vibe/design-system' import { Box } from '@mui/material' import type { BrokerAnalytics, BrokerPortfolio } from '@/shared/api' import { formatBrokerMoney, formatBrokerPercent } from '@/shared/lib/formatters' import { formatDashboardCurrency, moneyTone, moneyToneToColor } from '../lib/dashboardVisual' type BrokerDashboardHeroProps = { portfolio: BrokerPortfolio analytics: BrokerAnalytics | undefined } function percentValue(value: unknown): string { return typeof value === 'number' ? formatBrokerPercent(value) : '—' } export function BrokerDashboardHero({ portfolio, analytics }: BrokerDashboardHeroProps) { const accountName = portfolio.account.name || 'Брокерский счёт' const returnPercent = analytics?.totalReturnPercent ?? portfolio.yields.expectedPercent const returnTone = moneyTone(typeof returnPercent === 'number' ? returnPercent : null) const dailyTone = moneyTone(portfolio.yields.daily?.value ?? null) const totalReceivedTone = moneyTone(analytics?.totalReceived ?? null) const totalReceivedDisplay = analytics ? formatDashboardCurrency({ currency: analytics.currency, value: analytics.totalReceived }) : '—' return ( Инвестиционный дашборд {accountName} {percentValue(returnPercent)} } supportingText={ За день: {formatBrokerMoney(portfolio.yields.daily)} } /> {totalReceivedDisplay} } /> ) }