'use client'; import { useState } from 'react'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } 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'; interface Habit { id: string; name: string; } interface HabitCompletionDialogProps { habit: Habit; open: boolean; onOpenChange: (open: boolean) => void; onSubmit: (data: { mood?: number; value?: number; notes?: string }) => void; } const moods = [ { value: 5, label: 'Great' }, { value: 4, label: 'Good' }, { value: 3, label: 'Okay' }, { value: 2, label: 'Meh' }, { value: 1, label: 'Bad' }, ]; export function HabitCompletionDialog({ habit, open, onOpenChange, onSubmit, }: HabitCompletionDialogProps) { const [mood, setMood] = useState(); const [quantity, setQuantity] = useState(); const [notes, setNotes] = useState(''); function handleSubmit() { onSubmit({ mood, value: quantity, notes: notes || undefined, }); setMood(undefined); setQuantity(undefined); setNotes(''); } return ( Log {habit.name} How did it go? (optional — you can skip and just log completion)
{/* Mood picker */}
{moods.map((m) => ( ))}
{/* Quantity */}
setQuantity(e.target.value ? Number(e.target.value) : undefined) } />
{/* Notes */}