import React, { useRef, useEffect, useState } from "react"; import styles from "./ItemType.module.css"; export default function ItemType({ onClick, onCreate, blank, name, imageUrl, selected, rectangular, }) { const inputRef = useRef(null); const [namee, setName] = useState(name); const [selectedImage, setSelectedImage] = useState(null); const [previewUrl, setPreviewUrl] = useState(imageUrl); // Effect to update local state when name prop changes useEffect(() => { setName(name); }, [name]); useEffect(() => { if (blank && inputRef.current) { inputRef.current.focus(); } }, [blank]); useEffect(() => { if (selectedImage) { const reader = new FileReader(); reader.onloadend = () => { onClick(reader.result, selectedImage); }; reader.readAsDataURL(selectedImage); } else { setPreviewUrl(imageUrl); } }, [selectedImage, imageUrl]); const handleImageChange = (e) => { setSelectedImage(e.target.files[0]); console.log(e.target.files[0]); e.target.value = null; // This clears the input }; const handleNameChange = (e) => { setName(e.target.value); }; const handleCreate = async () => { if (!selectedImage) { console.error("No image selected"); return; } onCreate(namee, selectedImage); }; return (
onClick(imageUrl)) : onClick } className={styles["item-type-rect"]} style={{ top: selected ? "-10px" : "initial", }} > {namee} {blank && rectangular && (
)}
{!rectangular && !blank && ( )}
); }