add editMessageInputBuilder to customize the messageinput while editing messages

This commit is contained in:
Salvatore Giordano
2020-04-30 11:17:44 +02:00
parent ec57d91530
commit cb09f0d09e
3 changed files with 38 additions and 24 deletions
+21 -15
View File
@@ -51,6 +51,7 @@ class MessageWidget extends StatefulWidget {
this.showVideoFullScreen = true,
this.attachmentBuilders,
this.showAvatar = true,
this.editMessageInputBuilder,
}) : super(key: key);
/// Function called on mention tap
@@ -89,6 +90,9 @@ class MessageWidget extends StatefulWidget {
/// if true shows the user avatar
final bool showAvatar;
/// Builder used to build the message input to edit a message
final Widget Function(BuildContext, Message) editMessageInputBuilder;
@override
_MessageWidgetState createState() => _MessageWidgetState();
}
@@ -723,21 +727,23 @@ class _MessageWidgetState extends State<MessageWidget>
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
child: MessageInput(
editMessage: widget.message,
parentMessage: widget.isParent
? StreamChannel.of(context)
.channel
.state
.messages
.firstWhere((message) =>
message.id == widget.message.parentId)
: null,
onMessageSent: (_) {
FocusScope.of(context).unfocus();
Navigator.pop(context);
},
),
child: widget.editMessageInputBuilder != null
? widget.editMessageInputBuilder(context, widget.message)
: MessageInput(
editMessage: widget.message,
parentMessage: widget.isParent
? StreamChannel.of(context)
.channel
.state
.messages
.firstWhere((message) =>
message.id == widget.message.parentId)
: null,
onMessageSent: (_) {
FocusScope.of(context).unfocus();
Navigator.pop(context);
},
),
),
],
),