From c52ada3c977dbad53a410016133eeb75f5b10884 Mon Sep 17 00:00:00 2001 From: Ahmed Aladdin Date: Sat, 21 Dec 2024 01:04:55 +0200 Subject: [PATCH] fix: not updating the chat list --- .../repository/chat_remote_repository.dart | 2 +- .../chat/view/widget/chat_tile_widget.dart | 2 +- .../stories/view/widget/chats_list.dart | 31 ++++++++++--------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/features/chat/repository/chat_remote_repository.dart b/lib/features/chat/repository/chat_remote_repository.dart index f9e8ef0..293cea9 100644 --- a/lib/features/chat/repository/chat_remote_repository.dart +++ b/lib/features/chat/repository/chat_remote_repository.dart @@ -205,7 +205,7 @@ class ChatRemoteRepository { messageContentType: contentType, messageType: MessageType.getType(lastMessage['type'] ?? 'unknown'), content: content, - timestamp: lastMessage['timestamp'] == null + timestamp: lastMessage['timestamp'] != null ? DateTime.parse(lastMessage['timestamp']) : DateTime.now(), userStates: userStates, diff --git a/lib/features/chat/view/widget/chat_tile_widget.dart b/lib/features/chat/view/widget/chat_tile_widget.dart index 96d580d..941b281 100644 --- a/lib/features/chat/view/widget/chat_tile_widget.dart +++ b/lib/features/chat/view/widget/chat_tile_widget.dart @@ -306,7 +306,7 @@ class _ChatTileWidget extends ConsumerState { child: imageBytes == null ? AvatarGenerator( name: isSkeleton ? '' : chatModel.title, - backgroundColor: isSkeleton ? Colors.black12 : getRandomColor(), + backgroundColor: getRandomColor(), size: 100, ) : null, diff --git a/lib/features/stories/view/widget/chats_list.dart b/lib/features/stories/view/widget/chats_list.dart index 1ad232f..bf99e20 100644 --- a/lib/features/stories/view/widget/chats_list.dart +++ b/lib/features/stories/view/widget/chats_list.dart @@ -30,9 +30,12 @@ class ChatsList extends ConsumerWidget { key: ChatKeys.chatsListKey, delegate: SliverChildBuilderDelegate( (BuildContext context, int index) { - final key = ValueKey('${ChatKeys.chatTilePrefix.value}$index'); + final listKey = ValueKey('${ChatKeys.chatTilePrefix.value + ChatKeys.chatTilePrefixSubvalue}$index'); + final tileKey = ValueKey('${ChatKeys.chatTilePrefix.value}$index'); + return _delegate( - key, + listKey, + tileKey, chatsList[index], ref.read(userProvider)!.id!, ); @@ -42,7 +45,7 @@ class ChatsList extends ConsumerWidget { ); } - Widget _delegate(ValueKey key, ChatModel chat, String userID) { + Widget _delegate(ValueKey listKey, ValueKey tileKey, ChatModel chat, String userID) { final Random random = Random(); DateTime currentDate = DateTime.now().subtract(const Duration(days: 7)); final MessageModel fakeMessage = MessageModel( @@ -57,17 +60,17 @@ class ChatsList extends ConsumerWidget { userStates: {}, ); final message = chat.messages.isNotEmpty ? chat.messages.last : fakeMessage; - // debugPrint('*** ${chat.title}'); - // debugPrint('*** ${chat.messages.length}'); - // debugPrint(chat.messages.lastOrNull?.content?.getContent()); - // debugPrint(chat.messages.firstOrNull?.content?.getContent()); - return ChatTileWidget( - key: key, - chatModel: chat, - displayMessage: message, - sentByUser: message.senderId == userID, - senderID: message.senderId, - onChatSelected: onChatSelected, + + return Container( + key: listKey, + child: ChatTileWidget( + key: tileKey, + chatModel: chat, + displayMessage: message, + sentByUser: message.senderId == userID, + senderID: message.senderId, + onChatSelected: onChatSelected, + ), ); } }