Skip to content

Commit

Permalink
fix: not updating the chat list
Browse files Browse the repository at this point in the history
  • Loading branch information
Ahmed-Aladdiin committed Dec 20, 2024
1 parent 3e50099 commit c52ada3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 16 deletions.
2 changes: 1 addition & 1 deletion lib/features/chat/repository/chat_remote_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/view/widget/chat_tile_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ class _ChatTileWidget extends ConsumerState<ChatTileWidget> {
child: imageBytes == null
? AvatarGenerator(
name: isSkeleton ? '' : chatModel.title,
backgroundColor: isSkeleton ? Colors.black12 : getRandomColor(),
backgroundColor: getRandomColor(),
size: 100,
)
: null,
Expand Down
31 changes: 17 additions & 14 deletions lib/features/stories/view/widget/chats_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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!,
);
Expand All @@ -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(
Expand All @@ -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,
),
);
}
}

0 comments on commit c52ada3

Please sign in to comment.