recipe-kt/app/src/main/java/xyz/pixelatedw/recipe/data/RecipesView.kt

41 lines
1.1 KiB
Kotlin
Raw Normal View History

2025-08-08 23:21:33 +03:00
package xyz.pixelatedw.recipe.data
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
class RecipesView : ViewModel() {
private val _activeRecipe = MutableStateFlow<RecipeWithTags?>( null )
2025-08-08 23:21:33 +03:00
val activeRecipe = _activeRecipe.asStateFlow()
private val _recipes = MutableStateFlow<List<RecipeWithTags>>( arrayListOf() )
2025-08-08 23:21:33 +03:00
val recipes = _recipes.asStateFlow()
private val _search = MutableStateFlow<String?>(null)
val search = _search.asStateFlow()
private val _keepScreenOn = MutableStateFlow<Boolean>(false)
val keepScreenOn = _keepScreenOn.asStateFlow()
fun setKeepScreenOn(flag: Boolean) {
_keepScreenOn.update { flag }
}
fun setRecipes(recipes: List<RecipeWithTags>) {
_recipes.update { recipes }
}
fun removeRecipe(recipe: RecipeWithTags) {
_recipes.value = _recipes.value.toMutableList().apply { remove(recipe) }.toList()
}
fun setSearch(search: String) {
_search.update { search }
2025-08-08 23:21:33 +03:00
}
fun setActive(recipe: RecipeWithTags) {
2025-08-08 23:21:33 +03:00
_activeRecipe.update { recipe }
}
}