import { todayLocalDay } from '../../lib/formatters'; import type { DailyRollup } from '../../types/stats'; interface QuickStatsProps { rollups: DailyRollup[]; } export function QuickStats({ rollups }: QuickStatsProps) { const daysWithActivity = new Set( rollups.filter((r) => r.totalActiveMin > 0).map((r) => r.rollupDayOrMonth), ); const today = todayLocalDay(); const streakStart = daysWithActivity.has(today) ? today : today - 1; let streak = 0; for (let d = streakStart; daysWithActivity.has(d); d--) { streak++; } const weekStart = today - 6; const weekRollups = rollups.filter((r) => r.rollupDayOrMonth >= weekStart); const weekMinutes = weekRollups.reduce((sum, r) => sum + r.totalActiveMin, 0); const weekCards = weekRollups.reduce((sum, r) => sum + r.totalCards, 0); const avgMinPerDay = Math.round(weekMinutes / 7); return (

Quick Stats

Streak {streak} day{streak !== 1 ? 's' : ''}
Avg/day this week {avgMinPerDay}m
Cards this week {weekCards}
); }