'use client' import { Habit } from '@/lib/types' import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { d2s, getNow, t2d, getCompletedHabitsForDate } from '@/lib/utils' import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts' import { useAtom } from 'jotai' import { settingsAtom } from '@/lib/atoms' interface HabitStreakProps { habits: Habit[] } export default function HabitStreak({ habits }: HabitStreakProps) { const [settings] = useAtom(settingsAtom) // Get the last 7 days of data const dates = Array.from({ length: 7 }, (_, i) => { const d = getNow({ timezone: settings.system.timezone }); return d2s({ dateTime: d.minus({ days: i }), format: 'yyyy-MM-dd', timezone: settings.system.timezone }); }).reverse() const completions = dates.map(date => { const completedCount = getCompletedHabitsForDate({ habits, date: t2d({ timestamp: date, timezone: settings.system.timezone }), timezone: settings.system.timezone }).length; return { date, completed: completedCount }; }); return ( Daily Habit Completion Streak
[`${value} habits`, 'Completed']} />
) }