diff options
Diffstat (limited to 'iosApp/iosApp/Session/RootView.swift')
-rw-r--r-- | iosApp/iosApp/Session/RootView.swift | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/iosApp/iosApp/Session/RootView.swift b/iosApp/iosApp/Session/RootView.swift index 960187a..10498b2 100644 --- a/iosApp/iosApp/Session/RootView.swift +++ b/iosApp/iosApp/Session/RootView.swift @@ -35,16 +35,34 @@ struct RootView: View { var body: some View { Group { - switch rootViewModel.loginState { - case is SessionController.LoginStateLoading: - LoadingView() - case is SessionController.LoginStateSuccess: - UnitsView() - default: - LoginContentView(username: $username, - password: $password, - server: $server, - onLogin: rootViewModel.login) + VStack { + if (rootViewModel.networkAvailable != true) { + OfflineBanner() + } + + if rootViewModel.showLoadingView { + LoadingView() + .frame(minHeight: 0, maxHeight: .infinity) + } else { + switch rootViewModel.loginState { + case is SessionController.LoginStateSuccess: + UnitsView() + case is SessionController.LoginStateLoading: + LoadingView() + .frame(minHeight: 0, maxHeight: .infinity) + default: + LoginContentView(username: $username, + password: $password, + server: $server, + onLogin: { username, password, server in + rootViewModel.login( + username: username, + password: password, + url: server + ) + }) + } + } } }.environmentObject(rootViewModel) } |