diff --git a/app/src/main/java/ru/myitschool/work/ui/BookingEntity.kt b/app/src/main/java/ru/myitschool/work/ui/BookingEntity.kt new file mode 100644 index 0000000..f97a31e --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/BookingEntity.kt @@ -0,0 +1,7 @@ +package ru.myitschool.work.domain.entities + +// ДАННЫЙ КЛАСС ЗАПРЕЩЕНО МОДИЦИФИРОВАТЬ! ПРИ ТЕСТИРОВАНИИ ОН БУДЕТ ВОЗВРАЩЁН В ОРИГИНАЛЬНОЕ ЗНАЧЕНИЕ +data class BookingEntity( + val roomName: String, + val time: String, +) \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/UserEntity.kt b/app/src/main/java/ru/myitschool/work/ui/screen/UserEntity.kt new file mode 100644 index 0000000..126c1c8 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/screen/UserEntity.kt @@ -0,0 +1,7 @@ +package ru.myitschool.work.domain.entities + +// ДАННЫЙ КЛАСС ЗАПРЕЩЕНО МОДИЦИФИРОВАТЬ! ПРИ ТЕСТИРОВАНИИ ОН БУДЕТ ВОЗВРАЩЁН В ОРИГИНАЛЬНОЕ ЗНАЧЕНИЕ +data class UserEntity( + val name: String, + val bookingList: List +) \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt index f99978e..a1be2de 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -64,6 +63,8 @@ fun AuthScreen( modifier = Modifier.size(64.dp) ) } + + else -> {} } } } @@ -74,6 +75,12 @@ private fun Content( state: AuthState.Data ) { var inputText by remember { mutableStateOf("") } + + // валидация + val isValidCode = inputText.length != 4 && inputText.isNotEmpty() && inputText.none { it.isWhitespace() } && inputText.all { ch -> + ch in '0'..'9' || ch in 'A'..'Z' || ch in 'a'..'z' + } + Spacer(modifier = Modifier.size(16.dp)) TextField( modifier = Modifier.testTag(TestIds.Auth.CODE_INPUT).fillMaxWidth(), @@ -90,7 +97,7 @@ private fun Content( onClick = { viewModel.onIntent(AuthIntent.Send(inputText)) }, - enabled = true + enabled = isValidCode ) { Text(stringResource(R.string.auth_sign_in)) } diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthState.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthState.kt index a06ba76..84aa7e3 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthState.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthState.kt @@ -3,4 +3,5 @@ package ru.myitschool.work.ui.screen.auth sealed interface AuthState { object Loading: AuthState object Data: AuthState + object Error: AuthState } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt index 3153640..3f081e5 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt @@ -28,11 +28,11 @@ class AuthViewModel : ViewModel() { _uiState.update { AuthState.Loading } checkAndSaveAuthCodeUseCase.invoke("9999").fold( onSuccess = { - _actionFlow.emit(Unit) + _actionFlow.emit(Unit)// переход на MainScreen }, onFailure = { error -> error.printStackTrace() - _actionFlow.emit(Unit) + _actionFlow.emit(Unit)// переход на MainScreen при ошибке } ) }