diff --git a/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart b/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart index 07942302..0a8e5b11 100644 --- a/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart +++ b/packages/stream_chat_flutter/example/lib/tutorial_part_4.dart @@ -96,6 +96,13 @@ class ChannelPage extends StatelessWidget { threadBuilder: (_, parentMessage) => ThreadPage( parent: parentMessage, ), + messageBuilder: (context, message, list, defaultMessage) { + return defaultMessage.copyWith( + deletedBottomRowBuilder: (c, m) { + return VisibleFootnote(); + }, + ); + }, ), ), const MessageInput(), diff --git a/packages/stream_chat_flutter/lib/src/message_widget.dart b/packages/stream_chat_flutter/lib/src/message_widget.dart index 47f1182b..f0a340d1 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget.dart @@ -15,7 +15,6 @@ import 'package:stream_chat_flutter/src/message_reactions_modal.dart'; import 'package:stream_chat_flutter/src/quoted_message_widget.dart'; import 'package:stream_chat_flutter/src/reaction_bubble.dart'; import 'package:stream_chat_flutter/src/url_attachment.dart'; -import 'package:stream_chat_flutter/src/visible_footnote.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// Widget builder for building attachments @@ -94,6 +93,7 @@ class MessageWidget extends StatefulWidget { this.editMessageInputBuilder, this.textBuilder, this.bottomRowBuilder, + this.deletedBottomRowBuilder, this.onReturnAction, Map? customAttachmentBuilders, this.readList, @@ -277,9 +277,12 @@ class MessageWidget extends StatefulWidget { /// Function called on long press final void Function(BuildContext, Message)? onMessageActions; - /// Widget builder for building a bottom row below the message + /// Widget builder for building a bottom row below the message when deleted final Widget Function(BuildContext, Message)? bottomRowBuilder; + /// Widget builder for building a bottom row below the message when deleted + final Widget Function(BuildContext, Message)? deletedBottomRowBuilder; + /// Widget builder for building user avatar final Widget Function(BuildContext, User)? userAvatarBuilder; @@ -415,6 +418,8 @@ class MessageWidget extends StatefulWidget { Widget Function(BuildContext, Message)? editMessageInputBuilder, Widget Function(BuildContext, Message)? textBuilder, Widget Function(BuildContext, Message)? usernameBuilder, + Widget Function(BuildContext, Message)? bottomRowBuilder, + Widget Function(BuildContext, Message)? deletedBottomRowBuilder, void Function(BuildContext, Message)? onMessageActions, Message? message, MessageTheme? messageTheme, @@ -468,6 +473,9 @@ class MessageWidget extends StatefulWidget { editMessageInputBuilder ?? this.editMessageInputBuilder, textBuilder: textBuilder ?? this.textBuilder, usernameBuilder: usernameBuilder ?? this.usernameBuilder, + bottomRowBuilder: bottomRowBuilder ?? this.bottomRowBuilder, + deletedBottomRowBuilder: + deletedBottomRowBuilder ?? this.deletedBottomRowBuilder, onMessageActions: onMessageActions ?? this.onMessageActions, message: message ?? this.message, messageTheme: messageTheme ?? this.messageTheme, @@ -839,7 +847,11 @@ class _MessageWidgetState extends State Widget get _bottomRow { if (isDeleted) { - return const VisibleFootnote(); + return widget.deletedBottomRowBuilder?.call( + context, + widget.message, + ) ?? + const SizedBox.shrink(); } final children = []; diff --git a/packages/stream_chat_flutter/lib/stream_chat_flutter.dart b/packages/stream_chat_flutter/lib/stream_chat_flutter.dart index 12049fc6..082b66a7 100644 --- a/packages/stream_chat_flutter/lib/stream_chat_flutter.dart +++ b/packages/stream_chat_flutter/lib/stream_chat_flutter.dart @@ -31,6 +31,7 @@ export 'src/sending_indicator.dart'; export 'src/stream_chat.dart'; export 'src/stream_chat_theme.dart'; export 'src/stream_neumorphic_button.dart'; +export 'src/visible_footnote.dart'; export 'src/stream_svg_icon.dart'; export 'src/system_message.dart'; export 'src/thread_header.dart';