Skip to content

Commit 5388ef9

Browse files
committed
Replace OrderDetails.status with orderSynchronizer.order.status
1 parent eb8763f commit 5388ef9

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ final class NewOrderViewModel: ObservableObject {
134134
performingNetworkRequest
135135
}
136136

137+
/// Defines the current order status.
138+
///
139+
var currentOrderStatus: OrderStatusEnum {
140+
orderSynchronizer.order.status
141+
}
142+
137143
/// Representation of payment data display properties
138144
///
139145
@Published private(set) var paymentDataViewModel = PaymentDataViewModel()
@@ -268,7 +274,6 @@ extension NewOrderViewModel {
268274
/// Type to hold all order detail values
269275
///
270276
struct OrderDetails {
271-
var status: OrderStatusEnum = .pending
272277
var items: [NewOrderItem] = []
273278
var billingAddress: Address?
274279
var shippingAddress: Address?
@@ -279,7 +284,7 @@ extension NewOrderViewModel {
279284
let emptyOrder = Order.empty
280285

281286
func toOrder() -> Order {
282-
emptyOrder.copy(status: status,
287+
emptyOrder.copy(status: .pending,
283288
items: items.map { $0.orderItem },
284289
billingAddress: billingAddress,
285290
shippingAddress: shippingAddress)
@@ -425,10 +430,10 @@ private extension NewOrderViewModel {
425430
/// Updates status badge viewmodel based on status order property.
426431
///
427432
func configureStatusBadgeViewModel() {
428-
$orderDetails
429-
.map { [weak self] orderDetails in
430-
guard let siteOrderStatus = self?.currentSiteStatuses.first(where: { $0.status == orderDetails.status }) else {
431-
return StatusBadgeViewModel(orderStatusEnum: orderDetails.status)
433+
orderSynchronizer.orderPublisher
434+
.map { [weak self] order in
435+
guard let siteOrderStatus = self?.currentSiteStatuses.first(where: { $0.status == order.status }) else {
436+
return StatusBadgeViewModel(orderStatusEnum: order.status)
432437
}
433438
return StatusBadgeViewModel(orderStatus: siteOrderStatus)
434439
}

WooCommerce/Classes/ViewRelated/Orders/Order Creation/StatusSection/OrderStatusSection.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ struct OrderStatusSection: View {
3434
.padding(.trailing, -Layout.linkButtonTrailingPadding) // remove trailing padding to align button title to the side
3535
.accessibilityLabel(Text(Localization.editButtonAccessibilityLabel))
3636
.sheet(isPresented: $viewModel.shouldShowOrderStatusList) {
37-
OrderStatusList(siteID: viewModel.siteID, status: viewModel.orderDetails.status) { newStatus in
37+
OrderStatusList(siteID: viewModel.siteID, status: viewModel.currentOrderStatus) { newStatus in
3838
viewModel.updateOrderStatus(newStatus: newStatus)
3939
}
4040
}

0 commit comments

Comments
 (0)