ExchangeDetailView.swift (2709B)
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 import SymLog 11 12 struct ExchangeDetailView: View { 13 private let symLog = SymLogV(0) 14 let stack: CallStack 15 let exchange: Exchange 16 17 @Environment(\.sizeCategory) var sizeCategory 18 @EnvironmentObject private var controller: Controller 19 @EnvironmentObject private var model: WalletModel 20 @EnvironmentObject private var tabBarModel: TabBarModel 21 @AppStorage("minimalistic") var minimalistic: Bool = false 22 23 var body: some View { 24 #if PRINT_CHANGES 25 let _ = Self._printChanges() 26 let _ = symLog.vlog() // just to get the # to compare it with .onAppear & onDisappear 27 let delay: UInt = 0 // set to 5 to test delayed currency information 28 #else 29 let delay: UInt = 0 30 #endif 31 let baseURL = exchange.exchangeBaseUrl 32 let rowView = HStack { 33 if !minimalistic { 34 Text("Status:") 35 } 36 Text(exchange.exchangeUpdateStatus.rawValue) // VIEW_WITHDRAW_TOS 37 } 38 .talerFont(.body) 39 rowView 40 41 } 42 } 43 // MARK: - 44 #if DEBUG 45 fileprivate struct ExchangeDetail_Previews: PreviewProvider { 46 @MainActor 47 struct BindingViewContainer : View { 48 49 var body: some View { 50 let scopeInfo = ScopeInfo(type: .exchange, currency: LONGCURRENCY) 51 let exchange1 = Exchange(exchangeBaseUrl: ARS_AGE_EXCHANGE, 52 masterPub: "masterPub", 53 scopeInfo: scopeInfo, 54 paytoUris: [], 55 tosStatus: .pending, 56 exchangeEntryStatus: .preset, 57 exchangeUpdateStatus: .initial, 58 ageRestrictionOptions: [12,16]) 59 let exchange2 = Exchange(exchangeBaseUrl: ARS_EXP_EXCHANGE, 60 masterPub: "masterPub", 61 scopeInfo: scopeInfo, 62 paytoUris: [], 63 tosStatus: .proposed, 64 exchangeEntryStatus: .ephemeral, 65 exchangeUpdateStatus: .ready, 66 ageRestrictionOptions: []) 67 ExchangeDetailView(stack: CallStack("Preview"), 68 exchange: exchange1) 69 } 70 } 71 72 @MainActor 73 static var previews: some View { 74 List { 75 BindingViewContainer() 76 } 77 } 78 } 79 #endif