import React, { useState, useCallback } from 'react'; import PokemonCard from './PokemonCard'; const LocalDropZone = () => { const [dragActive, setDragActive] = useState(false); const [cards, setCards] = useState([]); const handleDrag = useCallback((e) => { e.preventDefault(); e.stopPropagation(); }, []); const handleDragEnter = useCallback((e) => { e.preventDefault(); e.stopPropagation(); setDragActive(true); }, []); const handleDragLeave = useCallback((e) => { e.preventDefault(); e.stopPropagation(); setDragActive(false); }, []); const handleDragOver = useCallback((e) => { e.preventDefault(); e.stopPropagation(); e.dataTransfer.dropEffect = 'copy'; }, []); const handleDrop = useCallback((e) => { e.preventDefault(); e.stopPropagation(); setDragActive(false); const files = e.dataTransfer.files; if (files && files.length > 0) { Array.from(files).forEach(file => { if (file.type.startsWith('image/')) { const imageUrl = URL.createObjectURL(file); const newCard = { id: Math.random().toString(36).substr(2, 9), name: file.name.replace(/\.[^/.]+$/, ""), image: imageUrl, type: 'custom', size: (file.size / 1024).toFixed(2) + ' KB' }; setCards(prevCards => [...prevCards, newCard]); } }); } }, []); const handleFileSelect = (e) => { const files = e.target.files; if (files && files.length > 0) { Array.from(files).forEach(file => { if (file.type.startsWith('image/')) { const imageUrl = URL.createObjectURL(file); const newCard = { id: Math.random().toString(36).substr(2, 9), name: file.name.replace(/\.[^/.]+$/, ""), image: imageUrl, type: 'custom', size: (file.size / 1024).toFixed(2) + ' KB' }; setCards(prevCards => [...prevCards, newCard]); } }); } }; const handleRemoveCard = (id) => { setCards(prevCards => prevCards.filter(card => card.id !== id)); }; return (

Pokemon Card Drop Monitor

Drag and drop images to create custom Pokemon cards

{dragActive ? 'Drop images here!' : 'Drag & Drop images here, or click to upload'}

Supports PNG, JPG, GIF, WEBP

{cards.length === 0 && (

No cards added yet. Start dropping images above!

)}
{cards.map(card => (
))}
); }; export default LocalDropZone;