Talaria/app/src/main/java/dev/lonami/talaria/ui/state/ChatViewModel.kt

32 lines
980 B
Kotlin
Raw Normal View History

package dev.lonami.talaria.ui.state
import androidx.lifecycle.ViewModel
import dev.lonami.talaria.data.MessageRepository
2022-10-29 11:06:38 +00:00
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
2022-10-29 11:06:38 +00:00
class ChatViewModel(private val repository: MessageRepository = NativeMessageRepository()) :
ViewModel() {
private val _uiState = MutableStateFlow(ChatUiState())
val uiState: StateFlow<ChatUiState> = _uiState.asStateFlow()
2022-10-29 11:06:38 +00:00
fun loadMessages(chat: String) {
_uiState.update {
it.messages.clear()
it.messages.addAll(repository.loadMessages(chat))
it
}
2022-10-11 19:26:11 +00:00
}
2022-10-12 19:26:51 +00:00
fun sendMessage(dialog: String, message: String) {
2022-10-29 11:06:38 +00:00
val sent = repository.sendMessage(dialog, message)
_uiState.update {
it.messages.add(sent)
it
}
}
}