fix: show names with correct padding if an indicator is used

This commit is contained in:
Joey Boerwinkel 2025-03-07 09:52:45 +01:00 committed by Freek van de Ven
parent a48806fe98
commit 52562746b6
5 changed files with 23 additions and 5 deletions

View file

@ -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 ## 5.1.1
- Expose default indicator builder from the indicator options - Expose default indicator builder from the indicator options

View file

@ -1,6 +1,6 @@
name: chat_repository_interface name: chat_repository_interface
description: "The interface for a chat repository" description: "The interface for a chat repository"
version: 5.1.1 version: 5.1.2
homepage: "https://github.com/Iconica-Development" homepage: "https://github.com/Iconica-Development"
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/

View file

@ -1,6 +1,6 @@
name: firebase_chat_repository name: firebase_chat_repository
description: "Firebase repository implementation for the chat domain repository interface" description: "Firebase repository implementation for the chat domain repository interface"
version: 5.1.1 version: 5.1.2
homepage: "https://github.com/Iconica-Development" homepage: "https://github.com/Iconica-Development"
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/

View file

@ -97,10 +97,17 @@ class DefaultChatMessageBuilder extends StatelessWidget {
var isSameSender = previousMessage != null && var isSameSender = previousMessage != null &&
previousMessage?.senderId == message.senderId; previousMessage?.senderId == message.senderId;
var hasPreviousIndicator = options.timeIndicatorOptions.sectionCheck(
context,
previousMessage,
message,
);
var isMessageFromSelf = message.senderId == userId; var isMessageFromSelf = message.senderId == userId;
var chatMessage = _ChatMessageBubble( var chatMessage = _ChatMessageBubble(
isSameSender: isSameSender, isSameSender: isSameSender,
hasPreviousIndicator: hasPreviousIndicator,
isMessageFromSelf: isMessageFromSelf, isMessageFromSelf: isMessageFromSelf,
previousMessage: previousMessage, previousMessage: previousMessage,
message: message, message: message,
@ -143,6 +150,7 @@ class DefaultChatMessageBuilder extends StatelessWidget {
class _ChatMessageBubble extends StatelessWidget { class _ChatMessageBubble extends StatelessWidget {
const _ChatMessageBubble({ const _ChatMessageBubble({
required this.isSameSender, required this.isSameSender,
required this.hasPreviousIndicator,
required this.isMessageFromSelf, required this.isMessageFromSelf,
required this.message, required this.message,
required this.previousMessage, required this.previousMessage,
@ -154,6 +162,7 @@ class _ChatMessageBubble extends StatelessWidget {
}); });
final bool isSameSender; final bool isSameSender;
final bool hasPreviousIndicator;
final bool isMessageFromSelf; final bool isMessageFromSelf;
final MessageModel message; final MessageModel message;
final MessageModel? previousMessage; final MessageModel? previousMessage;
@ -211,14 +220,19 @@ class _ChatMessageBubble extends StatelessWidget {
], ],
); );
var showName =
messageTheme.showName ?? (!isSameSender || hasPreviousIndicator);
var isNewSection = hasPreviousIndicator || showName;
return Expanded( return Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (messageTheme.showName ?? !isSameSender) ...[ if (isNewSection) ...[
SizedBox(height: options.spacing.chatBetweenMessagesPadding), SizedBox(height: options.spacing.chatBetweenMessagesPadding),
senderTitleText,
], ],
if (showName) senderTitleText,
const SizedBox(height: 4), const SizedBox(height: 4),
DefaultChatMessageContainer( DefaultChatMessageContainer(
backgroundColor: messageTheme.backgroundColor!, backgroundColor: messageTheme.backgroundColor!,

View file

@ -1,6 +1,6 @@
name: flutter_chat name: flutter_chat
description: "User story of the chat domain for quick integration into flutter apps" 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/ publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
environment: environment: