From 9946abc0be5b933b77a7193beeb7ae98647a5f9b Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Thu, 26 Jun 2025 16:10:34 +0300 Subject: [PATCH] feat(chat): add refresh when new message --- lib/core/websockets/ws_manager.dart | 8 ++++++++ .../bloc/chat_room_cubit/chat_room_cubit.dart | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/lib/core/websockets/ws_manager.dart b/lib/core/websockets/ws_manager.dart index 152f0fb9..73431542 100644 --- a/lib/core/websockets/ws_manager.dart +++ b/lib/core/websockets/ws_manager.dart @@ -1,9 +1,12 @@ import 'dart:developer'; import 'package:dart_pusher_channels/dart_pusher_channels.dart'; +import 'package:easy_debounce/easy_debounce.dart'; import 'package:eatvio_app/core/const.dart'; +import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/websockets/ws_service.dart'; import 'package:eatvio_app/core/token_storage.dart'; +import 'package:eatvio_app/features/chat/presentation/bloc/chats_cubit/chats_cubit.dart'; class WsManager { final WsService wsService; @@ -71,6 +74,11 @@ class WsManager { } }); client?.eventStream.listen((event) { + EasyDebounce.debounce( + 'searchChatRoom', + const Duration(milliseconds: 300), + () => sl().getChatRooms(), + ); log(event.rootObject.toString()); }); _subscribe(); diff --git a/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart b/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart index 369993e0..39df041b 100644 --- a/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart +++ b/lib/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart @@ -7,11 +7,13 @@ import 'package:audioplayers/audioplayers.dart'; import 'package:dart_pusher_channels/dart_pusher_channels.dart'; import 'package:easy_debounce/easy_debounce.dart'; import 'package:eatvio_app/core/image_compressing/image_compress_utility.dart'; +import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/utils/date_time_utils.dart'; import 'package:eatvio_app/core/websockets/ws_manager.dart'; import 'package:eatvio_app/features/chat/models/chat_message_model.dart'; import 'package:eatvio_app/features/chat/models/plan_complain_model.dart'; import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_state.dart'; +import 'package:eatvio_app/features/chat/presentation/bloc/chats_cubit/chats_cubit.dart'; import 'package:eatvio_app/features/chat/repositories/chat_repository.dart'; import 'package:eatvio_app/features/my_finance/models/card_model.dart'; import 'package:eatvio_app/features/my_finance/repositories/cards_repository.dart'; @@ -167,6 +169,11 @@ class ChatRoomCubit extends Cubit { List messagesList = [message, ...(state as ChatRoomStateLoaded).chatMessages]; chatRepository.emitNewMessageToChats(message); emit((state as ChatRoomStateLoaded).copyWith(chatMessages: messagesList, isLoading: isLoading)); + EasyDebounce.debounce( + 'searchChatRoom', + const Duration(milliseconds: 300), + () => sl().getChatRooms(), + ); }); typingSubscription = wsManager.clientTypingStream?.listen((event) {