Skip to content

Commit 9b26134

Browse files
committed
Fix a bug that was causing several-readers-found to not connect in order flow
1 parent 9f5de33 commit 9b26134

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

WooCommerce/Classes/ViewRelated/Orders/Order Details/OrderDetailsViewController.swift

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,20 @@ final class OrderDetailsViewController: UIViewController {
6767
///
6868
private var cardReaderAvailableSubscription: Combine.Cancellable? = nil
6969

70+
/// Connection Controller (helps connect readers)
71+
///
72+
private lazy var connectionController: CardReaderConnectionController? = {
73+
guard let siteID = viewModel?.order.siteID else {
74+
return nil
75+
}
76+
77+
return CardReaderConnectionController(
78+
forSiteID: siteID,
79+
knownReadersProvider: CardReaderSettingsKnownReadersStoredList(),
80+
alertsProvider: CardReaderSettingsAlerts()
81+
)
82+
}()
83+
7084
// MARK: - View Lifecycle
7185

7286
/// Create an instance of `Self` from its corresponding storyboard.
@@ -737,12 +751,7 @@ private extension OrderDetailsViewController {
737751
}
738752

739753
private func connectToCardReader() {
740-
let connectionController = CardReaderConnectionController(
741-
forSiteID: viewModel.order.siteID,
742-
knownReadersProvider: CardReaderSettingsKnownReadersStoredList(),
743-
alertsProvider: CardReaderSettingsAlerts()
744-
)
745-
connectionController.searchAndConnect(from: self) { _ in
754+
connectionController?.searchAndConnect(from: self) { _ in
746755
/// No need for logic here. Once connected, the connected reader will publish
747756
/// through the `cardReaderAvailableSubscription`
748757
}

0 commit comments

Comments
 (0)