'use client'; import { useEffect, useState } from 'react'; import { BarChart3, TrendingUp } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; interface WeeklyStats { taskCompletionRate: number; habitConsistency: number; totalTimeMinutes: number; } export function WeeklyStatsWidget() { const [stats, setStats] = useState({ taskCompletionRate: 0, habitConsistency: 0, totalTimeMinutes: 0, }); const [loading, setLoading] = useState(true); useEffect(() => { fetchStats(); }, []); async function fetchStats() { try { const response = await fetch('/api/analytics?period=7'); if (response.ok) { const data = await response.json(); setStats(data); } } catch (error) { console.error('Failed to fetch stats:', error); } finally { setLoading(false); } } return ( {loading ? (

Loading...

) : (
Task completion
{stats.taskCompletionRate}%
Habit consistency {stats.habitConsistency}%
Time tracked {Math.round(stats.totalTimeMinutes / 60)}h
)}
); }