From 442ef2ed42cce2af7acf4854cf0409f77d3c6756 Mon Sep 17 00:00:00 2001 From: "leni.beaulaton" Date: Thu, 3 Apr 2025 22:25:59 +0200 Subject: [PATCH] =?UTF-8?q?Pb=20r=C3=A9solue=20pour=20sortie=20du=20mode?= =?UTF-8?q?=20=C3=A9dition=20username=20et=20email?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../what_the_fantasy/ui/screens/ProfilPage.kt | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt index 9dfedf2..571cb1b 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt @@ -96,8 +96,8 @@ fun ProfilPage(navFavorite: () -> Unit, ) { // Titre - TitlePageComponent(R.string.titleProfile, MaterialTheme.colorScheme.onBackground) - SpaceHeightComponent(16) + TitlePageComponent(R.string.titleProfile, MaterialTheme.colorScheme.onBackground) + SpaceHeightComponent(16) // Image de profil ImageProfil(120, currentUserState.id, currentUserVM,currentUserState) @@ -142,12 +142,16 @@ fun ImageProfil(size :Int,index: Int, currentUserVM: CurrentUserViewModel, curre @Composable fun EditEmail(emailState: String, index: Int, currentUserVM: CurrentUserViewModel) { var email by remember { mutableStateOf(emailState) } + var originalEmail by remember { mutableStateOf(emailState) } var isEditingEmail by remember { mutableStateOf(false) } var emailError by remember { mutableStateOf(false) } fun onDoneEditing() { - isEditingEmail =!currentUserVM.editEmail(email, index) - + if (email != originalEmail) { + isEditingEmail = !currentUserVM.editEmail(email, index) + } else { + isEditingEmail = false + } } if (isEditingEmail) { @@ -155,7 +159,7 @@ fun EditEmail(emailState: String, index: Int, currentUserVM: CurrentUserViewMode email = email, onEmailChange = { newEmail -> email = newEmail - emailError = !Patterns.EMAIL_ADDRESS.matcher(newEmail).matches() // Validation email + emailError = !Patterns.EMAIL_ADDRESS.matcher(newEmail).matches() }, onDone = { if (!emailError) { @@ -202,7 +206,6 @@ fun EmailEditingField( } } - @Composable fun DisplayEmail(email: String, onEdit: () -> Unit) { Row( @@ -226,13 +229,19 @@ fun DisplayEmail(email: String, onEdit: () -> Unit) { + @Composable -fun EditUsername(usernameState: String, index: Int, currentUserVM : CurrentUserViewModel) { +fun EditUsername(usernameState: String, index: Int, currentUserVM: CurrentUserViewModel) { var username by remember { mutableStateOf(usernameState) } + var originalUsername by remember { mutableStateOf(usernameState) } var isEditingUsername by remember { mutableStateOf(false) } fun onDoneEditing() { - isEditingUsername= !currentUserVM.editUsername(username, index) + if (username != originalUsername) { + isEditingUsername = !currentUserVM.editUsername(username, index) + } else { + isEditingUsername = false + } } if (isEditingUsername) { @@ -240,7 +249,6 @@ fun EditUsername(usernameState: String, index: Int, currentUserVM : CurrentUserV username = username, onUsernameChange = { username = it }, onDone = { onDoneEditing() }, - ) } else { DisplayUsername(username = username, onEdit = { isEditingUsername = true }) @@ -296,6 +304,7 @@ fun DisplayUsername(username: String, onEdit: () -> Unit) { + @Composable fun EditPasswd(index: Int, currentUserVM: CurrentUserViewModel) { var isEditingPassword by remember { mutableStateOf(false) } @@ -418,7 +427,7 @@ fun PasswordTextField( fun SaveButton(onClick: () -> Unit) { Button( onClick = onClick, - colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.onPrimary), + colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.background), modifier = Modifier.fillMaxWidth() ) { val text = stringResource(id = R.string.ButtonSaveprofile)