mirror of
https://github.com/Iconica-Development/flutter_chat.git
synced 2025-05-18 18:33:49 +02:00
fix: show names with correct padding if an indicator is used
This commit is contained in:
parent
a48806fe98
commit
52562746b6
5 changed files with 23 additions and 5 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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/
|
||||||
|
|
|
@ -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/
|
||||||
|
|
|
@ -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!,
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue