Update product-modal.tsx
This commit is contained in:
@@ -50,15 +50,25 @@ export const ProductModal: React.FC<ProductModalProps> = ({
|
|||||||
|
|
||||||
// If productData.image is a *URL* (string), show it as a default preview
|
// If productData.image is a *URL* (string), show it as a default preview
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (productData.image && typeof productData.image === "string") {
|
if (productData.image && typeof productData.image === "string" && productData._id) {
|
||||||
setImagePreview(`${process.env.NEXT_PUBLIC_API_URL}/products/${productData._id}/image`);
|
setImagePreview(`${process.env.NEXT_PUBLIC_API_URL}/products/${productData._id}/image`);
|
||||||
|
} else if (productData.image && typeof productData.image === "string") {
|
||||||
|
// Image exists but no ID, this is probably a new product
|
||||||
|
setImagePreview(null);
|
||||||
}
|
}
|
||||||
}, [productData.image]);
|
}, [productData.image, productData._id]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setLocalCategories(categories);
|
setLocalCategories(categories);
|
||||||
}, [categories]);
|
}, [categories]);
|
||||||
|
|
||||||
|
// Reset image state when modal is closed
|
||||||
|
useEffect(() => {
|
||||||
|
if (!open) {
|
||||||
|
setSelectedFile(null);
|
||||||
|
setImagePreview(null);
|
||||||
|
}
|
||||||
|
}, [open]);
|
||||||
|
|
||||||
const handleImageChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
const handleImageChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
const file = e.target.files?.[0];
|
const file = e.target.files?.[0];
|
||||||
|
|||||||
Reference in New Issue
Block a user