user creation form field validation

multistore
Laurent 1 year ago
parent a85da54f96
commit d9834f76af
  1. 7
      PadelClub/Extensions/String+Extensions.swift
  2. 2
      PadelClub/Views/User/LoginView.swift
  3. 33
      PadelClub/Views/User/UserCreationView.swift

@ -32,6 +32,13 @@ extension String {
var removingFirstCharacter: String {
String(dropFirst())
}
func isValidEmail() -> Bool {
let emailRegEx = "^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}$"
let emailPredicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailPredicate.evaluate(with: self)
}
}
// MARK: - Club Name

@ -77,7 +77,7 @@ struct LoginView: View {
}
}
.navigationTitle("Login")
.navigationTitle("Connexion")
.onAppear {
#if DEBUG
if let username = PListReader.readString(plist: "local", key: "username") {

@ -21,7 +21,13 @@ struct UserCreationFormView: View {
@State var lastName: String = ""
@State var phone: String = ""
@State var showUnmatchingPasswordView = false
@State var showAlertView = false
@State var alertMessage: String = "" {
didSet {
self.showAlertView = true
}
}
@State var selectedCountryIndex = 0
@State var dataCollectAuthorized: Bool = false
@ -41,7 +47,6 @@ struct UserCreationFormView: View {
TextField("Email", text: self.$email)
.keyboardType(.emailAddress)
.textInputAutocapitalization(.never)
}
Section {
@ -87,7 +92,7 @@ struct UserCreationFormView: View {
.onAppear {
self._selectCountry()
}
.alert("Les mots de passe ne correspondent pas", isPresented: self.$showUnmatchingPasswordView, actions: {
.alert(self.alertMessage, isPresented: self.$showAlertView, actions: {
Button("Ok", action: {})
} )
}
@ -104,7 +109,27 @@ struct UserCreationFormView: View {
fileprivate func _create() {
guard self.password1 == self.password2 else {
self.showUnmatchingPasswordView = true
self.alertMessage = "Les mots de passe ne correspondent pas"
return
}
guard username.count > 2 else {
self.alertMessage = "Veuillez renseigner au moins 3 caractères pour votre nom d'utilisateur"
return
}
guard self.email.isValidEmail() else {
self.alertMessage = "L'adresse email n'est pas valide"
return
}
guard firstName.count > 0 else {
self.alertMessage = "Votre prénom ne peut pas être vide"
return
}
guard lastName.count > 0 else {
self.alertMessage = "Votre nom ne peut pas être vide"
return
}

Loading…
Cancel
Save