'use client' import { Habit } from '@/lib/types' import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { d2s, getNow, t2d } from '@/lib/utils' // Removed getCompletedHabitsForDate import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts' import { useAtom } from 'jotai' import { settingsAtom, hasTasksAtom, completedHabitsMapAtom } from '@/lib/atoms' // Added completedHabitsMapAtom interface HabitStreakProps { habits: Habit[] } export default function HabitStreak({ habits }: HabitStreakProps) { const [settings] = useAtom(settingsAtom) const [hasTasks] = useAtom(hasTasksAtom) const [completedHabitsMap] = useAtom(completedHabitsMapAtom) // Use the atom // 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 => { // Get completed habits for the date from the map const completedOnDate = completedHabitsMap.get(date) || []; // Filter the completed list to count habits and tasks const completedHabitsCount = completedOnDate.filter(h => !h.isTask).length; const completedTasksCount = completedOnDate.filter(h => h.isTask).length; return { date, habits: completedHabitsCount, tasks: completedTasksCount }; }); return ( Daily Completion Streak
[`${value} ${name}`, 'Completed']} /> {hasTasks && ( )}
) }