'use client';
import Card from '../ui/Card';
interface RatingBreakdownProps {
skillRating?: number;
safetyRating?: number;
sportsmanshipRating?: number;
}
export default function RatingBreakdown({
skillRating = 1450,
safetyRating = 92,
sportsmanshipRating = 4.8
}: RatingBreakdownProps) {
return (
Rating Components
Rating History
-
✓
Strong safety rating - keep up the clean racing!
-
→
Skill rating improving - competitive against higher-rated drivers
-
i
Complete more races to stabilize your ratings
);
}
function RatingComponent({
label,
value,
maxValue,
color,
suffix = '',
description,
breakdown
}: {
label: string;
value: number;
maxValue: number;
color: string;
suffix?: string;
description: string;
breakdown: { label: string; percentage: number }[];
}) {
const percentage = (value / maxValue) * 100;
return (
{label}
{value}{suffix}
{description}
{breakdown.map((item, index) => (
{item.label}
{item.percentage}%
))}
);
}
function HistoryItem({
date,
skillChange,
safetyChange,
sportsmanshipChange
}: {
date: string;
skillChange: number;
safetyChange: number;
sportsmanshipChange: number;
}) {
const formatChange = (value: number) => {
if (value === 0) return '—';
return value > 0 ? `+${value}` : `${value}`;
};
const getChangeColor = (value: number) => {
if (value === 0) return 'text-gray-500';
return value > 0 ? 'text-green-400' : 'text-red-400';
};
return (
{date}
Skill
{formatChange(skillChange)}
Safety
{formatChange(safetyChange)}
Sports
{formatChange(sportsmanshipChange)}
);
}