diff --git a/frontend/src/components/domain/unified-wizard/wizards/CustomerOrderWizard.tsx b/frontend/src/components/domain/unified-wizard/wizards/CustomerOrderWizard.tsx index 3a226ba0..7e15dd14 100644 --- a/frontend/src/components/domain/unified-wizard/wizards/CustomerOrderWizard.tsx +++ b/frontend/src/components/domain/unified-wizard/wizards/CustomerOrderWizard.tsx @@ -46,18 +46,30 @@ const CustomerSelectionStep: React.FC = ({ data, onDataChange } fetchCustomers(); }, []); - // Sync with parent wizard state in real-time - useEffect(() => { + // Update parent whenever customer selection changes + const handleCustomerChange = (newCustomer: any, newShowForm: boolean) => { + setSelectedCustomer(newCustomer); + setShowNewCustomerForm(newShowForm); onDataChange({ ...data, - customer: selectedCustomer, - showNewCustomerForm, - newCustomerName: newCustomer.name, - newCustomerType: newCustomer.type, - newCustomerPhone: newCustomer.phone, - newCustomerEmail: newCustomer.email, + customer: newCustomer, + showNewCustomerForm: newShowForm, }); - }, [selectedCustomer, showNewCustomerForm, newCustomer]); + }; + + // Update new customer data + const handleNewCustomerChange = (updates: any) => { + const updated = { ...newCustomer, ...updates }; + setNewCustomer(updated); + onDataChange({ + ...data, + showNewCustomerForm, + newCustomerName: updated.name, + newCustomerType: updated.type, + newCustomerPhone: updated.phone, + newCustomerEmail: updated.email, + }); + }; const fetchCustomers = async () => { if (!currentTenant?.id) return; @@ -84,8 +96,7 @@ const CustomerSelectionStep: React.FC = ({ data, onDataChange } ); const handleSelectCustomer = (customer: any) => { - setSelectedCustomer(customer); - setShowNewCustomerForm(false); + handleCustomerChange(customer, false); }; return ( @@ -188,7 +199,7 @@ const CustomerSelectionStep: React.FC = ({ data, onDataChange } {/* Create New Customer Button */}