RefundURIView.swift (2645B)
1 /* 2 * This file is part of GNU Taler, ©2022-26 Taler Systems S.A. 3 * See LICENSE.md 4 */ 5 /** 6 * @author Marc Stibane 7 */ 8 import SwiftUI 9 import SymLog 10 import taler_swift 11 12 struct RefundURIView: View { 13 private let symLog = SymLogV(0) 14 let stack: CallStack 15 let url: URL 16 17 @EnvironmentObject private var model: WalletModel 18 @EnvironmentObject private var controller: Controller 19 20 // let navTitle = String(localized: "Refund", comment:"receive refund") 21 22 @State var refundTransactionId: String? = nil 23 // @State var transaction: Transaction? 24 // @State private var currencyInfo: CurrencyInfo = CurrencyInfo.zero(UNKNOWN) 25 @State private var talerTX: TalerTransaction = TalerTransaction(dummyCurrency: DEMOCURRENCY) 26 27 @MainActor 28 private func viewDidLoad() async { 29 symLog.log(".task") 30 if let result = try? await model.startRefundForUri(url: url.absoluteString) { 31 refundTransactionId = result 32 // transaction = try? await model.getTransactionById(result) 33 } 34 } 35 36 var body: some View { 37 ZStack { 38 if let refundTransactionId { //, let transaction { 39 // let common = transaction.common 40 // let scope = common.scopes[0] // TODO: tx could span multiple scopes 41 // let raw = common.amountRaw 42 // let currency = raw.currencyStr 43 44 TransactionSummaryList(stack: stack.push(), 45 // scope: scope, 46 transactionId: refundTransactionId, 47 talerTX: $talerTX, 48 navTitle: nil, // navTitle, 49 hasDone: true, 50 showDone: .prominent, 51 url: nil, 52 withActions: true) 53 // .task(id: controller.currencyTicker) { 54 // currencyInfo = controller.info2(for: currency, controller.currencyTicker) 55 // } 56 } else { 57 LoadingView(stack: stack.push(), scopeInfo: nil, message: url.host) 58 .task { await viewDidLoad() } 59 } 60 }.onAppear() { 61 symLog.log("onAppear") 62 DebugViewC.shared.setSheetID(SHEET_REFUND) 63 } 64 } 65 } 66 67 // MARK: - 68 struct RefundURIView_Previews: PreviewProvider { 69 static var previews: some View { 70 let transactionId = "txn:refund:12345" 71 let url = URL(string: "taler://refund/txId")! 72 RefundURIView(stack: CallStack("Preview"), url: url, refundTransactionId: transactionId) 73 } 74 }