feat: Alignment is now calculated

This commit is contained in:
Deven Joshi
2020-10-30 17:56:31 +05:30
parent 5ff432eb79
commit b39038d0ab
+19 -9
View File
@@ -36,7 +36,17 @@ class MessageReactionsModal extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
var user = StreamChat.of(context).user; 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( return GestureDetector(
behavior: HitTestBehavior.translucent, behavior: HitTestBehavior.translucent,
onTap: () { onTap: () {
@@ -67,7 +77,7 @@ class MessageReactionsModal extends StatelessWidget {
(message.status == MessageSendingStatus.SENT || (message.status == MessageSendingStatus.SENT ||
message.status == null)) message.status == null))
Align( 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( child: ReactionPicker(
message: message, message: message,
messageTheme: messageTheme, messageTheme: messageTheme,
@@ -144,10 +154,10 @@ class MessageReactionsModal extends StatelessWidget {
alignment: WrapAlignment.start, alignment: WrapAlignment.start,
children: message.latestReactions children: message.latestReactions
.map((e) => _buildReaction( .map((e) => _buildReaction(
e, e,
currentUser, currentUser,
context, context,
)) ))
.toList(), .toList(),
), ),
), ),
@@ -160,10 +170,10 @@ class MessageReactionsModal extends StatelessWidget {
} }
Widget _buildReaction( Widget _buildReaction(
Reaction reaction, Reaction reaction,
User currentUser, User currentUser,
BuildContext context, BuildContext context,
) { ) {
final isCurrentUser = reaction.user.id == currentUser.id; final isCurrentUser = reaction.user.id == currentUser.id;
return ConstrainedBox( return ConstrainedBox(
constraints: BoxConstraints.loose(Size( constraints: BoxConstraints.loose(Size(