OIMp2pReadyView.swift (2073B)
1 /* 2 * This file is part of GNU Taler, ©2022-25 Taler Systems S.A. 3 * See LICENSE.md 4 */ 5 /** 6 * @author Marc Stibane 7 */ 8 import SwiftUI 9 import taler_swift 10 11 // MARK: - 12 @available(iOS 16.4, *) 13 struct OIMp2pReadyView: View { 14 let stack: CallStack 15 @Binding var transactionId: String? 16 let talerTX: TalerTransaction 17 let scope: ScopeInfo 18 let action: () -> Void 19 20 @EnvironmentObject private var wrapper: NamespaceWrapper 21 22 @State private var sending = false // user tapped on Send 23 @State private var appeared = false 24 @State private var qrImage: UIImage? = nil 25 26 var body: some View { 27 // let _ = Self._printChanges() 28 29 OIMbackground() { 30 VStack { 31 if let transactionId { 32 if talerTX.isPendingReady { 33 let details = talerTX.detailsToShow() 34 let keys = details.keys 35 if keys.contains(TALERURI) { 36 if let talerURI = details[TALERURI] { 37 if talerURI.count > 10 { 38 Group { 39 Spacer() 40 let size = 240.0 41 QRGeneratorView(text: talerURI, size: size, image: $qrImage) 42 .frame(maxWidth: .infinity, alignment: .center) 43 .accessibilityLabel(Text("QR Code", comment: "a11y")) 44 Spacer() 45 } 46 } 47 } 48 } 49 } 50 } else { 51 LoadingView(stack: stack.push(), 52 scopeInfo: scope, 53 message: nil) 54 } 55 } 56 // .border(.red) 57 }.task { 58 withAnimation(.basic1) { 59 appeared = true 60 } 61 } 62 } 63 }