aboutsummaryrefslogtreecommitdiff
path: root/TalerWallet1/Views/Sheets/Refund/RefundURIView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'TalerWallet1/Views/Sheets/Refund/RefundURIView.swift')
-rw-r--r--TalerWallet1/Views/Sheets/Refund/RefundURIView.swift62
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)
+ }
+}