import React, { useRef, useEffect, useState } from "react"; import styles from "./ItemType.module.css"; import { Coffee, CupSoda, CakeSlice, Utensils, Grid2X2, Plus } from 'lucide-react'; 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); }; const formatName = (val) => { if (!val || typeof val !== 'string') return val; return val .toLowerCase() .replace(/\b\w/g, (c) => c.toUpperCase()); }; const iconImageUrl = imageUrl === 'uploads/assets/All.png' ? 'icon:all' : imageUrl; return (