import { useEffect, useState } from "react"; import "../../styles/components/EditItemModal.css"; import ClassificationSection from "../forms/ClassificationSection"; import AddImageModal from "./AddImageModal"; export default function EditItemModal({ item, onSave, onCancel, onImageUpdate }) { const [itemName, setItemName] = useState(item.item_name || ""); const [quantity, setQuantity] = useState(item.quantity || 1); const [itemType, setItemType] = useState(""); const [itemGroup, setItemGroup] = useState(""); const [zone, setZone] = useState(""); const [loading, setLoading] = useState(false); const [showImageModal, setShowImageModal] = useState(false); // Load existing classification useEffect(() => { if (item.classification) { setItemType(item.classification.item_type || ""); setItemGroup(item.classification.item_group || ""); setZone(item.classification.zone || ""); } }, [item]); const handleItemTypeChange = (newType) => { setItemType(newType); setItemGroup(""); // Reset group when type changes }; const handleSave = async () => { if (!itemName.trim()) { alert("Item name is required"); return; } if (quantity < 1) { alert("Quantity must be at least 1"); return; } // If classification fields are filled, validate them if (itemType && !itemGroup) { alert("Please select an item group"); return; } setLoading(true); try { const classification = itemType ? { item_type: itemType, item_group: itemGroup, zone: zone || null } : null; await onSave(item.id, itemName, quantity, classification); } catch (error) { console.error("Failed to save:", error); alert("Failed to save changes"); } finally { setLoading(false); } }; const handleImageUpload = async (imageFile) => { if (onImageUpdate) { try { await onImageUpdate(item.id, itemName, quantity, imageFile); setShowImageModal(false); } catch (error) { console.error("Failed to upload image:", error); alert("Failed to upload image"); } } }; return (
e.stopPropagation()}>

Edit Item

setItemName(e.target.value)} className="edit-modal-input" />
setQuantity(parseInt(e.target.value))} className="edit-modal-input" />
{showImageModal && ( setShowImageModal(false)} onAddImage={handleImageUpload} /> )}
); }