fix desktop chat

This commit is contained in:
2026-04-08 08:07:17 -06:00
parent 808b6e3d2b
commit 55b61d3908

View File

@@ -123,29 +123,20 @@ public class ChatController {
@FXML
void btnSendClicked() {
try {
if (selectedConversation == null) {
lblChatStatus.setText("Select a conversation");
return;
}
String content = txtMessage.getText() == null ? "" : txtMessage.getText().trim();
if (content.isEmpty()) {
return;
}
txtMessage.clear();
boolean sent = realtimeClient.sendMessage(selectedConversation.getId(), content);
if (!sent) {
sendMessageFallback(selectedConversation.getId(), content);
}
} catch (Exception e) {
ActivityLogger.getInstance().logException(
"ChatController.btnSendClicked",
e,
"Sending chat message");
lblChatStatus.setText("Chat send failed");
if (selectedConversation == null) {
lblChatStatus.setText("Select a conversation");
return;
}
String content = txtMessage.getText() == null ? "" : txtMessage.getText().trim();
if (content.isEmpty()) {
return;
}
txtMessage.clear();
btnSend.setDisable(true);
lblChatStatus.setText("Sending message...");
sendMessage(selectedConversation.getId(), content);
}
private void loadCustomers() {
@@ -211,19 +202,29 @@ public class ChatController {
}).start();
}
private void sendMessageFallback(Long conversationId, String content) {
private void sendMessage(Long conversationId, String content) {
new Thread(() -> {
try {
MessageResponse response = ChatApi.getInstance().sendMessage(conversationId, new MessageRequest(content));
Platform.runLater(() -> {
lblChatStatus.setText("Chat fallback active");
appendMessageIfSelected(response);
btnSend.setDisable(false);
if (!realtimeClient.isConnected()) {
appendMessageIfSelected(response);
}
if (selectedConversation != null && selectedConversation.getId().equals(conversationId)) {
lblChatStatus.setText("Message sent");
}
});
} catch (Exception e) {
Platform.runLater(() -> ActivityLogger.getInstance().logException(
"ChatController.sendMessageFallback",
e,
"Sending chat message for conversation " + conversationId));
Platform.runLater(() -> {
txtMessage.setText(content);
btnSend.setDisable(false);
lblChatStatus.setText("Chat send failed");
ActivityLogger.getInstance().logException(
"ChatController.sendMessage",
e,
"Sending chat message for conversation " + conversationId);
});
}
}).start();
}