From 473f66982b9e3df1184cd0985b6e68353b84937c Mon Sep 17 00:00:00 2001 From: "louis.guichard-montguers" Date: Fri, 14 Mar 2025 11:22:56 +0100 Subject: [PATCH] meilleur robustesse sur le Username dans la page signup --- .../what_the_fantasy/ui/screens/SignUpPage.kt | 17 +++++++++++------ .../app/src/main/res/values-fr/strings.xml | 2 +- .../app/src/main/res/values/strings.xml | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SignUpPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SignUpPage.kt index 0e39df4..cce938e 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SignUpPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SignUpPage.kt @@ -7,8 +7,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check import androidx.compose.material3.Button @@ -51,7 +53,8 @@ fun SignUpPage(navControllerLogin: () -> Unit, services : IServices) { Box( modifier = Modifier .fillMaxSize() - .background(colorBackground), + .background(colorBackground) + .verticalScroll(rememberScrollState()), contentAlignment = Alignment.Center ){ Column( @@ -191,17 +194,19 @@ fun ConnexionButtonSign( var emailError by remember { mutableStateOf(false) } var passwordError 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) } + val invalidRegex = """^[a-zA-Z0-9]*$""".toRegex() + Button( onClick = { emailError = !isValidEmail(email) passwordError = !arePasswordsMatching(password, confirmPassword) - usernameErrorEmpty = username.isBlank() + usernameError = username.isBlank() && !username.matches(invalidRegex) passwordErrorEmpty = password.isBlank() || confirmPassword.isBlank() - if (!emailError && !passwordError && !usernameErrorEmpty && !passwordErrorEmpty) { + if (!emailError && !passwordError && !usernameError && !passwordErrorEmpty) { usernameErrorExist = !service.CreateUser(username, email, password, service) if(!usernameErrorExist){ navController() // retour à la page login @@ -215,8 +220,8 @@ fun ConnexionButtonSign( } // Afficher erreurs - if (usernameErrorEmpty) { - ErrorMessageProfileComponent(R.string.ErrorUserEmptySignUp) + if (usernameError) { + ErrorMessageProfileComponent(R.string.ErrorUserSignUp) } if (usernameErrorExist) { diff --git a/What_The_Fantasy/app/src/main/res/values-fr/strings.xml b/What_The_Fantasy/app/src/main/res/values-fr/strings.xml index 9cdf238..0bd5230 100644 --- a/What_The_Fantasy/app/src/main/res/values-fr/strings.xml +++ b/What_The_Fantasy/app/src/main/res/values-fr/strings.xml @@ -29,7 +29,7 @@ Email* Email invalide Les mots de passe ne correspondent pas - Le nom d\'utilisateur ne peut pas être vide + Le nom d\'utilisateur n\'est pas correct Le nom d\'utilisateur ou l\'email ne sont pas disponibles Vous devez mettre un mot de passe diff --git a/What_The_Fantasy/app/src/main/res/values/strings.xml b/What_The_Fantasy/app/src/main/res/values/strings.xml index 29d2f72..8e12c0e 100644 --- a/What_The_Fantasy/app/src/main/res/values/strings.xml +++ b/What_The_Fantasy/app/src/main/res/values/strings.xml @@ -28,7 +28,7 @@ Your email* Invalid email Passwords do not match - Username cannot be empty + Username invalid Username or email are not available You must put a password