taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

DevExperimentView.swift (1337B)


      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 SymLog
     10 import taler_swift
     11 
     12 
     13 #if GNU_TALER
     14 struct DevExperimentView: View {
     15     private let symLog = SymLogV(0)
     16     let stack: CallStack
     17     let url: URL
     18 
     19     @Environment(\.dismiss) var dismiss     // pop back once
     20     @EnvironmentObject private var model: WalletModel
     21     @EnvironmentObject private var controller: Controller
     22 
     23     @State private var finished = false
     24 
     25     @MainActor
     26     private func viewDidLoad() async {
     27         symLog.log(".task \(url.absoluteString)")
     28         try? await model.setConfig(setTesting: true)
     29         try? await model.devExperimentT(talerUri: url.absoluteString)
     30         finished = true
     31     }
     32 
     33     var body: some View {
     34         if finished {
     35             VStack {
     36                 Spacer()
     37                 Text(url.absoluteString)
     38                     .talerFont(.title2)
     39                     .padding()
     40                 Spacer()
     41                 let title = "Finished"
     42                 Button(title) {
     43                     dismiss()
     44                 }
     45                 Spacer()
     46             }
     47         } else {
     48             LoadingView(stack: stack.push(), scopeInfo: nil, message: url.absoluteString)
     49                 .task { await viewDidLoad() }
     50         }
     51     }
     52 }
     53 #endif