gilbertyiga
Update space
1af45d7
import React, { FC } from 'react';
import {
ResponsiveContainer,
RadarChart,
PolarGrid,
PolarAngleAxis,
PolarRadiusAxis,
Radar,
Legend,
} from 'recharts';
import { ChartRow } from '../types';
interface Props {
data: ChartRow[];
comparisonMode: boolean;
colors: string[];
}
const RadarView: FC<Props> = ({ data, comparisonMode, colors }) => (
<div className="bg-white rounded-xl shadow-lg p-6 mb-8">
<h2 className="text-2xl font-bold text-gray-800 mb-6">
{comparisonMode ? 'Multi-Model Radar' : 'Metric Distribution'}
</h2>
<ResponsiveContainer width="100%" height={400}>
<RadarChart data={data}>
<PolarGrid />
<PolarAngleAxis dataKey="metric" />
<PolarRadiusAxis angle={90} domain={[0, 1]} />
{comparisonMode
? data[0] /* assume all rows have same keys */ &&
Object.keys(data[0])
.filter(k => k !== 'metric')
.map((key, i) => (
<Radar
key={key}
name={key}
dataKey={key}
stroke={colors[i % colors.length]}
fill={colors[i % colors.length]}
fillOpacity={0.3}
/>
))
: <Radar name="Performance" dataKey="value" stroke={colors[0]} fill={colors[0]} fillOpacity={0.3} />}
<Legend />
</RadarChart>
</ResponsiveContainer>
</div>
);
export default RadarView;