diff options
Diffstat (limited to 'TalerWallet1/Views/Sheets/Refund/RefundURIView.swift')
-rw-r--r-- | TalerWallet1/Views/Sheets/Refund/RefundURIView.swift | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift b/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift new file mode 100644 index 0000000..7975000 --- /dev/null +++ b/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift @@ -0,0 +1,62 @@ +/* + * This file is part of GNU Taler, ©2022-23 Taler Systems S.A. + * See LICENSE.md + */ +import SwiftUI +import SymLog +import taler_swift + +struct RefundURIView: View { + private let symLog = SymLogV(0) + let stack: CallStack + let navTitle = String(localized: "Accept Refund", comment:"receive refund") + + @EnvironmentObject private var controller: Controller + @AppStorage("myListStyle") var myListStyle: MyListStyle = .automatic + + let url: URL + + @EnvironmentObject private var model: WalletModel + + @State var prepareRefundResponse: PrepareRefundRequest.Response? = nil + + var body: some View { + if prepareRefundResponse != nil { + VStack { + Text(String(localized: "Successful refund!")) + .accessibilityFont(.title) + + Button("OK") { + dismissTop(animated: true) + } + .padding(.horizontal, 30) + .buttonStyle(TalerButtonStyle(type: .prominent, + narrow: false, + aligned: .center)) + } + } else { + let badURL = "Error in Link: \(url)" + WithdrawProgressView(message: url.host ?? badURL) + .navigationTitle("Find Exchange") + .task { + do { + symLog.log(".task") + let result = try await model.prepareRefundForUriM(url: url.absoluteString) + prepareRefundResponse = result + } catch { // TODO: error + symLog.log(error.localizedDescription) + } + } + } + } +} + +// MARK: - +struct RefundURIView_Previews: PreviewProvider { + static var previews: some View { + let details = PrepareRefundRequest.Response( + transactionId: "txn:refund:12345") + let url = URL(string: "taler://reward/survey")! + RefundURIView(stack: CallStack("Preview"), url: url, prepareRefundResponse: details) + } +} |