'use client'; import { useEffect, useState } from 'react'; import { Flame } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; interface Streak { habit: { name: string }; streak_current: number; } export function HabitStreaksWidget() { const [streaks, setStreaks] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetchStreaks(); }, []); async function fetchStreaks() { try { const response = await fetch('/api/habits/streaks'); if (response.ok) { const data = await response.json(); setStreaks(data.streaks || []); } } catch (error) { console.error('Failed to fetch streaks:', error); } finally { setLoading(false); } } return ( {loading ? (

Loading...

) : streaks.length === 0 ? (

No active streaks

) : (
{streaks.slice(0, 5).map((streak, i) => (
{streak.habit.name} 🔥 {streak.streak_current}
))}
)}
); }