fix: visible footnote spacing and visibility.
Signed-off-by: xsahil03x <xdsahil@gmail.com>
This commit is contained in:
@@ -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,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user