diff --git a/Demo/Demo.xcodeproj/project.pbxproj b/Demo/Demo.xcodeproj/project.pbxproj index 01e44b68..972f4bef 100644 --- a/Demo/Demo.xcodeproj/project.pbxproj +++ b/Demo/Demo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1001E2C12CFFC72E0023A03C /* PayPalPaymentState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1001E2C02CFFC72E0023A03C /* PayPalPaymentState.swift */; }; 3B20273D2A89E3F00007907E /* CreateSetupTokenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B20273C2A89E3F00007907E /* CreateSetupTokenView.swift */; }; 3B20273F2A89F24E0007907E /* CardVaultViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B20273E2A89F24E0007907E /* CardVaultViewModel.swift */; }; 3B2027412A8A72050007907E /* VaultState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B2027402A8A72050007907E /* VaultState.swift */; }; @@ -118,6 +119,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1001E2C02CFFC72E0023A03C /* PayPalPaymentState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PayPalPaymentState.swift; sourceTree = ""; }; 3B20273C2A89E3F00007907E /* CreateSetupTokenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateSetupTokenView.swift; sourceTree = ""; }; 3B20273E2A89F24E0007907E /* CardVaultViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardVaultViewModel.swift; sourceTree = ""; }; 3B2027402A8A72050007907E /* VaultState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VaultState.swift; sourceTree = ""; }; @@ -267,6 +269,7 @@ isa = PBXGroup; children = ( 3BA56FFB2A9FEFE90081D14F /* PayPalWebViewModel.swift */, + 1001E2C02CFFC72E0023A03C /* PayPalPaymentState.swift */, ); path = PayPalWebViewModel; sourceTree = ""; @@ -657,6 +660,7 @@ 3B2027432A8A95EF0007907E /* SetupTokenResultView.swift in Sources */, 3BF999762A8AC093009CBDF2 /* UpdateSetupTokenResultView.swift in Sources */, BECD84A027036DC2007CCAE4 /* Environment.swift in Sources */, + 1001E2C12CFFC72E0023A03C /* PayPalPaymentState.swift in Sources */, 3BCCFE4B2A9D985F00C5102F /* FeatureSelectionView.swift in Sources */, CB9ED44C283FDA900081F4DE /* PaymentButtonEnums+Extension.swift in Sources */, 3BB60B552B1FA00C00A298CF /* PayPalVaultViewModel.swift in Sources */, diff --git a/Demo/Demo/CardPayments/CardPaymentViewModel/CardPaymentState.swift b/Demo/Demo/CardPayments/CardPaymentViewModel/CardPaymentState.swift index 99140916..135cb462 100644 --- a/Demo/Demo/CardPayments/CardPaymentViewModel/CardPaymentState.swift +++ b/Demo/Demo/CardPayments/CardPaymentViewModel/CardPaymentState.swift @@ -49,50 +49,3 @@ struct CardPaymentState: Equatable { } } } - -struct PayPalPaymentState: Equatable { - - struct ApprovalResult: Decodable, Equatable { - let id: String - let status: String? - - } - var createOrder: Order? - var authorizedOrder: Order? - var capturedOrder: Order? - var intent: Intent = .authorize - var approveResult: ApprovalResult? - - var createdOrderResponse: LoadingState = .idle { - didSet { - if case .loaded(let value) = createdOrderResponse { - createOrder = value - } - } - } - - var approveResultResponse: LoadingState = .idle { - didSet { - if case .loaded(let value) = approveResultResponse { - - approveResult = value - } - } - } - - var capturedOrderResponse: LoadingState = .idle { - didSet { - if case .loaded(let value) = capturedOrderResponse { - capturedOrder = value - } - } - } - - var authorizedOrderResponse: LoadingState = .idle { - didSet { - if case .loaded(let value) = authorizedOrderResponse { - authorizedOrder = value - } - } - } -} diff --git a/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalPaymentState.swift b/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalPaymentState.swift new file mode 100644 index 00000000..428f502a --- /dev/null +++ b/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalPaymentState.swift @@ -0,0 +1,49 @@ +import Foundation +import PayPalWebPayments + +struct PayPalPaymentState: Equatable { + + struct ApprovalResult: Decodable, Equatable { + let id: String + let status: String? + + } + var createOrder: Order? + var authorizedOrder: Order? + var capturedOrder: Order? + var intent: Intent = .authorize + var approveResult: ApprovalResult? + + var createdOrderResponse: LoadingState = .idle { + didSet { + if case .loaded(let value) = createdOrderResponse { + createOrder = value + } + } + } + + var approveResultResponse: LoadingState = .idle { + didSet { + if case .loaded(let value) = approveResultResponse { + + approveResult = value + } + } + } + + var capturedOrderResponse: LoadingState = .idle { + didSet { + if case .loaded(let value) = capturedOrderResponse { + capturedOrder = value + } + } + } + + var authorizedOrderResponse: LoadingState = .idle { + didSet { + if case .loaded(let value) = authorizedOrderResponse { + authorizedOrder = value + } + } + } +} diff --git a/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalWebViewModel.swift b/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalWebViewModel.swift index 0a6e64b3..3d99786e 100644 --- a/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalWebViewModel.swift +++ b/Demo/Demo/PayPalWebPayments/PayPalWebViewModel/PayPalWebViewModel.swift @@ -131,7 +131,7 @@ class PayPalWebViewModel: ObservableObject { } } else { DispatchQueue.main.async { - self.state.createdOrderResponse = .loaded(Order(id: orderID, status: "COMPLETED")) + self.state.approveResultResponse = .loaded(PayPalPaymentState.ApprovalResult(id: orderID, status: "COMPLETED")) self.checkoutResult = result print("✅ Checkout result: \(String(describing: result))") }