'use client' import { ResponsiveBar } from '@nivo/bar' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { nivoTheme, BRAND_COLORS } from './chart-theme' interface StageComparison { roundId: string roundName: string projectCount: number evaluationCount: number completionRate: number averageScore: number | null scoreDistribution: { score: number; count: number }[] } interface CrossStageComparisonProps { data: StageComparison[] } export function CrossStageComparisonChart({ data, }: CrossStageComparisonProps) { const baseData = data.map((round) => ({ name: round.roundName.length > 20 ? round.roundName.slice(0, 20) + '...' : round.roundName, projects: round.projectCount, evaluations: round.evaluationCount, completionRate: round.completionRate, avgScore: round.averageScore ? parseFloat(round.averageScore.toFixed(2)) : 0, })) const sharedMargin = { top: 10, right: 10, bottom: 40, left: 40 } return ( Round Metrics Comparison
Projects
Evaluations
Completion Rate
`${v}%`} margin={sharedMargin} padding={0.3} axisBottom={{ tickRotation: -25, }} axisLeft={{ format: (v) => `${v}%`, }} animate={true} />
Average Score
) }