Error display

auth_manage
Emre KARTAL 1 year ago
parent f59afdc193
commit e0954cba47

@ -15,6 +15,12 @@ struct Register: View {
@State private var password: String = ""
@State private var passwordConfirm: String = ""
@State private var isRegisterSuccessful = false
@State private var errorPassword = false
@State private var errorMail = false
@State private var errorUsername = false
@State private var errorMailMessage: String = ""
@State private var errorUsernameMessage: String = ""
@State private var errorPasswordMessage: String = ""
var body: some View {
GeometryReader { geometry in
@ -42,6 +48,13 @@ struct Register: View {
.betTextStyle(weight: .regular, color: AllinColor.StartTextColor, size: 20)
.padding(.bottom, 60)
VStack {
if errorUsername {
Text(errorUsernameMessage)
.font(.system(size: 10))
.foregroundColor(.red)
.fontWeight(.bold)
}
TextField("", text: $username, prompt: Text("Pseudo").foregroundColor(.gray))
.padding()
.background(Color.white.cornerRadius(9))
@ -52,7 +65,15 @@ struct Register: View {
.stroke(AllinColor.StrokeGrayColor, lineWidth: 1)
)
.padding(.bottom, 8)
}
VStack {
if errorMail {
Text(errorMailMessage)
.font(.system(size: 10))
.foregroundColor(.red)
.fontWeight(.bold)
}
TextField("", text: $email, prompt: Text("Email").foregroundColor(.gray))
.padding()
.background(Color.white.cornerRadius(9))
@ -63,7 +84,15 @@ struct Register: View {
.stroke(AllinColor.StrokeGrayColor, lineWidth: 1)
)
.padding(.bottom, 8)
}
VStack {
if errorPassword {
Text(errorPasswordMessage)
.font(.system(size: 10))
.foregroundColor(.red)
.fontWeight(.bold)
}
Group {
if isPasswordVisible {
SecureField("", text: $password, prompt: Text("Mot de passe").foregroundColor(.gray))
@ -94,6 +123,15 @@ struct Register: View {
.padding(.trailing, 8)
}
)
}
VStack {
if errorPassword {
Text(errorPasswordMessage)
.font(.system(size: 10))
.foregroundColor(.red)
.fontWeight(.bold)
}
Group {
if isPasswordVisible {
@ -124,9 +162,9 @@ struct Register: View {
)
.foregroundColor(.black)
.padding(.bottom, 50)
}
Button(action: {
register(email: email, username: username, password: password)
register(email: email, username: username, password: password, confirmPassword: passwordConfirm)
}) {
Text("S'inscrire")
.betTextStyle(weight: .bold, color: .white, size: 17)
@ -161,9 +199,32 @@ struct Register: View {
}
}
func register(email: String, username: String, password: String) {
let api = AuthService()
func register(email: String, username: String, password: String, confirmPassword: String) {
cleanError()
if (password != confirmPassword) {
errorPassword = true
errorPasswordMessage = "Les mots de passes doivent être identiques."
return
}
if (username.isEmpty) {
errorUsername = true
errorUsernameMessage = "Le pseudo ne peut pas être vide."
return
}
if (email.isEmpty) {
errorMail = true
errorMailMessage = "Le mail ne peut pas être vide."
return
}
if (password.isEmpty || confirmPassword.isEmpty) {
errorPassword = true
errorPasswordMessage = "Veuillez renseigner le mot de passe sur les deux champs."
return
}
let api = AuthService()
api.register(email: email, password: password, username: username) { statusCode in
DispatchQueue.main.async {
if statusCode == 201 {
@ -175,4 +236,10 @@ struct Register: View {
}
}
func cleanError() {
errorPassword = false
errorMail = false
errorUsername = false
}
}

Loading…
Cancel
Save