28 lines
713 B
Swift
28 lines
713 B
Swift
import SwiftUI
|
|
|
|
// Root navigation controller. Switches between top-level app states driven by AppViewModel.route.
|
|
struct AppRouter: View {
|
|
@Environment(AppViewModel.self) private var appViewModel
|
|
|
|
var body: some View {
|
|
Group {
|
|
switch appViewModel.route {
|
|
case .onboarding:
|
|
OnboardingView()
|
|
case .login:
|
|
BankSelectionView()
|
|
case .lock:
|
|
LockScreenView { appViewModel.unlock() }
|
|
case .home:
|
|
HomeView()
|
|
}
|
|
}
|
|
.animation(.easeInOut(duration: 0.25), value: appViewModel.route)
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
AppRouter()
|
|
.environment(AppViewModel())
|
|
}
|