'use client' import { useEffect, useState } from 'react' import { Calendar } from '@/components/ui/calendar' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' import { loadHabitsData } from '@/app/actions/data' import { Habit } from '@/lib/types' export default function HabitCalendar() { const [selectedDate, setSelectedDate] = useState(new Date()) const [habits, setHabits] = useState([]) useEffect(() => { fetchHabitsData() }, []) const fetchHabitsData = async () => { const data = await loadHabitsData() setHabits(data.habits) } const getHabitsForDate = (date: Date) => { const dateString = date.toISOString().split('T')[0] return habits.filter(habit => habit.completions.includes(dateString) ) } return (

Habit Calendar

Calendar getHabitsForDate(date).length > 0, }} modifiersClassNames={{ completed: 'bg-green-100 text-green-800 font-bold', }} /> {selectedDate ? ( <>Habits for {selectedDate.toLocaleDateString()} ) : ( 'Select a date' )} {selectedDate && (
    {habits.map((habit) => { const isCompleted = getHabitsForDate(selectedDate).some(h => h.id === habit.id) return (
  • {habit.name} {isCompleted ? ( Completed ) : ( Not Completed )}
  • ) })}
)}
) }