import { useRef } from "react"; import { Upload, X, ImagePlus } from "lucide-react"; import { isValidImageFile, isFileSizeValid, formatFileSize } from "../utils/formatters"; export default function UploadPanel({ onFileSelect, selectedFile, previewUrl, onReset }) { const fileInputRef = useRef(null); function handleFileChange(e) { const file = e.target.files?.[0]; if (!file) return; if (!isValidImageFile(file)) { alert("File harus berupa gambar JPG, PNG, JPEG, atau WEBP."); return; } if (!isFileSizeValid(file)) { alert("Ukuran gambar maksimal 10MB."); return; } onFileSelect(file); } function handleDrop(e) { e.preventDefault(); const file = e.dataTransfer.files?.[0]; if (!file) return; if (!isValidImageFile(file)) { alert("File harus berupa gambar JPG, PNG, JPEG, atau WEBP."); return; } if (!isFileSizeValid(file)) { alert("Ukuran gambar maksimal 10MB."); return; } onFileSelect(file); } function handleDragOver(e) { e.preventDefault(); } return (
Klik atau seret gambar ke sini
JPG, JPEG, PNG, WEBP • Maks 10MB