diff --git a/lib/src/message_reactions_modal.dart b/lib/src/message_reactions_modal.dart index 99a48730..1c3c3e0f 100644 --- a/lib/src/message_reactions_modal.dart +++ b/lib/src/message_reactions_modal.dart @@ -36,6 +36,14 @@ class MessageReactionsModal extends StatelessWidget { @override Widget build(BuildContext context) { + var size = MediaQuery.of(context).size; + var user = StreamChat.of(context).user; + + var roughMaxSize = 2 * size.width / 3; + var roughSentenceSize = + message.text.length * messageTheme.messageText.fontSize * 1.2; + var divFactor = roughSentenceSize / roughMaxSize; + return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () { @@ -66,7 +74,11 @@ class MessageReactionsModal extends StatelessWidget { (message.status == MessageSendingStatus.SENT || message.status == null)) Align( - alignment: Alignment(-0.3, 0.0), + alignment: Alignment( + user.id == message.user.id + ? (divFactor > 1.0 ? 0.0 : (1.0 - divFactor)) + : (divFactor > 1.0 ? 0.0 : -(1.0 - divFactor)), + 0.0), child: ReactionPicker( message: message, messageTheme: messageTheme, diff --git a/lib/src/reaction_picker.dart b/lib/src/reaction_picker.dart index bf4c4ed0..e7d302e6 100644 --- a/lib/src/reaction_picker.dart +++ b/lib/src/reaction_picker.dart @@ -29,7 +29,7 @@ class ReactionPicker extends StatelessWidget { ), child: Row( crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.end, mainAxisSize: MainAxisSize.min, children: reactionIcons.map((reactionIcon) { final ownReactionIndex = message.ownReactions?.indexWhere(