'use client'; import { useState } from 'react'; import ImageUpload from '@/components/image-upload'; import PurchaseUrlFields from './PurchaseUrlFields'; import { type Item } from '@/lib/api'; interface ItemFormProps { item?: Partial; onSubmit: (item: Partial) => Promise; onCancel: () => void; mode: 'create' | 'edit'; error?: string; } export default function ItemForm({ item, onSubmit, onCancel, mode, error }: ItemFormProps) { const [formData, setFormData] = useState>( item || { name: '', description: '', quantity: 1, imageUrl: '', purchaseUrls: [], } ); const [isImageUploading, setIsImageUploading] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (isSubmitting) return; setIsSubmitting(true); try { await onSubmit(formData); } finally { setIsSubmitting(false); } }; return (
{mode === 'create' ? 'Add New Item' : 'Edit Item'}
{error && (
{error}
)}
setFormData((prev) => ({ ...prev, name: e.target.value })) } />