Skip to content

Commit 2409e76

Browse files
committed
Add callback closure to NewOrderViewModel
1 parent 39d7fdd commit 2409e76

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Creation/FlowCoordinator/AddOrderCoordinator.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ private extension AddOrderCoordinator {
8686
///
8787
func presentNewOrderController() {
8888
let viewModel = NewOrderViewModel(siteID: siteID)
89+
viewModel.onOrderCreated = onOrderCreated
90+
8991
let viewController = NewOrderHostingController(viewModel: viewModel)
9092
viewController.hidesBottomBarWhenPushed = true
9193
navigationController.pushViewController(viewController, animated: true)

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ final class NewOrderViewModel: ObservableObject {
4141
///
4242
@Published var shouldShowOrderStatusList: Bool = false
4343

44+
/// Assign this closure to be notified when a new order is created
45+
///
46+
var onOrderCreated: (Order) -> Void = { _ in }
47+
4448
/// Status Results Controller.
4549
///
4650
private lazy var statusResultsController: ResultsController<StorageOrderStatus> = {
@@ -83,9 +87,10 @@ final class NewOrderViewModel: ObservableObject {
8387
self.performingNetworkRequest = false
8488

8589
switch result {
86-
case .success:
90+
case .success(let newOrder):
8791
// TODO: Handle newly created order / remove success logging
8892
DDLogInfo("New order created successfully!")
93+
self.onOrderCreated(newOrder)
8994
case .failure(let error):
9095
self.presentNotice = .error
9196
DDLogError("⛔️ Error creating new order: \(error)")

0 commit comments

Comments
 (0)