import { AchievementDisplay } from '@/lib/display-objects/AchievementDisplay'; import { Card } from '@/ui/Card'; import { Grid } from '@/ui/Grid'; import { Heading } from '@/ui/Heading'; import { Icon } from '@/ui/Icon'; import { Group } from '@/ui/Group'; import { Stack } from '@/ui/Stack'; import { Box } from '@/ui/Box'; import { Surface } from '@/ui/Surface'; import { Text } from '@/ui/Text'; import { Award, Crown, Medal, Star, Target, Trophy, Zap } from 'lucide-react'; import React from 'react'; interface Achievement { id: string; title: string; description: string; icon: string; rarity: 'common' | 'rare' | 'epic' | 'legendary' | string; earnedAtLabel: string; } 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); const rarity = AchievementDisplay.getRarityVariant(achievement.rarity); return ( {achievement.title} {achievement.description} {achievement.rarity} {achievement.earnedAtLabel} ); })} ); }