"use client"; import { useEffect, useState } from "react"; interface PlayerStatsProps { username?: string; avatar?: string; hp?: number; maxHp?: number; xp?: number; maxXp?: number; level?: number; } // Format number with consistent locale to avoid hydration mismatch const formatNumber = (num: number): string => { return num.toLocaleString("en-US"); }; export default function PlayerStats({ username = "DragonSlayer99", avatar = "/got-2.jpg", hp = 750, maxHp = 1000, xp = 3250, maxXp = 5000, level = 42, }: PlayerStatsProps) { const [hpPercentage, setHpPercentage] = useState(0); const [xpPercentage, setXpPercentage] = useState(0); useEffect(() => { // Animate HP bar const hpTimer = setTimeout(() => { setHpPercentage((hp / maxHp) * 100); }, 100); // Animate XP bar const xpTimer = setTimeout(() => { setXpPercentage((xp / maxXp) * 100); }, 200); return () => { clearTimeout(hpTimer); clearTimeout(xpTimer); }; }, [hp, maxHp, xp, maxXp]); const hpColor = hpPercentage > 60 ? "from-green-600 to-green-700" : hpPercentage > 30 ? "from-yellow-600 to-orange-700" : "from-red-700 to-red-900"; return (