blob: d467239cd638a35e62ca905acc93c7023c4f6866 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/*
* This file is part of GNU Taler, ©2022-23 Taler Systems S.A.
* See LICENSE.md
*/
import SwiftUI
import SymLog
struct URLSheet: View {
private let symLog = SymLogV(0)
let stack: CallStack
let navTitle = String(localized: "Checking Link")
var urlToOpen: URL
@EnvironmentObject private var controller: Controller
var body: some View {
#if DEBUG
let _ = Self._printChanges()
let _ = symLog.vlog() // just to get the # to compare it with .onAppear & onDisappear
#endif
let urlCommand = controller.openURL(urlToOpen, stack: stack.push())
Group {
switch urlCommand {
case .withdraw:
WithdrawURIView(stack: stack.push(), url: urlToOpen)
case .pay:
PaymentView(stack: stack.push(), url: urlToOpen)
case .payPull:
P2pPayURIView(stack: stack.push(), url: urlToOpen)
case .payPush:
P2pReceiveURIView(stack: stack.push(), url: urlToOpen)
case .payTemplate:
PayTemplateView(stack: stack.push(), url: urlToOpen)
case .reward:
RewardURIView(stack: stack.push(), url: urlToOpen)
default: // Error view
VStack {
Text("unknown command")
.accessibilityFont(.title)
Text(controller.messageForSheet ?? urlToOpen.absoluteString)
}
.navigationTitle(navTitle)
}
}
}
}
// MARK: -
//struct PaySheet_Previews: PreviewProvider {
// static var previews: some View {
// needs BackendManager
// URLSheet(urlToOpen: URL(string: "ftp://this.URL.is.invalid")!)
// }
//}
|