'use client' import { useApp } from '@/contexts/AppContext' import { Badge } from '@/types' export function UserProfile() { const { state } = useApp() const { user } = state if (!user) return null const getXPProgress = () => { const xpForNextLevel = user.level * 100 // Simple formula: level * 100 XP needed const currentLevelXP = (user.level - 1) * 100 const progressXP = user.xp - currentLevelXP const neededXP = xpForNextLevel - currentLevelXP return { progress: progressXP, needed: neededXP, percentage: (progressXP / neededXP) * 100 } } const getBadgeRarityColor = (rarity: Badge['rarity']) => { switch (rarity) { case 'common': return '#8B7D6B' case 'rare': return '#C89C2B' case 'legendary': return '#7B2E2E' default: return '#8B7D6B' } } const xpProgress = getXPProgress() return (
{/* Background Pattern */}
{/* Header */}
{/* Avatar */}
{user.username.charAt(0).toUpperCase()}
{/* User Info */}

{user.username}

Level {user.level} Collector • {user.xp} XP
{/* Streak */}
🔥
{user.streak} Day Streak
{/* XP Progress Bar */}
Progress to Level {user.level + 1} {xpProgress.progress}/{xpProgress.needed} XP
{/* Stats Grid */}
{user.wishlist.length}
Wishlisted
{user.badges.length}
Badges
{user.collections.length}
Collections
{/* Badges */} {user.badges.length > 0 && (

Recent Badges

{user.badges.slice(0, 4).map((badge) => (
{badge.icon} {badge.name} {badge.rarity === 'legendary' && (
)}
))}
)} {/* Quick Actions */}
{/* CSS Animation for legendary badge pulse */}
) }