fix: visible footnote spacing and visibility.

Signed-off-by: xsahil03x <xdsahil@gmail.com>
This commit is contained in:
Sahil Kumar
2023-05-10 17:57:57 +05:30
committed by xsahil03x
parent b607fd9733
commit 89b9e957b9
5 changed files with 23 additions and 22 deletions
@@ -22,7 +22,6 @@ class StreamQuotedMessageWidget extends StatelessWidget {
this.padding = const EdgeInsets.all(8),
this.onTap,
this.onQuotedMessageClear,
this.composing = true,
});
/// The message
@@ -53,9 +52,6 @@ class StreamQuotedMessageWidget extends StatelessWidget {
/// Callback for clearing quoted messages.
final VoidCallback? onQuotedMessageClear;
/// True if the message is being composed
final bool composing;
@override
Widget build(BuildContext context) {
final children = [
@@ -63,11 +59,10 @@ class StreamQuotedMessageWidget extends StatelessWidget {
child: _QuotedMessage(
message: message,
textLimit: textLimit,
composing: composing,
onQuotedMessageClear: onQuotedMessageClear,
messageTheme: messageTheme,
showBorder: showBorder,
reverse: reverse,
onQuotedMessageClear: onQuotedMessageClear,
attachmentThumbnailBuilders: attachmentThumbnailBuilders,
),
),
@@ -104,17 +99,15 @@ class _QuotedMessage extends StatelessWidget {
const _QuotedMessage({
required this.message,
required this.textLimit,
required this.composing,
required this.onQuotedMessageClear,
required this.messageTheme,
required this.showBorder,
required this.reverse,
this.onQuotedMessageClear,
this.attachmentThumbnailBuilders,
});
final Message message;
final int textLimit;
final bool composing;
final VoidCallback? onQuotedMessageClear;
final StreamMessageThemeData messageTheme;
final bool showBorder;
@@ -161,7 +154,7 @@ class _QuotedMessage extends StatelessWidget {
} else {
// Show quoted message
children = [
if (composing)
if (onQuotedMessageClear != null)
PlatformWidgetBuilder(
web: (context, child) => child,
desktop: (context, child) => child,
@@ -282,9 +282,14 @@ class StreamMessageListView extends StatefulWidget {
BuildContext context,
List<SpacingType> spacingTypes,
) {
if (!spacingTypes.contains(SpacingType.defaultSpacing)) {
if (spacingTypes.contains(SpacingType.otherUser)) {
return const SizedBox(height: 8);
} else if (spacingTypes.contains(SpacingType.thread)) {
return const SizedBox(height: 8);
} else if (spacingTypes.contains(SpacingType.timeDiff)) {
return const SizedBox(height: 8);
}
return const SizedBox(height: 2);
}
@@ -644,7 +649,8 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
Widget separator;
final isThread = message.replyCount! > 0;
final isPartOfThread = message.replyCount! > 0 ||
message.showInChannel == true;
if (!Jiffy(message.createdAt.toLocal()).isSame(
nextMessage.createdAt.toLocal(),
@@ -666,7 +672,7 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
final spacingRules = [
if (hasTimeDiff) SpacingType.timeDiff,
if (!isNextUserSame) SpacingType.otherUser,
if (isThread) SpacingType.thread,
if (isPartOfThread) SpacingType.thread,
if (isDeleted) SpacingType.deleted,
];
@@ -680,7 +686,7 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
);
}
if (!isThread &&
if (!isPartOfThread &&
unreadCount > 0 &&
_oldestUnreadMessage?.id == nextMessage.id) {
final unreadMessagesSeparator =
@@ -147,11 +147,15 @@ class BottomRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (isDeleted) {
return deletedBottomRowBuilder?.call(
context,
message,
) ??
const StreamVisibleFootnote();
final deletedBottomRowBuilder = this.deletedBottomRowBuilder;
if (deletedBottomRowBuilder != null) {
return deletedBottomRowBuilder(context, message);
}
// Only show visible footnote for ownUser.
final currentUser = streamChat.currentUser;
final isOwnUser = message.user?.id == currentUser?.id;
if (isOwnUser) return const StreamVisibleFootnote();
}
final children = <WidgetSpan>[];
@@ -794,8 +794,7 @@ class _StreamMessageWidgetState extends State<StreamMessageWidget>
showUsername ||
showTimeStamp ||
showInChannel ||
showSendingIndicator ||
isDeleted;
showSendingIndicator;
/// {@template isPinned}
/// Whether [StreamMessageWidget.message] is pinned or not.
@@ -65,7 +65,6 @@ class _QuotedMessageState extends State<QuotedMessage> {
top: 8,
bottom: widget.hasNonUrlAttachments ? 8 : 0,
),
composing: false,
);
}
}