add reactions modal

This commit is contained in:
Salvatore Giordano
2020-10-16 12:42:56 +02:00
parent ab1e855cfe
commit c4a890d069
4 changed files with 197 additions and 5 deletions
+28 -3
View File
@@ -8,6 +8,7 @@ import 'package:flutter/rendering.dart';
import 'package:flutter_portal/flutter_portal.dart';
import 'package:jiffy/jiffy.dart';
import 'package:stream_chat_flutter/src/message_actions_modal.dart';
import 'package:stream_chat_flutter/src/message_reactions_modal.dart';
import 'package:stream_chat_flutter/src/reaction_bubble.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
@@ -437,7 +438,7 @@ class _MessageWidgetState extends State<MessageWidget> {
!widget.message.isDeleted)
? Container(
child: GestureDetector(
onTap: () => onLongPress(context),
onTap: () => _showMessageReactionsModalBottomSheet(context),
child: FractionallySizedBox(
widthFactor: 0.5,
child: Row(
@@ -452,7 +453,7 @@ class _MessageWidgetState extends State<MessageWidget> {
);
}
void _showMessageModalBottomSheet(BuildContext context) {
void _showMessageActionModalBottomSheet(BuildContext context) {
final channel = StreamChannel.of(context).channel;
showDialog(
context: context,
@@ -476,6 +477,30 @@ class _MessageWidgetState extends State<MessageWidget> {
});
}
void _showMessageReactionsModalBottomSheet(BuildContext context) {
final channel = StreamChannel.of(context).channel;
showDialog(
context: context,
builder: (context) {
return StreamChannel(
channel: channel,
child: MessageReactionsModal(
messageTheme: widget.messageTheme,
messageShape: widget.shape ?? _getDefaultShape(context),
reverse: widget.reverse,
showDeleteMessage: widget.showDeleteMessage,
message: widget.message,
editMessageInputBuilder: widget.editMessageInputBuilder,
onThreadTap: widget.onThreadTap,
showEditMessage: widget.showEditMessage,
showReactions: widget.showReactions,
showReply:
widget.showReplyIndicator && widget.onThreadTap != null,
),
);
});
}
ContinuousRectangleBorder _getDefaultShape(BuildContext context) {
return ContinuousRectangleBorder(
side: widget.attachmentBorderSide ??
@@ -581,7 +606,7 @@ class _MessageWidgetState extends State<MessageWidget> {
if (widget.onMessageActions != null) {
widget.onMessageActions(context, widget.message);
} else {
_showMessageModalBottomSheet(context);
_showMessageActionModalBottomSheet(context);
}
return;
}