feat: Erfolge im Feed-Overlay + Profil-Sektion

- getAchievements() im API-Client
- unlocked_achievements aus saveProgress als Overlay-Typ 'achievement'
- ERFOLGE-Sektion im Profil (freigeschaltet/gesperrt), degradiert lautlos ohne Endpoint

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 21:54:02 +02:00
parent 039d2cbbf4
commit 98543979db
5 changed files with 60 additions and 5 deletions

View File

@@ -169,6 +169,11 @@ export default function Feed() {
queued.push({ kind: 'goal', value: res?.daily_goal_ep ?? goalEp })
}
// Neu freigeschaltete Erfolge zuletzt feiern
for (const a of (res?.unlocked_achievements || [])) {
queued.push({ kind: 'achievement', key: a.key, label: a.label, icon: a.icon })
}
progress.current = { level: newLevel, streak: newStreak }
if (queued.length) { setMilestones(q => [...q, ...queued]); playMilestone() }
})