import { useState, useEffect } from 'react' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Textarea } from '@/components/ui/textarea' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Habit } from '@/lib/types' interface AddEditHabitModalProps { isOpen: boolean onClose: () => void onSave: (habit: Omit) => void habit?: Habit | null } export default function AddEditHabitModal({ isOpen, onClose, onSave, habit }: AddEditHabitModalProps) { const [name, setName] = useState('') const [description, setDescription] = useState('') const [frequency, setFrequency] = useState<'daily' | 'weekly' | 'monthly'>('daily') const [coinReward, setCoinReward] = useState(1) useEffect(() => { if (habit) { setName(habit.name) setDescription(habit.description) setFrequency(habit.frequency) setCoinReward(habit.coinReward) } else { setName('') setDescription('') setFrequency('daily') setCoinReward(1) } }, [habit]) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() onSave({ name, description, frequency, coinReward, completions: habit?.completions || [] }) } return ( {habit ? 'Edit Habit' : 'Add New Habit'}
setName(e.target.value)} className="col-span-3" required />