From 45a87711fbad632f56c7e653b1fba1e2bccf394b Mon Sep 17 00:00:00 2001 From: DeeCee03 Date: Sat, 6 Jun 2026 20:38:09 +0200 Subject: [PATCH] Gestern im Team: pro User nur die neueste Reflexion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Im Dashboard-Feed wird je User nur noch die aktuellste Reflexion als eine Card gezeigt (Dedup über userId, feedRows ist bereits nach Datum absteigend sortiert). Ältere Einträge sieht man weiterhin unter "Ganze Historie". Angezeigter Text ist der Freitext "Sonst noch was?" (reflectionText). Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/api/src/routers/dashboard.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/api/src/routers/dashboard.ts b/apps/api/src/routers/dashboard.ts index 6900721..4027571 100644 --- a/apps/api/src/routers/dashboard.ts +++ b/apps/api/src/routers/dashboard.ts @@ -104,6 +104,15 @@ export const dashboardRouter = router({ }; }); + // „Gestern im Team": pro User nur die neueste Reflexion (feedRows ist nach + // date desc, reflectedAt desc sortiert → erster Treffer je User = aktuellste). + const seenUsers = new Set(); + const feedLatestPerUser = feedRows.filter((r) => { + if (seenUsers.has(r.userId)) return false; + seenUsers.add(r.userId); + return true; + }); + const presentToday = new Set(todayPresence.map((p) => p.userId)); const usersAll = await ctx.db .select({ id: user.id, name: user.name }) @@ -138,7 +147,7 @@ export const dashboardRouter = router({ pflichtMinimumOffen: allProjects .filter((p) => Object.values(p.pflichtMinimumState).some((v) => v === false)) .map((p) => ({ id: p.id, name: p.name, areaId: p.areaId })), - feed: feedRows, + feed: feedLatestPerUser, gestern: previousWerktag(todayDate), }; }),