Skip to content

Commit 9363cc4

Browse files
committed
Rich PR feedback
1 parent 4c35a89 commit 9363cc4

File tree

9 files changed

+41
-67
lines changed

9 files changed

+41
-67
lines changed

Demo/Demo/SwiftUIComponents/CardVaultViews/CardVaultView.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct CardVaultView: View {
2020
UpdateSetupTokenView(cardVaultViewModel: cardVaultViewModel, setupToken: setupToken.id)
2121
}
2222
UpdateSetupTokenResultView(cardVaultViewModel: cardVaultViewModel)
23-
if let updateSetupToken = cardVaultViewModel.updateSetupToken {
23+
if let updateSetupToken = cardVaultViewModel.state.updateSetupToken {
2424
CreatePaymentTokenView(
2525
vaultViewModel: cardVaultViewModel,
2626
selectedMerchantIntegration: DemoSettings.merchantIntegration,
@@ -53,11 +53,6 @@ struct CardVaultView: View {
5353
scrollView.scrollTo("bottomView")
5454
}
5555
}
56-
.onChange(of: cardVaultViewModel.updateSetupToken) { _ in
57-
withAnimation {
58-
scrollView.scrollTo("bottomView")
59-
}
60-
}
6156
}
6257
}
6358
}

Demo/Demo/SwiftUIComponents/CardVaultViews/UpdateSetupTokenResultView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ struct UpdateSetupTokenResultView: View {
55
@ObservedObject var cardVaultViewModel: CardVaultViewModel
66

77
var body: some View {
8-
switch cardVaultViewModel.updateSetupTokenResponse {
8+
switch cardVaultViewModel.state.updateSetupTokenResponse {
99
case .idle, .loading:
1010
EmptyView()
1111
case .loaded(let updateSetupTokenResponse):
@@ -15,7 +15,7 @@ struct UpdateSetupTokenResultView: View {
1515
}
1616
}
1717

18-
func getSuccessView(updateSetupTokenResponse: CardVaultViewModel.UpdateSetupTokenResult) -> some View {
18+
func getSuccessView(updateSetupTokenResponse: UpdateSetupTokenResult) -> some View {
1919
VStack(spacing: 16) {
2020
HStack {
2121
Text("Vault Success")

Demo/Demo/SwiftUIComponents/CardVaultViews/UpdateSetupTokenView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct UpdateSetupTokenView: View {
5050
}
5151
}
5252
.buttonStyle(RoundedBlueButtonStyle())
53-
if case .loading = cardVaultViewModel.updateSetupTokenResponse {
53+
if case .loading = cardVaultViewModel.state.updateSetupTokenResponse {
5454
CircularProgressView()
5555
}
5656
}

Demo/Demo/SwiftUIComponents/PayPalVaultViews/PayPalVaultResultView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ struct PayPalVaultResultView: View {
66
@ObservedObject var paypalVaultViewModel: PayPalVaultViewModel
77

88
var body: some View {
9-
switch paypalVaultViewModel.paypalVaultTokenResponse {
9+
switch paypalVaultViewModel.state.paypalVaultTokenResponse {
1010
case .idle, .loading:
1111
EmptyView()
1212
case .loaded(let vaultResult):

Demo/Demo/SwiftUIComponents/PayPalVaultViews/PayPalVaultView.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct PayPalVaultView: View {
2424
.padding()
2525
}
2626
PayPalVaultResultView(paypalVaultViewModel: paypalVaultViewModel)
27-
if let paypalVaultResult = paypalVaultViewModel.paypalVaultToken {
27+
if let paypalVaultResult = paypalVaultViewModel.state.paypalVaultToken {
2828
CreatePaymentTokenView(
2929
vaultViewModel: paypalVaultViewModel,
3030
selectedMerchantIntegration: DemoSettings.merchantIntegration,
@@ -57,11 +57,6 @@ struct PayPalVaultView: View {
5757
scrollView.scrollTo("bottomView")
5858
}
5959
}
60-
.onChange(of: paypalVaultViewModel.paypalVaultToken) { _ in
61-
withAnimation {
62-
scrollView.scrollTo("bottomView")
63-
}
64-
}
6560
}
6661
}
6762
}

Demo/Demo/SwiftUIComponents/VaultViews/SetupTokenResultView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ struct SetupTokenResultView: View {
3030
LeadingText("\(setupTokenResponse.status)")
3131
if let url = setupTokenResponse.paypalURL {
3232
LeadingText("PayPalURL", weight: .bold)
33-
LeadingText("\(setupTokenResponse.paypalURL ?? "No url")")
33+
LeadingText("\(url)")
3434
}
3535
}
3636
.frame(maxWidth: .infinity)

Demo/Demo/ViewModels/CardVaultViewModel.swift

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,11 @@ import CorePayments
44

55
class CardVaultViewModel: VaultViewModel, CardVaultDelegate {
66

7-
struct UpdateSetupTokenResult: Decodable, Equatable {
8-
9-
var id: String
10-
var status: String
11-
}
12-
13-
@Published var updateSetupToken: UpdateSetupTokenResult?
14-
15-
@Published var updateSetupTokenResponse: LoadingState<UpdateSetupTokenResult> = .idle {
16-
didSet {
17-
if case .loaded(let value) = updateSetupTokenResponse {
18-
updateSetupToken = value
19-
}
20-
}
21-
}
22-
237
let configManager = CoreConfigManager(domain: "Card Vault")
248

259
func vault(card: Card, setupToken: String) async {
2610
DispatchQueue.main.async {
27-
self.updateSetupTokenResponse = .loading
11+
self.state.updateSetupTokenResponse = .loading
2812
}
2913
do {
3014
let config = try await configManager.getCoreConfig()
@@ -33,7 +17,7 @@ class CardVaultViewModel: VaultViewModel, CardVaultDelegate {
3317
let cardVaultRequest = CardVaultRequest(card: card, setupTokenID: setupToken)
3418
cardClient.vault(cardVaultRequest)
3519
} catch {
36-
updateSetupTokenResponse = .error(message: error.localizedDescription)
20+
self.state.updateSetupTokenResponse = .error(message: error.localizedDescription)
3721
print("failed in updating setup token. \(error.localizedDescription)")
3822
}
3923
}
@@ -49,24 +33,18 @@ class CardVaultViewModel: VaultViewModel, CardVaultDelegate {
4933

5034
func setUpTokenSuccessResult(vaultResult: CardPayments.CardVaultResult) {
5135
DispatchQueue.main.async {
52-
self.updateSetupTokenResponse = .loaded(
36+
self.state.updateSetupTokenResponse = .loaded(
5337
UpdateSetupTokenResult(id: vaultResult.setupTokenID, status: vaultResult.status)
5438
)
5539
}
5640
}
5741

5842
func setUpdateSetupTokenFailureResult(vaultError: CorePayments.CoreSDKError) {
5943
DispatchQueue.main.async {
60-
self.updateSetupTokenResponse = .error(message: vaultError.localizedDescription)
44+
self.state.updateSetupTokenResponse = .error(message: vaultError.localizedDescription)
6145
}
6246
}
6347

64-
override func resetState() {
65-
super.resetState()
66-
updateSetupToken = nil
67-
updateSetupTokenResponse = .idle
68-
}
69-
7048
// MARK: - CardVault Delegate
7149

7250
func card(_ cardClient: CardPayments.CardClient, didFinishWithVaultResult vaultResult: CardPayments.CardVaultResult) {

Demo/Demo/ViewModels/PayPalVaultViewModel.swift

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,14 @@ import CorePayments
44

55
class PayPalVaultViewModel: VaultViewModel, PayPalVaultDelegate {
66

7-
@Published var paypalVaultToken: PayPalVaultResult?
8-
9-
@Published var paypalVaultTokenResponse: LoadingState<PayPalVaultResult> = .idle {
10-
didSet {
11-
if case .loaded(let value) = paypalVaultTokenResponse {
12-
paypalVaultToken = value
13-
}
14-
}
15-
}
16-
177
let configManager = CoreConfigManager(domain: "PayPal Vault")
188

199
func vault(url: String) async {
2010
guard let paypalUrl = URL(string: url) else {
2111
return
2212
}
2313
DispatchQueue.main.async {
24-
self.paypalVaultTokenResponse = .loading
14+
self.state.paypalVaultTokenResponse = .loading
2515
}
2616
do {
2717
let config = try await configManager.getCoreConfig()
@@ -33,20 +23,14 @@ class PayPalVaultViewModel: VaultViewModel, PayPalVaultDelegate {
3323
}
3424
}
3525

36-
override func resetState() {
37-
super.resetState()
38-
paypalVaultToken = nil
39-
paypalVaultTokenResponse = .idle
40-
}
41-
4226
// MARK: - PayPalVault Delegate
4327

4428
func paypal(
4529
_ paypalWebClient: PayPalWebPayments.PayPalWebCheckoutClient,
4630
didFinishWithVaultResult paypalVaultResult: PayPalVaultResult
4731
) {
4832
DispatchQueue.main.async {
49-
self.paypalVaultTokenResponse = .loaded(paypalVaultResult)
33+
self.state.paypalVaultTokenResponse = .loaded(paypalVaultResult)
5034
}
5135
}
5236

@@ -56,7 +40,7 @@ class PayPalVaultViewModel: VaultViewModel, PayPalVaultDelegate {
5640
) {
5741

5842
DispatchQueue.main.async {
59-
self.paypalVaultTokenResponse = .error(message: vaultError.localizedDescription)
43+
self.state.paypalVaultTokenResponse = .error(message: vaultError.localizedDescription)
6044
}
6145
}
6246

Demo/Demo/ViewModels/VaultState.swift

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@ import Foundation
22
import CardPayments
33
import PayPalWebPayments
44

5-
struct VaultState: Equatable {
5+
struct UpdateSetupTokenResult: Decodable, Equatable {
66

7-
struct UpdateSetupTokenResult: Decodable, Equatable {
7+
var id: String
8+
var status: String
9+
}
810

9-
var id: String
10-
var status: String
11-
}
11+
struct VaultState: Equatable {
1212

1313
var setupToken: SetUpTokenResponse?
1414
var paymentToken: PaymentTokenResponse?
15+
// result for card vault
16+
var updateSetupToken: UpdateSetupTokenResult?
17+
// result for paypal vault
18+
var paypalVaultToken: PayPalVaultResult?
1519

1620
var setupTokenResponse: LoadingState<SetUpTokenResponse> = .idle {
1721
didSet {
@@ -28,6 +32,24 @@ struct VaultState: Equatable {
2832
}
2933
}
3034
}
35+
36+
// response from Card Vault
37+
var updateSetupTokenResponse: LoadingState<UpdateSetupTokenResult> = .idle {
38+
didSet {
39+
if case .loaded(let value) = updateSetupTokenResponse {
40+
updateSetupToken = value
41+
}
42+
}
43+
}
44+
45+
// response from PayPal Vault
46+
var paypalVaultTokenResponse: LoadingState<PayPalVaultResult> = .idle {
47+
didSet {
48+
if case .loaded(let value) = paypalVaultTokenResponse {
49+
paypalVaultToken = value
50+
}
51+
}
52+
}
3153
}
3254

3355
enum LoadingState<T: Decodable & Equatable>: Equatable {

0 commit comments

Comments
 (0)