diff --git a/lib/src/message_reactions_modal.dart b/lib/src/message_reactions_modal.dart index 7e1e100a..559e475c 100644 --- a/lib/src/message_reactions_modal.dart +++ b/lib/src/message_reactions_modal.dart @@ -36,7 +36,17 @@ 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; + + print(roughMaxSize); + print(roughSentenceSize); + print(divFactor); + return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () { @@ -67,7 +77,7 @@ class MessageReactionsModal extends StatelessWidget { (message.status == MessageSendingStatus.SENT || message.status == null)) Align( - alignment: Alignment(-0.3 + (user.id == message.id ? 0.2 : 0.0), 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, @@ -144,10 +154,10 @@ class MessageReactionsModal extends StatelessWidget { alignment: WrapAlignment.start, children: message.latestReactions .map((e) => _buildReaction( - e, - currentUser, - context, - )) + e, + currentUser, + context, + )) .toList(), ), ), @@ -160,10 +170,10 @@ class MessageReactionsModal extends StatelessWidget { } Widget _buildReaction( - Reaction reaction, - User currentUser, - BuildContext context, - ) { + Reaction reaction, + User currentUser, + BuildContext context, + ) { final isCurrentUser = reaction.user.id == currentUser.id; return ConstrainedBox( constraints: BoxConstraints.loose(Size(