@@ -2,11 +2,15 @@ import SwiftUI
22
33@available ( iOS 17 . 0 , * )
44struct PointOfSaleEntryPointView : View {
5- @State private var posModel : PointOfSaleAggregateModel
5+ @State private var posModel : PointOfSaleAggregateModel ?
66 @StateObject private var posModalManager = POSModalManager ( )
77 @Environment ( \. horizontalSizeClass) private var horizontalSizeClass
88
99 private let onPointOfSaleModeActiveStateChange : ( ( Bool ) -> Void )
10+ private let itemsController : PointOfSaleItemsControllerProtocol
11+ private let cardPresentPaymentService : CardPresentPaymentFacade
12+ private let orderController : PointOfSaleOrderControllerProtocol
13+ private let collectOrderPaymentAnalyticsTracker : POSCollectOrderPaymentAnalyticsTracking
1014
1115 init ( itemsController: PointOfSaleItemsControllerProtocol ,
1216 onPointOfSaleModeActiveStateChange: @escaping ( ( Bool ) -> Void ) ,
@@ -15,26 +19,36 @@ struct PointOfSaleEntryPointView: View {
1519 collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking ) {
1620 self . onPointOfSaleModeActiveStateChange = onPointOfSaleModeActiveStateChange
1721
18- let posModel = PointOfSaleAggregateModel (
19- itemsController: itemsController,
20- cardPresentPaymentService: cardPresentPaymentService,
21- orderController: orderController,
22- collectOrderPaymentAnalyticsTracker: collectOrderPaymentAnalyticsTracker)
23-
24- self . _posModel = State ( wrappedValue: posModel)
22+ self . itemsController = itemsController
23+ self . cardPresentPaymentService = cardPresentPaymentService
24+ self . orderController = orderController
25+ self . collectOrderPaymentAnalyticsTracker = collectOrderPaymentAnalyticsTracker
2526 }
2627
2728 var body : some View {
28- PointOfSaleDashboardView ( )
29+ Group {
30+ if let posModel = posModel {
31+ PointOfSaleDashboardView ( )
32+ . environment ( posModel)
33+ } else {
34+ PointOfSaleLoadingView ( )
35+ }
36+ }
37+ . task {
38+ posModel = PointOfSaleAggregateModel (
39+ itemsController: itemsController,
40+ cardPresentPaymentService: cardPresentPaymentService,
41+ orderController: orderController,
42+ collectOrderPaymentAnalyticsTracker: collectOrderPaymentAnalyticsTracker)
43+ }
2944 . environmentObject ( posModalManager)
30- . environment ( posModel)
3145 . onAppear {
3246 onPointOfSaleModeActiveStateChange ( true )
3347 }
3448 . onDisappear {
3549 onPointOfSaleModeActiveStateChange ( false )
3650 posModalManager. onDisappear ( )
37- posModel. pointOfSaleClosed ( )
51+ posModel? . pointOfSaleClosed ( )
3852 }
3953 }
4054}
0 commit comments