|
|
|
|
@ -8,10 +8,32 @@ |
|
|
|
|
import SwiftUI |
|
|
|
|
import LeStorage |
|
|
|
|
|
|
|
|
|
struct LoginAccountView: View { |
|
|
|
|
|
|
|
|
|
@State var user: User? = nil |
|
|
|
|
|
|
|
|
|
var body: some View { |
|
|
|
|
if let user { |
|
|
|
|
AccountView(user: user) |
|
|
|
|
} else { |
|
|
|
|
LoginView(handler: { user in |
|
|
|
|
self.user = user |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
struct LoginView: View { |
|
|
|
|
|
|
|
|
|
@EnvironmentObject var dataStore: DataStore |
|
|
|
|
|
|
|
|
|
@State var username: String = "laurent" |
|
|
|
|
@State var password: String = "staxkikoo" |
|
|
|
|
@State var password: String = "staxkikoo12" |
|
|
|
|
|
|
|
|
|
@State var error: Error? = nil |
|
|
|
|
|
|
|
|
|
var handler: (User) -> () |
|
|
|
|
|
|
|
|
|
var body: some View { |
|
|
|
|
|
|
|
|
|
@ -21,8 +43,6 @@ struct LoginView: View { |
|
|
|
|
.autocorrectionDisabled() |
|
|
|
|
.textInputAutocapitalization(.never) |
|
|
|
|
SecureField("Password", text: self.$password) |
|
|
|
|
.autocorrectionDisabled() |
|
|
|
|
.textInputAutocapitalization(.never) |
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
Button(action: { |
|
|
|
|
@ -34,23 +54,17 @@ struct LoginView: View { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
HStack { |
|
|
|
|
Button(action: { |
|
|
|
|
self._login() |
|
|
|
|
}, label: { |
|
|
|
|
Text("Sign up") |
|
|
|
|
}) |
|
|
|
|
.frame(maxWidth: .infinity) |
|
|
|
|
Button(action: { |
|
|
|
|
self._login() |
|
|
|
|
}, label: { |
|
|
|
|
Text("Forgotten password") |
|
|
|
|
}) |
|
|
|
|
.frame(maxWidth: .infinity) |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
Button(action: { |
|
|
|
|
self._signUp() |
|
|
|
|
}, label: { |
|
|
|
|
Text("Sign up") |
|
|
|
|
}) |
|
|
|
|
Button(action: { |
|
|
|
|
self._forgottenPassword() |
|
|
|
|
}, label: { |
|
|
|
|
Text("Forgotten password") |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
.navigationTitle("Login") |
|
|
|
|
@ -62,18 +76,29 @@ struct LoginView: View { |
|
|
|
|
} |
|
|
|
|
Task { |
|
|
|
|
do { |
|
|
|
|
let _: User = try await service.login( |
|
|
|
|
let user: User = try await service.login( |
|
|
|
|
username: self.username, |
|
|
|
|
password: self.password) |
|
|
|
|
self.dataStore.setUser(user) |
|
|
|
|
self.handler(user) |
|
|
|
|
} catch { |
|
|
|
|
Logger.error(error) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileprivate func _signUp() { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileprivate func _forgottenPassword() { |
|
|
|
|
// Store.main.service?.forgotPassword(user: <#T##UserBase#>) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#Preview { |
|
|
|
|
LoginView() |
|
|
|
|
NavigationStack { |
|
|
|
|
LoginView(handler: { _ in }) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|