import { DonutBreakdownCard } from '@/components/patterns/donut-breakdown-card' import { SegmentedProgressCard } from '@/components/patterns/segmented-progress-card' import { peerSessionBreakdown } from '@/lib/metrics' import { aggregateNetworkMetrics } from '@/queries/overview' import type { PeerRow, SpeakerRow } from '@/types/api' export function NetworkOverviewAnalyticsCard({ peers, speakers, loading, }: { peers: PeerRow[] speakers: SpeakerRow[] loading?: boolean }) { const net = aggregateNetworkMetrics(peers, speakers) const slices = peerSessionBreakdown(peers) const speakersPct = net.speakersTotal > 0 ? Math.round((net.speakersOnline / net.speakersTotal) * 100) : 0 if (loading) { return ( ) } return (
0 ? `${net.peersMismatch} расхождений` : 'в норме'} />
) }