Skip to content

Commit

Permalink
chore(TransferPasswordAlertDialog): Clean code
Browse files Browse the repository at this point in the history
  • Loading branch information
FabianDevel committed Nov 5, 2024
1 parent c821503 commit 10e6f01
Showing 1 changed file with 19 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package com.infomaniak.swisstransfer.ui.screen.newtransfer.importfiles.components

import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
Expand Down Expand Up @@ -49,34 +50,25 @@ fun PasswordOptionAlertDialog(
) {

var isChecked by rememberSaveable { mutableStateOf(password.get().isNotEmpty()) }
var savedPassword by remember { mutableStateOf("") }
var lastValidPassword by remember { mutableStateOf("") }

if (showPasswordOptionAlert()) {
SwissTransferAlertDialog(
titleRes = R.string.settingsOptionPassword,
descriptionRes = R.string.settingsPasswordDescription,
onDismissRequest = {
isChecked = savedPassword.isNotEmpty()
password.set(savedPassword)
isChecked = lastValidPassword.isNotEmpty()
password.set(lastValidPassword)
onDismiss()
},
onConfirmation = {
savedPassword = password.get()
lastValidPassword = password.get()
val passwordOption = if (isChecked) PasswordTransferOption.ACTIVATED else PasswordTransferOption.NONE
onConfirmation(passwordOption)
},
shouldEnableConfirmButton = { if (isChecked) isPasswordValid() else true },
) {
Row(verticalAlignment = Alignment.CenterVertically) {
Text(
text = stringResource(R.string.settingsPasswordToggleDescription),
style = SwissTransferTheme.typography.bodyMedium,
color = SwissTransferTheme.colors.primaryTextColor,
)
WeightOneSpacer(minWidth = Margin.Medium)
Switch(checked = isChecked, onCheckedChange = { isChecked = it })
}

ActivatePasswordSwitch(isChecked, onCheckedChange = { isChecked = it })
AnimatedVisibility(isChecked) {
Spacer(Modifier.height(Margin.Mini))
SwissTransferTextField(
Expand All @@ -91,6 +83,19 @@ fun PasswordOptionAlertDialog(
}
}

@Composable
private fun ActivatePasswordSwitch(isChecked: Boolean, onCheckedChange: (Boolean) -> Unit) {
Row(verticalAlignment = Alignment.CenterVertically) {
Text(
text = stringResource(R.string.settingsPasswordToggleDescription),
style = SwissTransferTheme.typography.bodyMedium,
color = SwissTransferTheme.colors.primaryTextColor,
)
WeightOneSpacer(minWidth = Margin.Medium)
Switch(isChecked, onCheckedChange)
}
}

@Preview
@Composable
fun Preview() {
Expand Down

0 comments on commit 10e6f01

Please sign in to comment.