35 lines
1010 B
Swift
35 lines
1010 B
Swift
// ContentView.swift — root view, switches on pairing state
|
|
|
|
import SwiftUI
|
|
|
|
struct ContentView: View {
|
|
@EnvironmentObject var appState: AppState
|
|
@Environment(\.scenePhase) private var scenePhase
|
|
|
|
var body: some View {
|
|
ZStack {
|
|
Group {
|
|
if let credential = appState.credential {
|
|
MainTerminalView(credential: credential)
|
|
} else {
|
|
PairingFlowView { credential in
|
|
appState.didPair(credential: credential)
|
|
}
|
|
}
|
|
}
|
|
.onChange(of: scenePhase) { _, new in
|
|
if new == .background {
|
|
appState.appDidBackground()
|
|
} else if new == .active {
|
|
Task { await appState.appWillForeground() }
|
|
}
|
|
}
|
|
|
|
if appState.isLocked {
|
|
LockView()
|
|
}
|
|
}
|
|
.task { await appState.appWillForeground() }
|
|
}
|
|
}
|