You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
62 lines
1.4 KiB
//
|
|
// UserCreationView.swift
|
|
// PadelClub
|
|
//
|
|
// Created by Laurent Morvillier on 13/02/2024.
|
|
//
|
|
|
|
import SwiftUI
|
|
import LeStorage
|
|
|
|
struct UserCreationView: View {
|
|
|
|
@State var username: String = ""
|
|
@State var password: String = ""
|
|
@State var email: String = ""
|
|
|
|
var body: some View {
|
|
|
|
Form {
|
|
|
|
TextField("Username", text: self.$username)
|
|
.autocorrectionDisabled()
|
|
TextField("Password", text: self.$password)
|
|
.autocorrectionDisabled()
|
|
TextField("Email", text: self.$email)
|
|
|
|
Section {
|
|
Button(action: {
|
|
self._create()
|
|
}, label: {
|
|
Text("Create")
|
|
})
|
|
.frame(maxWidth: .infinity)
|
|
}
|
|
}
|
|
.navigationTitle("Create user")
|
|
}
|
|
|
|
fileprivate func _create() {
|
|
guard let service = Store.main.service else {
|
|
return
|
|
}
|
|
Task {
|
|
do {
|
|
let userCreationForm = UserCreationForm(
|
|
username: self.username,
|
|
password: self.password,
|
|
email: self.email)
|
|
|
|
let _: User = try await service.createAccount(user: userCreationForm)
|
|
} catch {
|
|
Logger.error(error)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#Preview {
|
|
UserCreationView()
|
|
}
|
|
|