Skip to content

Commit 927300e

Browse files
committed
14869 Remove posModel ObservableObject conformance
Now that we use `Observation` on the POS aggregate model, we should inject/fetch it with @Environment and use @State to hold it.
1 parent 6374efc commit 927300e

13 files changed

+27
-26
lines changed

WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ protocol PointOfSaleAggregateModelProtocol {
3939
}
4040

4141
@available(iOS 17.0, *)
42-
@Observable final class PointOfSaleAggregateModel: ObservableObject, PointOfSaleAggregateModelProtocol {
42+
@Observable final class PointOfSaleAggregateModel: PointOfSaleAggregateModelProtocol {
4343
private(set) var orderStage: PointOfSaleOrderStage = .building
4444

4545
private(set) var cardReaderConnectionStatus: CardPresentPaymentReaderConnectionStatus = .disconnected

WooCommerce/Classes/POS/Presentation/CardReaderConnection/CardReaderConnectionStatusView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import SwiftUI
33
@available(iOS 17.0, *)
44
struct CardReaderConnectionStatusView: View {
55
@Environment(\.posBackgroundAppearance) var backgroundAppearance
6-
@EnvironmentObject var posModel: PointOfSaleAggregateModel
6+
@Environment(PointOfSaleAggregateModel.self) private var posModel
77
@ScaledMetric private var scale: CGFloat = 1.0
88
@Environment(\.isEnabled) var isEnabled
99

WooCommerce/Classes/POS/Presentation/CartView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import SwiftUI
22

33
@available(iOS 17.0, *)
44
struct CartView: View {
5-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
5+
@Environment(PointOfSaleAggregateModel.self) private var posModel
66
private let viewHelper = CartViewHelper()
77

88
@Environment(\.floatingControlAreaSize) var floatingControlAreaSize: CGSize
@@ -266,6 +266,6 @@ private extension CartView {
266266
cardPresentPaymentService: CardPresentPaymentPreviewService(),
267267
orderController: PointOfSalePreviewOrderController())
268268
return CartView()
269-
.environmentObject(posModel)
269+
.environment(posModel)
270270
}
271271
#endif

WooCommerce/Classes/POS/Presentation/Item Selector/ChildItemList.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Yosemite
66
struct ChildItemList: View {
77
private let parentItem: POSItem
88
private let title: String
9-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
9+
@Environment(PointOfSaleAggregateModel.self) private var posModel
1010
@Environment(\.dismiss) private var dismiss
1111

1212
private var state: ItemListState {
@@ -167,7 +167,7 @@ private extension ChildItemList {
167167
cardPresentPaymentService: CardPresentPaymentPreviewService(),
168168
orderController: PointOfSalePreviewOrderController())
169169
return ChildItemList(parentItem: parentItem, title: parentProduct.name)
170-
.environmentObject(posModel)
170+
.environment(posModel)
171171
}
172172

173173
@available(iOS 17.0, *)
@@ -191,7 +191,7 @@ private extension ChildItemList {
191191
cardPresentPaymentService: CardPresentPaymentPreviewService(),
192192
orderController: PointOfSalePreviewOrderController())
193193
return ChildItemList(parentItem: parentItem, title: parentProduct.name)
194-
.environmentObject(posModel)
194+
.environment(posModel)
195195
}
196196

197197
#endif

WooCommerce/Classes/POS/Presentation/Item Selector/ItemList.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import struct Yosemite.POSVariableParentProduct
77
@available(iOS 17.0, *)
88
struct ItemList<HeaderView: View>: View {
99
@Environment(\.floatingControlAreaSize) private var floatingControlAreaSize: CGSize
10-
@EnvironmentObject var posModel: PointOfSaleAggregateModel
10+
@Environment(PointOfSaleAggregateModel.self) private var posModel
1111
@StateObject private var infiniteScrollTriggerDeterminer = ThresholdInfiniteScrollTriggerDeterminer()
1212

1313
let state: ItemListState
@@ -80,7 +80,7 @@ private enum Constants {
8080
private struct ItemListRow: View {
8181
let item: POSItem
8282
let analytics: Analytics = ServiceLocator.analytics
83-
@EnvironmentObject var posModel: PointOfSaleAggregateModel
83+
@Environment(PointOfSaleAggregateModel.self) private var posModel
8484

8585
var body: some View {
8686
switch item {
@@ -156,7 +156,7 @@ private extension ItemListRow {
156156
cardPresentPaymentService: CardPresentPaymentPreviewService(),
157157
orderController: PointOfSalePreviewOrderController())
158158
ItemList(state: .loading([]))
159-
.environmentObject(posModel)
159+
.environment(posModel)
160160
}
161161

162162
#endif

WooCommerce/Classes/POS/Presentation/ItemListView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import protocol Yosemite.POSOrderableItem
66
struct ItemListView: View {
77
@Environment(\.dynamicTypeSize) private var dynamicTypeSize
88

9-
@EnvironmentObject var posModel: PointOfSaleAggregateModel
9+
@Environment(PointOfSaleAggregateModel.self) private var posModel
1010

1111
@State private var showSimpleProductsModal: Bool = false
1212
private var itemListState: ItemListState {
@@ -323,7 +323,7 @@ private extension ItemListView {
323323
cardPresentPaymentService: CardPresentPaymentPreviewService(),
324324
orderController: PointOfSalePreviewOrderController())
325325
return ItemListView()
326-
.environmentObject(posModel)
326+
.environment(posModel)
327327
}
328328

329329
@available(iOS 17.0, *)
@@ -333,7 +333,7 @@ private extension ItemListView {
333333
cardPresentPaymentService: CardPresentPaymentPreviewService(),
334334
orderController: PointOfSalePreviewOrderController())
335335
return ItemListView()
336-
.environmentObject(posModel)
336+
.environment(posModel)
337337
}
338338

339339
#endif

WooCommerce/Classes/POS/Presentation/POSFloatingControlView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import SwiftUI
33
@available(iOS 17.0, *)
44
struct POSFloatingControlView: View {
55
@Environment(\.posBackgroundAppearance) var backgroundAppearance
6-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
6+
@Environment(PointOfSaleAggregateModel.self) private var posModel
77
@Environment(\.colorScheme) var colorScheme
88
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
99
@Binding private var showExitPOSModal: Bool

WooCommerce/Classes/POS/Presentation/PaymentButtons.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import SwiftUI
22

33
@available(iOS 17.0, *)
44
struct PaymentsActionButtons: View {
5-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
5+
@Environment(PointOfSaleAggregateModel.self) private var posModel
66
@Binding var isShowingSendReceiptView: Bool
77
@Binding private(set) var isShowingReceiptNotEligibleBanner: Bool
88

@@ -112,6 +112,6 @@ private extension PaymentsActionButtons {
112112
cardPresentPaymentService: CardPresentPaymentPreviewService(),
113113
orderController: PointOfSalePreviewOrderController())
114114
PaymentsActionButtons(isShowingSendReceiptView: .constant(false), isShowingReceiptNotEligibleBanner: .constant(true))
115-
.environmentObject(posModel)
115+
.environment(posModel)
116116
}
117117
#endif

WooCommerce/Classes/POS/Presentation/PointOfSaleCollectCashView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import SwiftUI
44
struct PointOfSaleCollectCashView: View {
55
@Environment(\.colorScheme) var colorScheme
66
@Environment(\.dynamicTypeSize) var dynamicTypeSize
7-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
7+
@Environment(PointOfSaleAggregateModel.self) private var posModel
88
@FocusState private var isTextFieldFocused: Bool
99

1010
private let viewHelper = CollectCashViewHelper()
@@ -230,6 +230,6 @@ private extension PointOfSaleCollectCashView {
230230
cardPresentPaymentService: CardPresentPaymentPreviewService(),
231231
orderController: PointOfSalePreviewOrderController())
232232
PointOfSaleCollectCashView(orderTotal: "$1.23")
233-
.environmentObject(posModel)
233+
.environment(posModel)
234234
}
235235
#endif

WooCommerce/Classes/POS/Presentation/PointOfSaleDashboardView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import SwiftUI
22

33
@available(iOS 17.0, *)
44
struct PointOfSaleDashboardView: View {
5-
@EnvironmentObject private var posModel: PointOfSaleAggregateModel
5+
@Environment(PointOfSaleAggregateModel.self) private var posModel
66
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
77

88
@State private var showExitPOSModal: Bool = false
@@ -11,6 +11,7 @@ struct PointOfSaleDashboardView: View {
1111
@State private var floatingSize: CGSize = .zero
1212

1313
var body: some View {
14+
@Bindable var posModel = posModel
1415
ZStack(alignment: .bottomLeading) {
1516
if case .regular = horizontalSizeClass {
1617
switch posModel.itemsViewState.containerState {

0 commit comments

Comments
 (0)