feat: Added new builders and restructured

This commit is contained in:
Deven Joshi
2021-07-26 15:49:04 +05:30
parent c0951272eb
commit 13782f8e1b
3 changed files with 23 additions and 3 deletions
@@ -96,6 +96,13 @@ class ChannelPage extends StatelessWidget {
threadBuilder: (_, parentMessage) => ThreadPage( threadBuilder: (_, parentMessage) => ThreadPage(
parent: parentMessage, parent: parentMessage,
), ),
messageBuilder: (context, message, list, defaultMessage) {
return defaultMessage.copyWith(
deletedBottomRowBuilder: (c, m) {
return VisibleFootnote();
},
);
},
), ),
), ),
const MessageInput(), const MessageInput(),
@@ -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/quoted_message_widget.dart';
import 'package:stream_chat_flutter/src/reaction_bubble.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/url_attachment.dart';
import 'package:stream_chat_flutter/src/visible_footnote.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart';
/// Widget builder for building attachments /// Widget builder for building attachments
@@ -94,6 +93,7 @@ class MessageWidget extends StatefulWidget {
this.editMessageInputBuilder, this.editMessageInputBuilder,
this.textBuilder, this.textBuilder,
this.bottomRowBuilder, this.bottomRowBuilder,
this.deletedBottomRowBuilder,
this.onReturnAction, this.onReturnAction,
Map<String, AttachmentBuilder>? customAttachmentBuilders, Map<String, AttachmentBuilder>? customAttachmentBuilders,
this.readList, this.readList,
@@ -277,9 +277,12 @@ class MessageWidget extends StatefulWidget {
/// Function called on long press /// Function called on long press
final void Function(BuildContext, Message)? onMessageActions; 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; 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 /// Widget builder for building user avatar
final Widget Function(BuildContext, User)? userAvatarBuilder; final Widget Function(BuildContext, User)? userAvatarBuilder;
@@ -415,6 +418,8 @@ class MessageWidget extends StatefulWidget {
Widget Function(BuildContext, Message)? editMessageInputBuilder, Widget Function(BuildContext, Message)? editMessageInputBuilder,
Widget Function(BuildContext, Message)? textBuilder, Widget Function(BuildContext, Message)? textBuilder,
Widget Function(BuildContext, Message)? usernameBuilder, Widget Function(BuildContext, Message)? usernameBuilder,
Widget Function(BuildContext, Message)? bottomRowBuilder,
Widget Function(BuildContext, Message)? deletedBottomRowBuilder,
void Function(BuildContext, Message)? onMessageActions, void Function(BuildContext, Message)? onMessageActions,
Message? message, Message? message,
MessageTheme? messageTheme, MessageTheme? messageTheme,
@@ -468,6 +473,9 @@ class MessageWidget extends StatefulWidget {
editMessageInputBuilder ?? this.editMessageInputBuilder, editMessageInputBuilder ?? this.editMessageInputBuilder,
textBuilder: textBuilder ?? this.textBuilder, textBuilder: textBuilder ?? this.textBuilder,
usernameBuilder: usernameBuilder ?? this.usernameBuilder, usernameBuilder: usernameBuilder ?? this.usernameBuilder,
bottomRowBuilder: bottomRowBuilder ?? this.bottomRowBuilder,
deletedBottomRowBuilder:
deletedBottomRowBuilder ?? this.deletedBottomRowBuilder,
onMessageActions: onMessageActions ?? this.onMessageActions, onMessageActions: onMessageActions ?? this.onMessageActions,
message: message ?? this.message, message: message ?? this.message,
messageTheme: messageTheme ?? this.messageTheme, messageTheme: messageTheme ?? this.messageTheme,
@@ -839,7 +847,11 @@ class _MessageWidgetState extends State<MessageWidget>
Widget get _bottomRow { Widget get _bottomRow {
if (isDeleted) { if (isDeleted) {
return const VisibleFootnote(); return widget.deletedBottomRowBuilder?.call(
context,
widget.message,
) ??
const SizedBox.shrink();
} }
final children = <Widget>[]; final children = <Widget>[];
@@ -31,6 +31,7 @@ export 'src/sending_indicator.dart';
export 'src/stream_chat.dart'; export 'src/stream_chat.dart';
export 'src/stream_chat_theme.dart'; export 'src/stream_chat_theme.dart';
export 'src/stream_neumorphic_button.dart'; export 'src/stream_neumorphic_button.dart';
export 'src/visible_footnote.dart';
export 'src/stream_svg_icon.dart'; export 'src/stream_svg_icon.dart';
export 'src/system_message.dart'; export 'src/system_message.dart';
export 'src/thread_header.dart'; export 'src/thread_header.dart';