aboutsummaryrefslogtreecommitdiff
path: root/iosApp/iosApp/Session/RootView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'iosApp/iosApp/Session/RootView.swift')
-rw-r--r--iosApp/iosApp/Session/RootView.swift48
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))