import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Progress } from "@/components/ui/progress"; import { Trophy, TrendingUp, Star } from "lucide-react"; import { useState } from "react"; interface Achievement { id: string; name: string; description: string; icon: string; progress: number; target: number; completed: boolean; earnedBy: number; rarity: "common" | "rare" | "epic" | "legendary"; } export default function AdminStaffAchievements() { const [filterRarity, setFilterRarity] = useState("all"); const achievements: Achievement[] = [ { id: "first-step", name: "First Step", description: "Complete your first task", icon: "👣", progress: 1, target: 1, completed: true, earnedBy: 12, rarity: "common", }, { id: "community-champion", name: "Community Champion", description: "Help 10 community members", icon: "🏆", progress: 7, target: 10, completed: false, earnedBy: 3, rarity: "epic", }, { id: "code-master", name: "Code Master", description: "Contribute 50 code reviews", icon: "💻", progress: 25, target: 50, completed: false, earnedBy: 2, rarity: "legendary", }, { id: "documentation-king", name: "Documentation King", description: "Write 20 documentation entries", icon: "📚", progress: 15, target: 20, completed: false, earnedBy: 4, rarity: "rare", }, { id: "bug-squasher", name: "Bug Squasher", description: "Fix 25 reported bugs", icon: "🐛", progress: 12, target: 25, completed: false, earnedBy: 5, rarity: "rare", }, { id: "mentor", name: "Mentor", description: "Mentor 5 junior developers", icon: "🎓", progress: 2, target: 5, completed: false, earnedBy: 1, rarity: "epic", }, ]; const getRarityColor = (rarity: Achievement["rarity"]) => { const colors: Record = { common: "bg-gray-100 text-gray-900 dark:bg-gray-900/30", rare: "bg-blue-100 text-blue-900 dark:bg-blue-900/30", epic: "bg-purple-100 text-purple-900 dark:bg-purple-900/30", legendary: "bg-yellow-100 text-yellow-900 dark:bg-yellow-900/30", }; return colors[rarity]; }; const filteredAchievements = filterRarity === "all" ? achievements : achievements.filter((a) => a.rarity === filterRarity); const completedCount = achievements.filter((a) => a.completed).length; const totalProgress = achievements.reduce((acc, a) => acc + a.progress, 0); const totalTarget = achievements.reduce((acc, a) => acc + a.target, 0); return (

Achievement Tracking

Team achievements and progress tracking

{/* Overview Stats */}
Completed
{completedCount}

of {achievements.length} achievements

Overall Progress
{Math.round((totalProgress / totalTarget) * 100)}%
Team Average
{( achievements.reduce((acc, a) => acc + a.earnedBy, 0) / achievements.length ).toFixed(1)}

members per achievement

{/* Filter */}
{["common", "rare", "epic", "legendary"].map((rarity) => ( ))}
{/* Achievements Grid */}
{filteredAchievements.map((achievement) => (
{achievement.icon}
{achievement.name} {achievement.description}
{achievement.rarity}
Progress {achievement.progress}/{achievement.target}
Earned by {achievement.earnedBy} members {achievement.completed && ( ✓ Completed )}
))}
{filteredAchievements.length === 0 && (

No achievements with this rarity level

)}
); }