import { useState } from 'react'; export default function UploadImageModal({ isOpen, onClose, onUpload, currentImage }) { const [uploadMethod, setUploadMethod] = useState('url'); // 'url' or 'file' const [imageUrl, setImageUrl] = useState(currentImage || ''); const [dragActive, setDragActive] = useState(false); const [uploading, setUploading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); if (!imageUrl.trim()) return; setUploading(true); try { await onUpload(imageUrl); onClose(); } catch (error) { console.error('Upload failed:', error); } finally { setUploading(false); } }; const handleDrag = (e) => { e.preventDefault(); e.stopPropagation(); if (e.type === "dragenter" || e.type === "dragover") { setDragActive(true); } else if (e.type === "dragleave") { setDragActive(false); } }; const handleDrop = (e) => { e.preventDefault(); e.stopPropagation(); setDragActive(false); if (e.dataTransfer.files && e.dataTransfer.files[0]) { handleFileUpload(e.dataTransfer.files[0]); } }; const handleFileUpload = (file) => { if (file.type.startsWith('image/')) { const reader = new FileReader(); reader.onload = (e) => { setImageUrl(e.target.result); setUploadMethod('file'); }; reader.readAsDataURL(file); } }; const handleFileInput = (e) => { if (e.target.files && e.target.files[0]) { handleFileUpload(e.target.files[0]); } }; if (!isOpen) return null; return (