'use client'; import { useState } from 'react'; import ImageUpload from '@/components/image-upload'; import RichTextEditor from '@/components/RichTextEditor'; interface WishlistFormData { name: string; slug: string; description: string; preferences: string; imageUrl: string; isPublic: boolean; } interface CreateWishlistModalProps { isOpen: boolean; onClose: () => void; onCreate: (data: WishlistFormData) => Promise; error?: string; } export default function CreateWishlistModal({ isOpen, onClose, onCreate, error, }: CreateWishlistModalProps) { const [formData, setFormData] = useState({ name: '', slug: '', description: '', preferences: '', imageUrl: '', isPublic: true, }); const [isCreating, setIsCreating] = useState(false); const [isImageUploading, setIsImageUploading] = useState(false); const handleNameChange = (name: string) => { setFormData((prev) => ({ ...prev, name, slug: name .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/^-|-$/g, ''), })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsCreating(true); try { await onCreate(formData); setFormData({ name: '', slug: '', description: '', preferences: '', imageUrl: '', isPublic: true }); } finally { setIsCreating(false); } }; const handleClose = () => { setFormData({ name: '', slug: '', description: '', preferences: '', imageUrl: '', isPublic: true }); onClose(); }; if (!isOpen) return null; return (

Create New Wishlist

{error && (
{error}
)}
handleNameChange(e.target.value)} />
setFormData((prev) => ({ ...prev, slug: e.target.value })) } />