From 52562746b64c1eff09da99c1d9ca75729ddd8a6d Mon Sep 17 00:00:00 2001 From: Joey Boerwinkel Date: Fri, 7 Mar 2025 09:52:45 +0100 Subject: [PATCH] fix: show names with correct padding if an indicator is used --- CHANGELOG.md | 4 ++++ .../chat_repository_interface/pubspec.yaml | 2 +- packages/firebase_chat_repository/pubspec.yaml | 2 +- .../widgets/default_message_builder.dart | 18 ++++++++++++++++-- packages/flutter_chat/pubspec.yaml | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f571cb6..d825993 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.2 +- Added correct padding inbetween time indicators and names +- Show names if a new day occurs and an indicator is shown + ## 5.1.1 - Expose default indicator builder from the indicator options diff --git a/packages/chat_repository_interface/pubspec.yaml b/packages/chat_repository_interface/pubspec.yaml index 2af2fe5..482ab27 100644 --- a/packages/chat_repository_interface/pubspec.yaml +++ b/packages/chat_repository_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: chat_repository_interface description: "The interface for a chat repository" -version: 5.1.1 +version: 5.1.2 homepage: "https://github.com/Iconica-Development" publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ diff --git a/packages/firebase_chat_repository/pubspec.yaml b/packages/firebase_chat_repository/pubspec.yaml index a2ef702..e267c2e 100644 --- a/packages/firebase_chat_repository/pubspec.yaml +++ b/packages/firebase_chat_repository/pubspec.yaml @@ -1,6 +1,6 @@ name: firebase_chat_repository description: "Firebase repository implementation for the chat domain repository interface" -version: 5.1.1 +version: 5.1.2 homepage: "https://github.com/Iconica-Development" publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ diff --git a/packages/flutter_chat/lib/src/screens/chat_detail/widgets/default_message_builder.dart b/packages/flutter_chat/lib/src/screens/chat_detail/widgets/default_message_builder.dart index af26d99..aabd2d1 100644 --- a/packages/flutter_chat/lib/src/screens/chat_detail/widgets/default_message_builder.dart +++ b/packages/flutter_chat/lib/src/screens/chat_detail/widgets/default_message_builder.dart @@ -97,10 +97,17 @@ class DefaultChatMessageBuilder extends StatelessWidget { var isSameSender = previousMessage != null && previousMessage?.senderId == message.senderId; + var hasPreviousIndicator = options.timeIndicatorOptions.sectionCheck( + context, + previousMessage, + message, + ); + var isMessageFromSelf = message.senderId == userId; var chatMessage = _ChatMessageBubble( isSameSender: isSameSender, + hasPreviousIndicator: hasPreviousIndicator, isMessageFromSelf: isMessageFromSelf, previousMessage: previousMessage, message: message, @@ -143,6 +150,7 @@ class DefaultChatMessageBuilder extends StatelessWidget { class _ChatMessageBubble extends StatelessWidget { const _ChatMessageBubble({ required this.isSameSender, + required this.hasPreviousIndicator, required this.isMessageFromSelf, required this.message, required this.previousMessage, @@ -154,6 +162,7 @@ class _ChatMessageBubble extends StatelessWidget { }); final bool isSameSender; + final bool hasPreviousIndicator; final bool isMessageFromSelf; final MessageModel message; final MessageModel? previousMessage; @@ -211,14 +220,19 @@ class _ChatMessageBubble extends StatelessWidget { ], ); + var showName = + messageTheme.showName ?? (!isSameSender || hasPreviousIndicator); + + var isNewSection = hasPreviousIndicator || showName; + return Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (messageTheme.showName ?? !isSameSender) ...[ + if (isNewSection) ...[ SizedBox(height: options.spacing.chatBetweenMessagesPadding), - senderTitleText, ], + if (showName) senderTitleText, const SizedBox(height: 4), DefaultChatMessageContainer( backgroundColor: messageTheme.backgroundColor!, diff --git a/packages/flutter_chat/pubspec.yaml b/packages/flutter_chat/pubspec.yaml index 5bd4ec1..91d94a1 100644 --- a/packages/flutter_chat/pubspec.yaml +++ b/packages/flutter_chat/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_chat description: "User story of the chat domain for quick integration into flutter apps" -version: 5.1.1 +version: 5.1.2 publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ environment: