package dev.lonami.talaria.ui import androidx.lifecycle.ViewModel import dev.lonami.talaria.bindings.Native import dev.lonami.talaria.data.MessageSource import dev.lonami.talaria.model.Message import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update class ChatViewModel : ViewModel() { private val _uiState = MutableStateFlow(ChatUiState()) val uiState: StateFlow = _uiState.asStateFlow() private fun loadMessages() { _uiState.value = ChatUiState(MessageSource.loadMessages().toMutableList()) } fun sendMessage(dialog: String, message: String) { Native.sendMessage(dialog, message) _uiState.update { state -> state.messages.add(Message("You", message)) state } } init { loadMessages() } }