Pb résolue pour sortie du mode édition username et email

TestUnit^2
Leni BEAULATON 2 weeks ago
parent aa498b8ccc
commit 442ef2ed42

@ -142,12 +142,16 @@ fun ImageProfil(size :Int,index: Int, currentUserVM: CurrentUserViewModel, curre
@Composable @Composable
fun EditEmail(emailState: String, index: Int, currentUserVM: CurrentUserViewModel) { fun EditEmail(emailState: String, index: Int, currentUserVM: CurrentUserViewModel) {
var email by remember { mutableStateOf(emailState) } var email by remember { mutableStateOf(emailState) }
var originalEmail by remember { mutableStateOf(emailState) }
var isEditingEmail by remember { mutableStateOf(false) } var isEditingEmail by remember { mutableStateOf(false) }
var emailError by remember { mutableStateOf(false) } var emailError by remember { mutableStateOf(false) }
fun onDoneEditing() { fun onDoneEditing() {
isEditingEmail =!currentUserVM.editEmail(email, index) if (email != originalEmail) {
isEditingEmail = !currentUserVM.editEmail(email, index)
} else {
isEditingEmail = false
}
} }
if (isEditingEmail) { if (isEditingEmail) {
@ -155,7 +159,7 @@ fun EditEmail(emailState: String, index: Int, currentUserVM: CurrentUserViewMode
email = email, email = email,
onEmailChange = { newEmail -> onEmailChange = { newEmail ->
email = newEmail email = newEmail
emailError = !Patterns.EMAIL_ADDRESS.matcher(newEmail).matches() // Validation email emailError = !Patterns.EMAIL_ADDRESS.matcher(newEmail).matches()
}, },
onDone = { onDone = {
if (!emailError) { if (!emailError) {
@ -202,7 +206,6 @@ fun EmailEditingField(
} }
} }
@Composable @Composable
fun DisplayEmail(email: String, onEdit: () -> Unit) { fun DisplayEmail(email: String, onEdit: () -> Unit) {
Row( Row(
@ -226,13 +229,19 @@ fun DisplayEmail(email: String, onEdit: () -> Unit) {
@Composable @Composable
fun EditUsername(usernameState: String, index: Int, currentUserVM : CurrentUserViewModel) { fun EditUsername(usernameState: String, index: Int, currentUserVM: CurrentUserViewModel) {
var username by remember { mutableStateOf(usernameState) } var username by remember { mutableStateOf(usernameState) }
var originalUsername by remember { mutableStateOf(usernameState) }
var isEditingUsername by remember { mutableStateOf(false) } var isEditingUsername by remember { mutableStateOf(false) }
fun onDoneEditing() { fun onDoneEditing() {
isEditingUsername= !currentUserVM.editUsername(username, index) if (username != originalUsername) {
isEditingUsername = !currentUserVM.editUsername(username, index)
} else {
isEditingUsername = false
}
} }
if (isEditingUsername) { if (isEditingUsername) {
@ -240,7 +249,6 @@ fun EditUsername(usernameState: String, index: Int, currentUserVM : CurrentUserV
username = username, username = username,
onUsernameChange = { username = it }, onUsernameChange = { username = it },
onDone = { onDoneEditing() }, onDone = { onDoneEditing() },
) )
} else { } else {
DisplayUsername(username = username, onEdit = { isEditingUsername = true }) DisplayUsername(username = username, onEdit = { isEditingUsername = true })
@ -296,6 +304,7 @@ fun DisplayUsername(username: String, onEdit: () -> Unit) {
@Composable @Composable
fun EditPasswd(index: Int, currentUserVM: CurrentUserViewModel) { fun EditPasswd(index: Int, currentUserVM: CurrentUserViewModel) {
var isEditingPassword by remember { mutableStateOf(false) } var isEditingPassword by remember { mutableStateOf(false) }
@ -418,7 +427,7 @@ fun PasswordTextField(
fun SaveButton(onClick: () -> Unit) { fun SaveButton(onClick: () -> Unit) {
Button( Button(
onClick = onClick, onClick = onClick,
colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.onPrimary), colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.background),
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
val text = stringResource(id = R.string.ButtonSaveprofile) val text = stringResource(id = R.string.ButtonSaveprofile)

Loading…
Cancel
Save