meilleur robustesse sur le Username dans la page signup

UI-Style
parent d1d2ae24a8
commit 473f66982b

@ -7,8 +7,10 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import androidx.compose.material3.Button import androidx.compose.material3.Button
@ -51,7 +53,8 @@ fun SignUpPage(navControllerLogin: () -> Unit, services : IServices) {
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.background(colorBackground), .background(colorBackground)
.verticalScroll(rememberScrollState()),
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
){ ){
Column( Column(
@ -191,17 +194,19 @@ fun ConnexionButtonSign(
var emailError by remember { mutableStateOf(false) } var emailError by remember { mutableStateOf(false) }
var passwordError by remember { mutableStateOf(false) } var passwordError by remember { mutableStateOf(false) }
var passwordErrorEmpty by remember { mutableStateOf(false) } var passwordErrorEmpty by remember { mutableStateOf(false) }
var usernameErrorEmpty by remember { mutableStateOf(false) } var usernameError by remember { mutableStateOf(false) }
var usernameErrorExist by remember { mutableStateOf(false) } var usernameErrorExist by remember { mutableStateOf(false) }
val invalidRegex = """^[a-zA-Z0-9]*$""".toRegex()
Button( Button(
onClick = { onClick = {
emailError = !isValidEmail(email) emailError = !isValidEmail(email)
passwordError = !arePasswordsMatching(password, confirmPassword) passwordError = !arePasswordsMatching(password, confirmPassword)
usernameErrorEmpty = username.isBlank() usernameError = username.isBlank() && !username.matches(invalidRegex)
passwordErrorEmpty = password.isBlank() || confirmPassword.isBlank() passwordErrorEmpty = password.isBlank() || confirmPassword.isBlank()
if (!emailError && !passwordError && !usernameErrorEmpty && !passwordErrorEmpty) { if (!emailError && !passwordError && !usernameError && !passwordErrorEmpty) {
usernameErrorExist = !service.CreateUser(username, email, password, service) usernameErrorExist = !service.CreateUser(username, email, password, service)
if(!usernameErrorExist){ if(!usernameErrorExist){
navController() // retour à la page login navController() // retour à la page login
@ -215,8 +220,8 @@ fun ConnexionButtonSign(
} }
// Afficher erreurs // Afficher erreurs
if (usernameErrorEmpty) { if (usernameError) {
ErrorMessageProfileComponent(R.string.ErrorUserEmptySignUp) ErrorMessageProfileComponent(R.string.ErrorUserSignUp)
} }
if (usernameErrorExist) { if (usernameErrorExist) {

@ -29,7 +29,7 @@
<string name="EmailSignUp">Email*</string> <string name="EmailSignUp">Email*</string>
<string name="ErrorEmailSignUp">Email invalide</string> <string name="ErrorEmailSignUp">Email invalide</string>
<string name="ErrorPasswordSignUp">Les mots de passe ne correspondent pas</string> <string name="ErrorPasswordSignUp">Les mots de passe ne correspondent pas</string>
<string name="ErrorUserEmptySignUp">Le nom d\'utilisateur ne peut pas être vide</string> <string name="ErrorUserSignUp">Le nom d\'utilisateur n\'est pas correct</string>
<string name="ErrorUserExistSignUp">Le nom d\'utilisateur ou l\'email ne sont pas disponibles</string> <string name="ErrorUserExistSignUp">Le nom d\'utilisateur ou l\'email ne sont pas disponibles</string>
<string name="ErrorPasswordEmpty">Vous devez mettre un mot de passe</string> <string name="ErrorPasswordEmpty">Vous devez mettre un mot de passe</string>

@ -28,7 +28,7 @@
<string name="EmailSignUp">Your email*</string> <string name="EmailSignUp">Your email*</string>
<string name="ErrorEmailSignUp">Invalid email</string> <string name="ErrorEmailSignUp">Invalid email</string>
<string name="ErrorPasswordSignUp">Passwords do not match</string> <string name="ErrorPasswordSignUp">Passwords do not match</string>
<string name="ErrorUserEmptySignUp">Username cannot be empty</string> <string name="ErrorUserSignUp">Username invalid</string>
<string name="ErrorUserExistSignUp">Username or email are not available</string> <string name="ErrorUserExistSignUp">Username or email are not available</string>
<string name="ErrorPasswordEmpty">You must put a password</string> <string name="ErrorPasswordEmpty">You must put a password</string>

Loading…
Cancel
Save