package dev.lonami.talaria.ui.state import androidx.lifecycle.ViewModel import dev.lonami.talaria.data.MessageRepository import dev.lonami.talaria.data.NativeMessageRepository import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update class ChatViewModel(private val repository: MessageRepository = NativeMessageRepository()) : ViewModel() { private val _uiState = MutableStateFlow(ChatUiState()) val uiState: StateFlow = _uiState.asStateFlow() fun loadMessages(chat: String) { _uiState.update { it.messages.clear() it.messages.addAll(repository.loadMessages(chat)) it } } fun sendMessage(dialog: String, message: String) { val sent = repository.sendMessage(dialog, message) _uiState.update { it.messages.add(sent) it } } }