refactor(auth): reuse network ValidationType for validation flow

Remove duplicate auth ValidationType and use the shared network model instead.
Add support for both "sms" and "2fa_sms" SMS validation values.
This commit is contained in:
2026-05-03 06:53:56 +03:00
parent df2c61d8d7
commit cb653eddc2
4 changed files with 5 additions and 15 deletions
@@ -2,7 +2,8 @@ package dev.meloda.fast.network
enum class ValidationType(val value: String) {
APP("2fa_app"),
SMS("2fa_sms");
SMS("sms"),
SMS2("2fa_sms");
companion object {
fun parse(value: String): ValidationType =
@@ -4,7 +4,6 @@ import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dev.meloda.fast.auth.validation.model.ValidationScreenState
import dev.meloda.fast.auth.validation.model.ValidationType
import dev.meloda.fast.auth.validation.navigation.Validation
import dev.meloda.fast.auth.validation.validation.ValidationValidator
import dev.meloda.fast.common.extensions.createTimerFlow
@@ -12,6 +11,7 @@ import dev.meloda.fast.common.extensions.listenValue
import dev.meloda.fast.common.extensions.setValue
import dev.meloda.fast.data.processState
import dev.meloda.fast.domain.AuthUseCase
import dev.meloda.fast.network.ValidationType
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
@@ -1,11 +0,0 @@
package dev.meloda.fast.auth.validation.model
enum class ValidationType(val value: String) {
SMS("2fa_sms"),
APP("2fa_app");
companion object {
fun parse(value: String): ValidationType = entries.firstOrNull { it.value == value }
?: throw IllegalArgumentException("Unknown validation type with value: $value")
}
}
@@ -52,7 +52,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import dev.meloda.fast.auth.validation.ValidationViewModel
import dev.meloda.fast.auth.validation.ValidationViewModelImpl
import dev.meloda.fast.auth.validation.model.ValidationScreenState
import dev.meloda.fast.auth.validation.model.ValidationType
import dev.meloda.fast.network.ValidationType
import dev.meloda.fast.ui.R
import dev.meloda.fast.ui.common.FastPreview
import dev.meloda.fast.ui.components.ActionInvokeDismiss
@@ -118,7 +118,7 @@ fun ValidationScreen(
val validationText by remember(validationType) {
mutableStateOf(
when (validationType) {
ValidationType.SMS -> "SMS with the code is sent to ${screenState.phoneMask}"
ValidationType.SMS, ValidationType.SMS2 -> "SMS with the code is sent to ${screenState.phoneMask}"
ValidationType.APP -> "Enter the code from the code generator application"
null -> ""