'use client' import { useState } from 'react' import { useHabits } from '@/hooks/useHabits' import { Plus, ListTodo } from 'lucide-react' import EmptyState from './EmptyState' import { Button } from '@/components/ui/button' import HabitItem from './HabitItem' import AddEditHabitModal from './AddEditHabitModal' import ConfirmDialog from './ConfirmDialog' import { Habit } from '@/lib/types' export default function HabitList() { const { habits, addHabit, editHabit, deleteHabit, completeHabit, undoComplete } = useHabits() const [isModalOpen, setIsModalOpen] = useState(false) const [editingHabit, setEditingHabit] = useState(null) const [deleteConfirmation, setDeleteConfirmation] = useState<{ isOpen: boolean, habitId: string | null }>({ isOpen: false, habitId: null }) return (

My Habits

{habits.length === 0 ? (
) : ( habits.map((habit) => ( { setEditingHabit(habit) setIsModalOpen(true) }} onDelete={() => setDeleteConfirmation({ isOpen: true, habitId: habit.id })} onComplete={() => completeHabit(habit)} onUndo={() => undoComplete(habit)} /> )) )}
{ setIsModalOpen(false) setEditingHabit(null) }} onSave={async (habit) => { if (editingHabit) { await editHabit(editingHabit) } else { await addHabit(habit) } setIsModalOpen(false) setEditingHabit(null) }} habit={editingHabit} /> setDeleteConfirmation({ isOpen: false, habitId: null })} onConfirm={() => { if (deleteConfirmation.habitId) { deleteHabit(deleteConfirmation.habitId) } setDeleteConfirmation({ isOpen: false, habitId: null }) }} title="Delete Habit" message="Are you sure you want to delete this habit? This action cannot be undone." confirmText="Delete" />
) }