fix: prevent duplicate messages and update support chat UI styling
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user