diff options
Diffstat (limited to 'iosApp/iosApp/Session/RootView.swift')
-rw-r--r-- | iosApp/iosApp/Session/RootView.swift | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/iosApp/iosApp/Session/RootView.swift b/iosApp/iosApp/Session/RootView.swift index bc8a7d1..297a2aa 100644 --- a/iosApp/iosApp/Session/RootView.swift +++ b/iosApp/iosApp/Session/RootView.swift @@ -18,24 +18,35 @@ import SwiftUI import shared +class SessionState: ObservableObject { + @Published var loggedIn = false +} + struct RootView: View { @StateObject private var rootViewModel = RootViewModel() @State private var username = "" @State private var password = "" - @State private var server = "" + @State private var server: String + + init() { + server = UserDefaults.standard.string(forKey: "server-url") + ?? NSLocalizedString("app-server-url", comment: "") + } var body: some View { - switch rootViewModel.loginState { - case is SessionController.LoginStateLoading: - LoadingView() - case is SessionController.LoginStateSuccess: - UnitsView() - default: - LoginContentView(username: $username, - password: $password, - server: $server, - onLogin: rootViewModel.login) - } + 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) + } + }.environmentObject(rootViewModel) } } @@ -44,13 +55,7 @@ struct LoginContentView: View { @Binding var password: String @Binding var server: String - let onLogin: (SessionBody) -> Void - - func getFcmToken() -> String? { - let token = UserDefaults.standard.string(forKey: "fcmtoken") - print("FCM token is \(String(describing: token))") - return token - } + let onLogin: (String, String, String) -> Void var body: some View { VStack { @@ -63,10 +68,7 @@ struct LoginContentView: View { server: $server) Button(action: { - self.onLogin(SessionBody(url: server, - email: username, - password: password, - fcmToken: getFcmToken())) + self.onLogin(username, password, server) }) { Text("login") .font(.system(size: 18)) |