diff --git a/admin-spa/src/routes/Products/partials/ProductFormTabbed.tsx b/admin-spa/src/routes/Products/partials/ProductFormTabbed.tsx index 4cf6965..ca7f21a 100644 --- a/admin-spa/src/routes/Products/partials/ProductFormTabbed.tsx +++ b/admin-spa/src/routes/Products/partials/ProductFormTabbed.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { useQuery } from '@tanstack/react-query'; import { api } from '@/lib/api'; import { __ } from '@/lib/i18n'; @@ -76,6 +76,31 @@ export function ProductFormTabbed({ const [submitting, setSubmitting] = useState(false); const [activeTab, setActiveTab] = useState('general'); + // Update form state when initial data changes (for edit mode) + useEffect(() => { + if (initial && mode === 'edit') { + setName(initial.name || ''); + setType(initial.type || 'simple'); + setStatus(initial.status || 'publish'); + setDescription(initial.description || ''); + setShortDescription(initial.short_description || ''); + setSku(initial.sku || ''); + setRegularPrice(initial.regular_price || ''); + setSalePrice(initial.sale_price || ''); + setManageStock(initial.manage_stock || false); + setStockQuantity(initial.stock_quantity?.toString() || ''); + setStockStatus(initial.stock_status || 'instock'); + setSelectedCategories(initial.categories || []); + setSelectedTags(initial.tags || []); + setImages(initial.images || []); + setAttributes(initial.attributes || []); + setVariations(initial.variations || []); + setVirtual(initial.virtual || false); + setDownloadable(initial.downloadable || false); + setFeatured(initial.featured || false); + } + }, [initial, mode]); + // Fetch categories const categoriesQ = useQuery({ queryKey: ['product-categories'],