-
Notifications
You must be signed in to change notification settings - Fork 109
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Show both message and alert for payment capture error based on the la…
…test design suggestion.
- Loading branch information
Showing
14 changed files
with
182 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
32 changes: 32 additions & 0 deletions
32
...Payments/Connection Alerts/PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
import Foundation | ||
import SwiftUI | ||
|
||
struct PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel { | ||
let title = Localization.title | ||
let image = Image(uiImage: .paymentErrorImage) | ||
let errorDetails = Localization.errorDetails | ||
let cancelButtonTitle = Localization.cancel | ||
} | ||
|
||
private extension PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel { | ||
enum Localization { | ||
static let title = NSLocalizedString( | ||
"pointOfSale.cardPresentPayment.alert.paymentCaptureError.title", | ||
value: "Please check order payment status", | ||
comment: "Title of the alert presented when payment capture fails." | ||
) | ||
|
||
static let errorDetails = NSLocalizedString( | ||
"pointOfSale.cardPresentPayment.alert.paymentCaptureError.errorDetails", | ||
value: "Due to an error from capturing payment and refreshing order, we couldn't load complete order information. " + | ||
"To avoid undercharging or double charging, please check the latest order separately before proceeding.", | ||
comment: "Subtitle of the alert presented when payment capture fails." | ||
) | ||
|
||
static let cancel = NSLocalizedString( | ||
"pointOfSale.cardPresentPayment.alert.paymentCaptureError.cancel.button.title", | ||
value: "I understand that order should be checked", | ||
comment: "Button to dismiss the alert presented when payment capture fails." | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
... Payments/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import Foundation | ||
import enum Yosemite.CardReaderServiceError | ||
|
||
struct PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel { | ||
let title = Localization.title | ||
let message = Localization.message | ||
let cancelButtonViewModel: CardPresentPaymentsModalButtonViewModel | ||
|
||
init(cancelButtonAction: @escaping () -> Void) { | ||
self.cancelButtonViewModel = CardPresentPaymentsModalButtonViewModel( | ||
title: Localization.cancel, | ||
actionHandler: cancelButtonAction) | ||
} | ||
} | ||
|
||
private extension PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel { | ||
enum Localization { | ||
static let title = NSLocalizedString( | ||
"pointOfSale.cardPresent.paymentCaptureError.title", | ||
value: "Payment status unknown", | ||
comment: "Error message. Presented to users after collecting a payment fails from payment capture error on the Point of Sale Checkout" | ||
) | ||
|
||
static let message = NSLocalizedString( | ||
"pointOfSale.cardPresent.paymentCaptureError.message", | ||
value: "Due to an error from capturing payment and refreshing order, we couldn't load complete order information. " + | ||
"Please check the latest order separately.", | ||
comment: "Error message. Presented to users after collecting a payment fails from payment capture error on the Point of Sale Checkout" | ||
) | ||
|
||
static let cancel = NSLocalizedString( | ||
"pointOfSale.cardPresent.paymentCaptureError.cancel.button.title", | ||
value: "I understand that order should be checked", | ||
comment: "Button to dismiss payment capture error message. " + | ||
"Presented to users after collecting a payment fails from payment capture error on the Point of Sale Checkout" | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
...nnection/UI States/Connection Alerts/PointOfSaleCardPresentPaymentCaptureFailedView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import SwiftUI | ||
|
||
struct PointOfSaleCardPresentPaymentCaptureFailedView: View { | ||
private let viewModel: PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel | ||
@Environment(\.dismiss) private var dismiss | ||
|
||
init(viewModel: PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel) { | ||
self.viewModel = viewModel | ||
} | ||
|
||
var body: some View { | ||
VStack { | ||
Text(viewModel.title) | ||
|
||
viewModel.image | ||
|
||
Text(viewModel.errorDetails) | ||
|
||
Button(viewModel.cancelButtonTitle, | ||
action: { | ||
dismiss() | ||
}) | ||
.buttonStyle(SecondaryButtonStyle()) | ||
} | ||
} | ||
} | ||
|
||
#Preview { | ||
PointOfSaleCardPresentPaymentCaptureFailedView( | ||
viewModel: PointOfSaleCardPresentPaymentCaptureFailedAlertViewModel()) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
...tion/UI States/Reader Messages/PointOfSaleCardPresentPaymentCaptureErrorMessageView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import SwiftUI | ||
import enum Yosemite.CardReaderServiceError | ||
|
||
struct PointOfSaleCardPresentPaymentCaptureErrorMessageView: View { | ||
let viewModel: PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel | ||
|
||
var body: some View { | ||
HStack { | ||
VStack { | ||
Text(viewModel.title) | ||
Text(viewModel.message) | ||
} | ||
|
||
Button(viewModel.cancelButtonViewModel.title, | ||
action: viewModel.cancelButtonViewModel.actionHandler) | ||
} | ||
} | ||
} | ||
|
||
#Preview { | ||
PointOfSaleCardPresentPaymentCaptureErrorMessageView( | ||
viewModel: PointOfSaleCardPresentPaymentCaptureErrorMessageViewModel( | ||
cancelButtonAction: {})) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.