Skip to content

Commit a25b29c

Browse files
committed
Updates order synchronizer when customer details are provided
1 parent 05be937 commit a25b29c

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/NewOrderViewModel.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,11 @@ final class NewOrderViewModel: ObservableObject {
216216
///
217217
func createOrderAddressFormViewModel() -> CreateOrderAddressFormViewModel {
218218
CreateOrderAddressFormViewModel(siteID: siteID,
219-
addressData: .init(billingAddress: orderDetails.billingAddress,
220-
shippingAddress: orderDetails.shippingAddress),
219+
addressData: .init(billingAddress: orderSynchronizer.order.billingAddress,
220+
shippingAddress: orderSynchronizer.order.shippingAddress),
221221
onAddressUpdate: { [weak self] updatedAddressData in
222-
self?.orderDetails.billingAddress = updatedAddressData.billingAddress
223-
self?.orderDetails.shippingAddress = updatedAddressData.shippingAddress
222+
let input = Self.createAddressesInput(from: updatedAddressData)
223+
self?.orderSynchronizer.setAddresses.send(input)
224224
self?.trackCustomerDetailsAdded()
225225
})
226226
}
@@ -542,6 +542,16 @@ private extension NewOrderViewModel {
542542
analytics.track(event: WooAnalyticsEvent.Orders.orderCreationFailed(errorContext: String(describing: error),
543543
errorDescription: error.localizedDescription))
544544
}
545+
546+
/// Creates an `OrderSyncAddressesInput` type from a `NewOrderAddressData` type.
547+
/// Expects `billing` and `shipping` addresses to exists together,
548+
///
549+
static func createAddressesInput(from data: CreateOrderAddressFormViewModel.NewOrderAddressData) -> OrderSyncAddressesInput? {
550+
guard let billingAddress = data.shippingAddress, let shippingAddress = data.shippingAddress else {
551+
return nil
552+
}
553+
return OrderSyncAddressesInput(billing: billingAddress, shipping: shippingAddress)
554+
}
545555
}
546556

547557
private extension NewOrderViewModel {

0 commit comments

Comments
 (0)