Add save code

This commit is contained in:
2025-12-05 15:40:51 +07:00
parent d0d2e1f849
commit b81bc48de5

View File

@@ -1,8 +1,10 @@
package ru.myitschool.work.ui.screen.auth
import android.app.Application
import android.content.Context
import android.content.Context.MODE_PRIVATE
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.Dispatchers
@@ -16,13 +18,27 @@ import kotlinx.coroutines.launch
import ru.myitschool.work.data.repo.AuthRepository
import ru.myitschool.work.domain.auth.CheckAndSaveAuthCodeUseCase
class AuthViewModel : ViewModel() {
class AuthViewModel(application: Application) : AndroidViewModel(application) {
private val checkAndSaveAuthCodeUseCase by lazy { CheckAndSaveAuthCodeUseCase(AuthRepository) }
private val _uiState = MutableStateFlow<AuthState>(AuthState.Data())
val uiState: StateFlow<AuthState> = _uiState.asStateFlow()
private val _actionFlow: MutableSharedFlow<Unit> = MutableSharedFlow()
val actionFlow: SharedFlow<Unit> = _actionFlow
private val context = getApplication<Application>().applicationContext
private val prefs by lazy {
context.getSharedPreferences("auth", Context.MODE_PRIVATE)
}
init {
val savedCode = prefs.getString("saved_code", null)
if (!savedCode.isNullOrEmpty()) {
viewModelScope.launch {
_actionFlow.emit(Unit)
}
}
}
fun onIntent(intent: AuthIntent) {
@@ -37,7 +53,9 @@ class AuthViewModel : ViewModel() {
_uiState.update { AuthState.Loading }
checkAndSaveAuthCodeUseCase.invoke(intent.text).fold(
onSuccess = {
prefs.edit()
.putString("saved_code", intent.text)
.apply()
_actionFlow.emit(Unit)
},
onFailure = { error ->