in src/main/kotlin/org/jetbrains/plugins/template/chatApp/viewmodel/ChatViewModel.kt [65:85]
override fun onSendMessage() {
currentSendMessageJob = coroutineScope.launch {
try {
val currentUserMessage = getCurrentInputTextIfNotEmpty() ?: return@launch
emitPromptInputState(MessageInputState.Sending(""))
repository.sendMessage(currentUserMessage)
emitPromptInputState(
when (val currentInputState = getCurrentInputTextIfNotEmpty()) {
null -> MessageInputState.Disabled
else -> MessageInputState.Enabled(currentInputState)
}
)
} catch (e: Exception) {
if (e is CancellationException) throw e
emitPromptInputState(MessageInputState.SendFailed(e.message ?: "Unknown error", e))
}
}
}