'use client' import { useState } from 'react' import { Plus, ListTodo } from 'lucide-react' import { useAtom } from 'jotai' import { habitsAtom, settingsAtom } from '@/lib/atoms' 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' import { useHabits } from '@/hooks/useHabits' export default function HabitList() { const { saveHabit, deleteHabit } = useHabits() const [habitsData, setHabitsData] = useAtom(habitsAtom) const habits = habitsData.habits const [settings] = useAtom(settingsAtom) 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 })} /> )) )}
{isModalOpen && { setIsModalOpen(false) setEditingHabit(null) }} onSave={async (habit) => { await saveHabit({ ...habit, id: editingHabit?.id }) setIsModalOpen(false) setEditingHabit(null) }} habit={editingHabit} /> } setDeleteConfirmation({ isOpen: false, habitId: null })} onConfirm={async () => { if (deleteConfirmation.habitId) { await 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" />
) }