feat: Added new builders and restructured
This commit is contained in:
@@ -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';
|
||||||
|
|||||||
Reference in New Issue
Block a user