import { useOverview } from '../../hooks/useOverview'; import { useStreakCalendar } from '../../hooks/useStreakCalendar'; import { HeroStats } from './HeroStats'; import { StreakCalendar } from './StreakCalendar'; import { RecentSessions } from './RecentSessions'; import { TrendChart } from '../trends/TrendChart'; import { buildOverviewSummary, buildStreakCalendar } from '../../lib/dashboard-data'; import { formatNumber } from '../../lib/formatters'; export function OverviewTab() { const { data, sessions, loading, error } = useOverview(); const { calendar, loading: calLoading } = useStreakCalendar(90); if (loading) return
Loading...
; if (error) return
Error: {error}
; if (!data) return null; const summary = buildOverviewSummary(data); const streakData = buildStreakCalendar(calendar); const showTrackedCardNote = summary.totalTrackedCards === 0 && summary.totalSessions > 0; return (
{!calLoading && }

Tracking Snapshot

{showTrackedCardNote && (
No tracked card-add events in the current immersion DB yet. New cards mined after this fix will show here.
)}
Total Sessions
{formatNumber(summary.totalSessions)}
Episodes Today
{formatNumber(summary.episodesToday)}
All-Time Hours
{formatNumber(summary.allTimeHours)}
Active Days
{formatNumber(summary.activeDays)}
Cards Mined
{formatNumber(summary.totalTrackedCards)}
Episodes Completed
{formatNumber(summary.totalEpisodesWatched)}
Anime Completed
{formatNumber(summary.totalAnimeCompleted)}
); }