Skip to content

Commit 78ac4d1

Browse files
committed
refactor :: isAccountIdError 상태 적용
1 parent b6ce4f3 commit 78ac4d1

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

feature/src/main/java/team/aliens/dms/android/feature/resetpassword/AccountVerificationScreen.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import androidx.compose.material3.Icon
1919
import androidx.compose.material3.IconButton
2020
import androidx.compose.material3.Text
2121
import androidx.compose.runtime.Composable
22-
import androidx.compose.runtime.LaunchedEffect
2322
import androidx.compose.runtime.getValue
2423
import androidx.compose.runtime.mutableStateOf
2524
import androidx.compose.runtime.saveable.rememberSaveable
@@ -30,7 +29,6 @@ import androidx.compose.ui.res.stringResource
3029
import androidx.compose.ui.text.input.ImeAction
3130
import androidx.lifecycle.compose.collectAsStateWithLifecycle
3231
import com.ramcosta.composedestinations.annotation.Destination
33-
import kotlinx.coroutines.delay
3432
import team.aliens.dms.android.core.designsystem.ContainedButton
3533
import team.aliens.dms.android.core.designsystem.DmsTheme
3634
import team.aliens.dms.android.core.designsystem.DmsTopAppBar
@@ -49,7 +47,6 @@ import team.aliens.dms.android.core.ui.topPadding
4947
import team.aliens.dms.android.core.ui.verticalPadding
5048
import team.aliens.dms.android.feature.R
5149
import team.aliens.dms.android.feature.resetpassword.navigation.ResetPasswordNavigator
52-
import team.aliens.dms.android.shared.validator.checkIfEmailValid
5350

5451
// TODO Pop backstack
5552
@OptIn(ExperimentalMaterial3Api::class)
@@ -65,8 +62,6 @@ fun AccountVerificationScreen(
6562
val context = LocalContext.current
6663
val (idChecked, onChangeIdChecked) = rememberSaveable { mutableStateOf(false) }
6764

68-
val isAccountIdError by rememberSaveable(uiState.accountId) { mutableStateOf(false) } // TODO :: sideeffect로 true 구현
69-
7065
viewModel.sideEffectFlow.collectInLaunchedEffectWithLifecycle { sideEffect ->
7166
when (sideEffect) {
7267
ResetPasswordSideEffect.AccountIdExists -> {
@@ -136,12 +131,12 @@ fun AccountVerificationScreen(
136131
Text(text = stringResource(id = R.string.reset_password_account_verification_enter_account_id))
137132
},
138133
onValueChange = { viewModel.postIntent(ResetPasswordIntent.UpdateAccountId(value = it)) },
139-
supportingText = if (isAccountIdError) {
134+
supportingText = if (uiState.isAccountIdError) {
140135
{ Text(text = stringResource(id = R.string.reset_password_account_verification_enter_account_id_invalid_format)) }
141136
} else {
142137
null
143138
},
144-
isError = isAccountIdError,
139+
isError = uiState.isAccountIdError,
145140
readOnly = idChecked,
146141
)
147142
AnimatedVisibility(

feature/src/main/java/team/aliens/dms/android/feature/resetpassword/ResetPasswordViewModel.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package team.aliens.dms.android.feature.resetpassword
22

3-
import android.util.Patterns
43
import androidx.lifecycle.viewModelScope
54
import dagger.hilt.android.lifecycle.HiltViewModel
65
import kotlinx.coroutines.Dispatchers
@@ -105,10 +104,16 @@ class ResetPasswordViewModel @Inject constructor(
105104
reduce(
106105
newState = stateFlow.value.copy(
107106
hashedEmail = it,
107+
isAccountIdError = false,
108108
),
109109
)
110110
postSideEffect(ResetPasswordSideEffect.AccountIdExists)
111111
}.onFailure {
112+
reduce(
113+
newState = stateFlow.value.copy(
114+
isAccountIdError = true,
115+
),
116+
)
112117
postSideEffect(ResetPasswordSideEffect.AccountIdNotExists)
113118
}
114119
}
@@ -209,6 +214,7 @@ data class ResetPasswordUiState(
209214
val newPasswordRepeat: String,
210215
val hashedEmail: String,
211216
val sessionId: UUID,
217+
val isAccountIdError: Boolean,
212218
) : UiState() {
213219
companion object {
214220
fun initial() = ResetPasswordUiState(
@@ -220,6 +226,7 @@ data class ResetPasswordUiState(
220226
newPasswordRepeat = "",
221227
hashedEmail = "",
222228
sessionId = UUID.randomUUID(),
229+
isAccountIdError = false
223230
)
224231
}
225232
}

0 commit comments

Comments
 (0)