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 { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { SmilePlus } from 'lucide-react' import data from '@emoji-mart/data' import Picker from '@emoji-mart/react' import { WishlistItemType } from '@/lib/types' interface AddEditWishlistItemModalProps { isOpen: boolean onClose: () => void onSave: (item: Omit) => void item?: WishlistItemType | null } export default function AddEditWishlistItemModal({ isOpen, onClose, onSave, item }: AddEditWishlistItemModalProps) { const [name, setName] = useState('') const [description, setDescription] = useState('') const [coinCost, setCoinCost] = useState(1) useEffect(() => { if (item) { setName(item.name) setDescription(item.description) setCoinCost(item.coinCost) } else { setName('') setDescription('') setCoinCost(1) } }, [item]) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() onSave({ name, description, coinCost }) } return ( {item ? 'Edit Reward' : 'Add New Reward'}
setName(e.target.value)} className="flex-1" required /> { setName(prev => `${prev}${emoji.native}`) // Focus back on input after selection const input = document.getElementById('name') as HTMLInputElement input?.focus() }} />