diff --git a/CHANGELOG.md b/CHANGELOG.md index 66356bd..932ed7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.4.0 - October 27 2023 + +- Show amount of unread messages per chat +- More intuitive chat UI +- Fix default profile avatars + ## 0.3.4 - October 25 2023 - Add interface methods for getting amount of unread messages diff --git a/packages/flutter_community_chat/pubspec.yaml b/packages/flutter_community_chat/pubspec.yaml index 51b24c7..36aa766 100644 --- a/packages/flutter_community_chat/pubspec.yaml +++ b/packages/flutter_community_chat/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_community_chat description: A new Flutter package project. -version: 0.3.4 +version: 0.4.0 publish_to: none @@ -19,12 +19,12 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_community_chat path: packages/flutter_community_chat_view - ref: 0.3.4 + ref: 0.4.0 flutter_community_chat_interface: git: url: https://github.com/Iconica-Development/flutter_community_chat path: packages/flutter_community_chat_interface - ref: 0.3.4 + ref: 0.4.0 dev_dependencies: flutter_lints: ^2.0.0 diff --git a/packages/flutter_community_chat_firebase/pubspec.yaml b/packages/flutter_community_chat_firebase/pubspec.yaml index 9983944..8685b7a 100644 --- a/packages/flutter_community_chat_firebase/pubspec.yaml +++ b/packages/flutter_community_chat_firebase/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_community_chat_firebase description: A new Flutter package project. -version: 0.3.4 +version: 0.4.0 publish_to: none environment: @@ -23,7 +23,7 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_community_chat path: packages/flutter_community_chat_interface - ref: 0.3.4 + ref: 0.4.0 dev_dependencies: flutter_lints: ^2.0.0 diff --git a/packages/flutter_community_chat_interface/pubspec.yaml b/packages/flutter_community_chat_interface/pubspec.yaml index 4d0faf1..32d7f6d 100644 --- a/packages/flutter_community_chat_interface/pubspec.yaml +++ b/packages/flutter_community_chat_interface/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_community_chat_interface description: A new Flutter package project. -version: 0.3.4 +version: 0.4.0 publish_to: none environment: diff --git a/packages/flutter_community_chat_view/example/pubspec.yaml b/packages/flutter_community_chat_view/example/pubspec.yaml index 8532342..e612f19 100644 --- a/packages/flutter_community_chat_view/example/pubspec.yaml +++ b/packages/flutter_community_chat_view/example/pubspec.yaml @@ -18,7 +18,7 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_community_chat path: packages/flutter_community_chat_view - ref: 0.3.4 + ref: 0.4.0 dev_dependencies: flutter_test: diff --git a/packages/flutter_community_chat_view/lib/src/components/chat_detail_row.dart b/packages/flutter_community_chat_view/lib/src/components/chat_detail_row.dart index caf8055..2fd8104 100644 --- a/packages/flutter_community_chat_view/lib/src/components/chat_detail_row.dart +++ b/packages/flutter_community_chat_view/lib/src/components/chat_detail_row.dart @@ -4,17 +4,19 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_community_chat_interface/flutter_community_chat_interface.dart'; +import 'package:flutter_community_chat_view/flutter_community_chat_view.dart'; import 'package:flutter_community_chat_view/src/components/chat_image.dart'; import 'package:flutter_community_chat_view/src/services/date_formatter.dart'; class ChatDetailRow extends StatefulWidget { const ChatDetailRow({ required this.message, + required this.userAvatarBuilder, super.key, }); final ChatMessageModel message; + final UserAvatarBuilder userAvatarBuilder; @override State createState() => _ChatDetailRowState(); @@ -31,9 +33,15 @@ class _ChatDetailRowState extends State { children: [ Padding( padding: const EdgeInsets.only(left: 10.0), - child: ChatImage( - image: widget.message.sender.imageUrl, - ), + child: widget.message.sender.imageUrl != null && + widget.message.sender.imageUrl!.isNotEmpty + ? ChatImage( + image: widget.message.sender.imageUrl!, + ) + : widget.userAvatarBuilder( + widget.message.sender, + 30, + ), ), Expanded( child: Container( diff --git a/packages/flutter_community_chat_view/lib/src/components/chat_image.dart b/packages/flutter_community_chat_view/lib/src/components/chat_image.dart index c1696f3..83e3bb0 100644 --- a/packages/flutter_community_chat_view/lib/src/components/chat_image.dart +++ b/packages/flutter_community_chat_view/lib/src/components/chat_image.dart @@ -7,12 +7,12 @@ import 'package:flutter/material.dart'; class ChatImage extends StatelessWidget { const ChatImage({ - super.key, - this.image, + required this.image, this.size = 40, + super.key, }); - final String? image; + final String image; final double size; @override @@ -24,11 +24,9 @@ class ChatImage extends StatelessWidget { ), width: size, height: size, - child: image == null || image!.isEmpty - ? const Center(child: Icon(Icons.person)) - : CachedNetworkImage( - imageUrl: image!, - fit: BoxFit.cover, - ), + child: CachedNetworkImage( + imageUrl: image, + fit: BoxFit.cover, + ), ); } diff --git a/packages/flutter_community_chat_view/lib/src/config/chat_options.dart b/packages/flutter_community_chat_view/lib/src/config/chat_options.dart index f75a928..187132d 100644 --- a/packages/flutter_community_chat_view/lib/src/config/chat_options.dart +++ b/packages/flutter_community_chat_view/lib/src/config/chat_options.dart @@ -100,7 +100,7 @@ Widget _createUserAvatar( double size, ) => ChatImage( - image: user.imageUrl, + image: user.imageUrl ?? '', size: size, ); Widget _createGroupAvatar( diff --git a/packages/flutter_community_chat_view/lib/src/screens/chat_detail_screen.dart b/packages/flutter_community_chat_view/lib/src/screens/chat_detail_screen.dart index 0db1157..83738fd 100644 --- a/packages/flutter_community_chat_view/lib/src/screens/chat_detail_screen.dart +++ b/packages/flutter_community_chat_view/lib/src/screens/chat_detail_screen.dart @@ -50,8 +50,8 @@ class ChatDetailScreen extends StatefulWidget { class _ChatDetailScreenState extends State { // stream listener that needs to be disposed later - late StreamSubscription>? _chatMessagesSubscription; - late Stream>? _chatMessages; + StreamSubscription>? _chatMessagesSubscription; + Stream>? _chatMessages; @override void initState() { @@ -67,10 +67,11 @@ class _ChatDetailScreenState extends State { widget.onReadChat(widget.chat!); } }); - // set the chat to read when opening the screen - if (widget.chat != null) { - widget.onReadChat(widget.chat!); - } + WidgetsBinding.instance.addPostFrameCallback((_) { + if (widget.chat != null) { + widget.onReadChat(widget.chat!); + } + }); } @override @@ -159,6 +160,7 @@ class _ChatDetailScreenState extends State { .reversed) ChatDetailRow( message: message, + userAvatarBuilder: widget.options.userAvatarBuilder, ), ], ), diff --git a/packages/flutter_community_chat_view/pubspec.yaml b/packages/flutter_community_chat_view/pubspec.yaml index e7e690a..3ff8110 100644 --- a/packages/flutter_community_chat_view/pubspec.yaml +++ b/packages/flutter_community_chat_view/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_community_chat_view description: A standard flutter package. -version: 0.3.4 +version: 0.4.0 publish_to: none @@ -20,7 +20,7 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_community_chat path: packages/flutter_community_chat_interface - ref: 0.3.4 + ref: 0.4.0 cached_network_image: ^3.2.2 flutter_image_picker: git: