override suspend fun sendMessage()

in src/main/kotlin/org/jetbrains/plugins/template/chatApp/repository/ChatRepository.kt [57:78]


    override suspend fun sendMessage(messageContent: String) {
        withContext(Dispatchers.IO) {
            try {
                // Emits the user message to a chat list
                _messages.value += chatMessageFactory.createUserMessage(messageContent)

                // Simulate AI responding
                simulateAIResponse(messageContent)
            } catch (e: Exception) {
                if (e is CancellationException) {
                    // In case the message sending is canceled before a response is generated,
                    // we remove a loading placeholder message
                    _messages.value = _messages.value.filter { !it.isAIThinkingMessage() }

                    throw e

                }

                e.printStackTrace()
            }
        }
    }