forked from Olympic/NTO-2025-Android-TeamTask
new fun: exit
This commit is contained in:
@@ -5,6 +5,10 @@ import ru.myitschool.work.data.source.NetworkDataSource
|
|||||||
object AuthRepository {
|
object AuthRepository {
|
||||||
|
|
||||||
private var codeCache: String? = null
|
private var codeCache: String? = null
|
||||||
|
fun clearCode() {
|
||||||
|
codeCache = null
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
suspend fun checkAndSave(text: String): Result<Boolean> {
|
suspend fun checkAndSave(text: String): Result<Boolean> {
|
||||||
return NetworkDataSource.checkAuth(text).onSuccess { success ->
|
return NetworkDataSource.checkAuth(text).onSuccess { success ->
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ import androidx.navigation.NavController
|
|||||||
import coil3.compose.AsyncImage
|
import coil3.compose.AsyncImage
|
||||||
import ru.myitschool.work.R
|
import ru.myitschool.work.R
|
||||||
import ru.myitschool.work.core.TestIds
|
import ru.myitschool.work.core.TestIds
|
||||||
|
import ru.myitschool.work.data.repo.AuthRepository
|
||||||
|
import ru.myitschool.work.ui.nav.AuthScreenDestination
|
||||||
import ru.myitschool.work.ui.nav.MainScreenDestination
|
import ru.myitschool.work.ui.nav.MainScreenDestination
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -53,7 +55,7 @@ fun MainScreen(
|
|||||||
|
|
||||||
В случае любой ошибки необходимо скрыть все элементы, кроме текстового поля с ошибкой и кнопки обновления данных.
|
В случае любой ошибки необходимо скрыть все элементы, кроме текстового поля с ошибкой и кнопки обновления данных.
|
||||||
Для получения данных необходимо использовать сетевой запрос /api/<CODE>/info.
|
Для получения данных необходимо использовать сетевой запрос /api/<CODE>/info.
|
||||||
При нажатии на кнопку для выхода, все сохранённые данные пользователя должны быть очищены, а приложение должно открыть экран авторизации.
|
При нажатии на кнопку для выхода, все сохранённые данные пользователя должны быть очищены, а приложение должно открыть экран авторизации. ГОТОВО
|
||||||
При нажатии кнопки бронирования необходимо открыть экран бронирования.
|
При нажатии кнопки бронирования необходимо открыть экран бронирования.
|
||||||
При нажатии на кнопку обновления данных — необходимо повторно вызывать сетевой запрос для получения актуальных данных.
|
При нажатии на кнопку обновления данных — необходимо повторно вызывать сетевой запрос для получения актуальных данных.
|
||||||
Список бронирований должен быть отсортирован в порядке увеличения даты (например, 5 января -> 6 января -> 9 января).
|
Список бронирований должен быть отсортирован в порядке увеличения даты (например, 5 января -> 6 января -> 9 января).
|
||||||
@@ -122,6 +124,8 @@ fun MainScreen(
|
|||||||
contentColor = MaterialTheme.colorScheme.onError
|
contentColor = MaterialTheme.colorScheme.onError
|
||||||
),
|
),
|
||||||
onClick = {
|
onClick = {
|
||||||
|
AuthRepository.clearCode()
|
||||||
|
navController.navigate(AuthScreenDestination)
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Text(stringResource(R.string.logout))
|
Text(stringResource(R.string.logout))
|
||||||
|
|||||||
Reference in New Issue
Block a user