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

View file

@ -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/

View file

@ -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/

View file

@ -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!,

View file

@ -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: