diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt index 767b2ad..913795b 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt @@ -5,14 +5,18 @@ import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -81,6 +85,8 @@ fun LoginPage(navControllerSignUp: () -> Unit, navControllerProfil: (Int) -> Uni } + + @Composable fun IdentifiantTextField(textIdentifiantResId : Int) : String{ val textIdentifiant = stringResource(id = textIdentifiantResId) @@ -129,31 +135,49 @@ fun PassWdTextField(textpasswdResId : Int) : String{ @Composable fun ConnexionButtonLogin(userStub : List, id : String, passwd : String, titleResId : Int, size : Int, colorButton : Color, colorText : Color, navController: (Int) -> Unit){ val title = stringResource(id = titleResId) - + var showError by remember { mutableStateOf(false) } Button( - onClick = { validLogin(id, passwd, userStub, navController) }, + onClick = { showError = !validLogin(id, passwd, userStub, navController) + }, colors = ButtonDefaults.buttonColors(containerColor = colorButton), modifier = Modifier .fillMaxWidth(), ) { Text(title, fontSize = size.sp, color = colorText) } + + if( showError){ + ErrorMessage() + } } -fun validLogin(identifiant : String, passwd : String, users : List, navController: (Int) -> Unit){ +fun validLogin(identifiant : String, passwd : String, users : List, navController: (Int) -> Unit): Boolean { + users.forEachIndexed { index, user -> val hashPassWd = hashPassword(passwd) if (user.username == identifiant && user.password == hashPassWd) { // Utilise l'index pour naviguer à la position correspondante navController(index) // Passer l'index à la fonction navController + return true } + } -} + return false + +} +@Composable +fun ErrorMessage() { + Text( + text = "Username or Password does not exist.", + color = Color.Red, + modifier = Modifier.padding(top = 8.dp) + ) +} @Composable -fun CreateAccountButton(titleResId : Int, size : Int, color : Color, navController: () -> Unit){ +fun CreateAccountButton(titleResId : Int, size : Int, color : Color, navController: () -> Unit) { val title = stringResource(id = titleResId) Text( text = title,