'use client'; import React from 'react'; import { Award, Trophy, Medal, Star, Crown, Target, Zap } from 'lucide-react'; import { Card } from '@/ui/Card'; import { Heading } from '@/ui/Heading'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Surface } from '@/ui/Surface'; import { Icon } from '@/ui/Icon'; import { Grid } from '@/ui/Grid'; interface Achievement { id: string; title: string; description: string; icon: string; rarity: string; earnedAt: Date; } interface AchievementGridProps { achievements: Achievement[]; } function getAchievementIcon(icon: string) { switch (icon) { case 'trophy': return Trophy; case 'medal': return Medal; case 'star': return Star; case 'crown': return Crown; case 'target': return Target; case 'zap': return Zap; default: return Award; } } export function AchievementGrid({ achievements }: AchievementGridProps) { return ( }> Achievements {achievements.length} earned {achievements.map((achievement) => { const AchievementIcon = getAchievementIcon(achievement.icon); return ( {achievement.title} {achievement.description} {achievement.earnedAt.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric', })} ); })} ); }