@@ -36,6 +36,7 @@ struct POSSettingsHardwareDetailView: View {
3636 }
3737
3838 var body : some View {
39+ @Bindable var posModel = posModel
3940 NavigationStack ( path: $navigationPath) {
4041 POSPageHeaderView ( title: Localization . hardwareTitle)
4142 . foregroundColor ( . posSurface)
@@ -81,6 +82,17 @@ struct POSSettingsHardwareDetailView: View {
8182 scannersView
8283 }
8384 }
85+ . posModal ( item: $posModel. cardPresentPaymentOnboardingViewContainer, onDismiss: {
86+ // TODO: Dismissal
87+ } , content: { onboardingViewContainer in
88+ paymentsOnboardingView ( onboardingViewContainer)
89+ } )
90+ . posModal ( item: $posModel. cardPresentPaymentAlertViewModel, onDismiss: {
91+ // TODO: Dismissal
92+ } , content: { alertType in
93+ PointOfSaleCardPresentPaymentAlert ( alertType: alertType)
94+ . posInteractiveDismissDisabled ( alertType. isDismissDisabled)
95+ } )
8496 . posModal ( isPresented: $showBarcodeScanningSetupModal) {
8597 POSBarcodeScannerSetup ( isPresented: $showBarcodeScanningSetupModal, analytics: analytics)
8698 }
@@ -261,6 +273,21 @@ private extension POSSettingsHardwareDetailView {
261273 }
262274}
263275
276+ // MARK: - Reader connection
277+ private extension POSSettingsHardwareDetailView {
278+ func paymentsOnboardingView( _ onboardingViewContainer: CardPresentPaymentOnboardingViewContainer ) -> some View {
279+ let viewModel = PointOfSaleCardPresentPaymentOnboardingViewModel ( onboardingViewContainer: onboardingViewContainer, onDismissTap: {
280+ // TODO: Handle dismissal
281+ } )
282+ return PointOfSaleCardPresentPaymentOnboardingView ( viewModel: viewModel)
283+ . onAppear {
284+ // TODO: Do we need to distinguish here for tracking?
285+ // posModel.trackCardPaymentsOnboardingShown()
286+ }
287+ }
288+ }
289+
290+
264291// MARK: - Navigation
265292private extension POSSettingsHardwareDetailView {
266293 enum HardwareDestination : Identifiable , CaseIterable {
0 commit comments