Ответ можно найти в статье
// Описываются события который могут происходить в UI
// чтобы потом отправить в код логики обработки
sealed interface UiEvent {
/** Выбран элемента из списка */
data class UserProfileClicked(val userId: UserId) : UiEvent
/** Нажатие на кнопку подтверждения действия */
data object ConfirmClicked : UiEvent
}
@JvmInline
value class UserId(val id: String)
class MyViewModel: ViewModel() {
// Какое-то состояние экрана
private val _state = MutableStateFlow<State>(State.Default)
val state = _state.asStateFlow()
fun onUiEvent(event: UiEvent) {
// Обработка события из UI
}
}