diff --git a/client/pages/Roadmap.tsx b/client/pages/Roadmap.tsx index 61843a66..52228597 100644 --- a/client/pages/Roadmap.tsx +++ b/client/pages/Roadmap.tsx @@ -96,6 +96,26 @@ export default function Roadmap() { ); const progress = Math.min(100, Math.round((earnedXp / totalXp) * 100)); + const phaseTotals = useMemo(() => { + const res: Record = {}; + for (const q of QUESTS) { + const key = q.phase; + res[key] = res[key] || { total: 0, earned: 0, count: 0 }; + res[key].total += q.xp; + res[key].count += 1; + if (claimed[q.id]) res[key].earned += q.xp; + } + return res; + }, [claimed]); + + const phaseClaims: Record = useMemo(() => { + const res: Record = {}; + for (const q of QUESTS) { + if (claimed[q.id]) res[q.phase] = (res[q.phase] || 0) + 1; + } + return res; + }, [claimed]); + const toggleClaim = (id: string) => setClaimed((m) => ({ ...m, [id]: !m[id] })); const toggleUnlock = (id: string) => setUnlocked((m) => ({ ...m, [id]: !m[id] }));