export interface ExperienceBarProps { level: number; current: number; required: number; } function experiencePercent(current: number, required: number): number { if (!Number.isFinite(current) || !Number.isFinite(required) || required <= 0) return 100; return Math.max(0, Math.min(100, (current / required) * 100)); } export function ExperienceBar({ level, current, required }: ExperienceBarProps) { const atCap = required <= 0; const percent = experiencePercent(current, required); return (
Level {level} {atCap ? "Maximum level" : `${Math.round(current)} / ${Math.round(required)} XP`}
); }