fix: prevent duplicate messages and update support chat UI styling

This commit is contained in:
pradeepkumar
2026-03-30 18:11:17 +05:30
parent f7881c7fed
commit 446e591cfa
2 changed files with 19 additions and 13 deletions

View File

@@ -80,14 +80,20 @@ class SupportChatNotifier extends StateNotifier<SupportChatState> {
Future<void> sendMessage(String content) async {
final chat = state.chat;
if (chat == null || content.trim().isEmpty) return;
if (state.isSending) return; // Prevent double-send
state = state.copyWith(isSending: true);
try {
final message = await _repo.sendMessage(chat.id, content.trim());
state = state.copyWith(
messages: [...state.messages, message],
isSending: false,
);
// Dedup — socket broadcast may have already added this message
if (!state.messages.any((m) => m.id == message.id)) {
state = state.copyWith(
messages: [...state.messages, message],
isSending: false,
);
} else {
state = state.copyWith(isSending: false);
}
} catch (e) {
state = state.copyWith(isSending: false);
rethrow;