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:
@@ -2,7 +2,8 @@ package dev.meloda.fast.network
|
|||||||
|
|
||||||
enum class ValidationType(val value: String) {
|
enum class ValidationType(val value: String) {
|
||||||
APP("2fa_app"),
|
APP("2fa_app"),
|
||||||
SMS("2fa_sms");
|
SMS("sms"),
|
||||||
|
SMS2("2fa_sms");
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun parse(value: String): ValidationType =
|
fun parse(value: String): ValidationType =
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import androidx.lifecycle.SavedStateHandle
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import dev.meloda.fast.auth.validation.model.ValidationScreenState
|
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.navigation.Validation
|
||||||
import dev.meloda.fast.auth.validation.validation.ValidationValidator
|
import dev.meloda.fast.auth.validation.validation.ValidationValidator
|
||||||
import dev.meloda.fast.common.extensions.createTimerFlow
|
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.common.extensions.setValue
|
||||||
import dev.meloda.fast.data.processState
|
import dev.meloda.fast.data.processState
|
||||||
import dev.meloda.fast.domain.AuthUseCase
|
import dev.meloda.fast.domain.AuthUseCase
|
||||||
|
import dev.meloda.fast.network.ValidationType
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
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")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+2
-2
@@ -52,7 +52,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|||||||
import dev.meloda.fast.auth.validation.ValidationViewModel
|
import dev.meloda.fast.auth.validation.ValidationViewModel
|
||||||
import dev.meloda.fast.auth.validation.ValidationViewModelImpl
|
import dev.meloda.fast.auth.validation.ValidationViewModelImpl
|
||||||
import dev.meloda.fast.auth.validation.model.ValidationScreenState
|
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.R
|
||||||
import dev.meloda.fast.ui.common.FastPreview
|
import dev.meloda.fast.ui.common.FastPreview
|
||||||
import dev.meloda.fast.ui.components.ActionInvokeDismiss
|
import dev.meloda.fast.ui.components.ActionInvokeDismiss
|
||||||
@@ -118,7 +118,7 @@ fun ValidationScreen(
|
|||||||
val validationText by remember(validationType) {
|
val validationText by remember(validationType) {
|
||||||
mutableStateOf(
|
mutableStateOf(
|
||||||
when (validationType) {
|
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"
|
ValidationType.APP -> "Enter the code from the code generator application"
|
||||||
|
|
||||||
null -> ""
|
null -> ""
|
||||||
|
|||||||
Reference in New Issue
Block a user