fix desktop chat

This commit is contained in:
2026-04-08 08:07:17 -06:00
parent 39f4b6bd8a
commit 930e561ce0

View File

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