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)}
);
}