From ab29edd89e1ba4708d019cd56a2b63ef5b0ca4f3 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Wed, 13 Jan 2021 18:21:02 +0530 Subject: [PATCH] Minor ui fixes Signed-off-by: Sahil Kumar --- lib/src/message_actions_modal.dart | 13 ++++- lib/src/message_list_view.dart | 2 +- lib/src/message_reactions_modal.dart | 82 +++++++++++++++------------- lib/src/message_widget.dart | 4 +- 4 files changed, 56 insertions(+), 45 deletions(-) diff --git a/lib/src/message_actions_modal.dart b/lib/src/message_actions_modal.dart index f0d378cf..9b93695e 100644 --- a/lib/src/message_actions_modal.dart +++ b/lib/src/message_actions_modal.dart @@ -90,6 +90,8 @@ class _MessageActionsModalState extends State { duration: Duration(milliseconds: 300), curve: Curves.easeInOutBack, builder: (context, val, snapshot) { + final hasFileAttachment = + widget.message.attachments?.any((it) => it.type == 'file') == true; return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () => Navigator.maybePop(context), @@ -111,7 +113,7 @@ class _MessageActionsModalState extends State { child: Center( child: SingleChildScrollView( child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), + padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: widget.reverse ? CrossAxisAlignment.end @@ -136,6 +138,7 @@ class _MessageActionsModalState extends State { messageTheme: widget.messageTheme, ), ), + SizedBox(height: 8), IgnorePointer( child: MessageWidget( key: Key('MessageWidget'), @@ -151,8 +154,12 @@ class _MessageActionsModalState extends State { showThreadReplyIndicator: false, showReplyMessage: false, showUserAvatar: widget.showUserAvatar, + attachmentPadding: EdgeInsets.all( + hasFileAttachment ? 4 : 2, + ), showTimestamp: false, translateUserAvatar: false, + padding: const EdgeInsets.all(0), textPadding: EdgeInsets.symmetric( vertical: 8.0, horizontal: @@ -168,10 +175,10 @@ class _MessageActionsModalState extends State { shape: widget.messageShape, ), ), + SizedBox(height: 8), Padding( padding: EdgeInsets.only( - right: widget.reverse ? 8 : 0, - left: widget.reverse ? 0 : 48, + left: widget.reverse ? 0 : 40, ), child: SizedBox( width: MediaQuery.of(context).size.width * 0.75, diff --git a/lib/src/message_list_view.dart b/lib/src/message_list_view.dart index b659845e..0e764bca 100644 --- a/lib/src/message_list_view.dart +++ b/lib/src/message_list_view.dart @@ -783,7 +783,7 @@ class _MessageListViewState extends State { final allRead = readList.length >= (channel.memberCount ?? 0) - 1; final hasFileAttachment = - message.attachments.any((it) => it.type == 'file'); + message.attachments?.any((it) => it.type == 'file') == true; final isThreadMessage = message?.parentId != null && message?.showInChannel == true; diff --git a/lib/src/message_reactions_modal.dart b/lib/src/message_reactions_modal.dart index 8520e8ec..bf72daf8 100644 --- a/lib/src/message_reactions_modal.dart +++ b/lib/src/message_reactions_modal.dart @@ -62,6 +62,8 @@ class MessageReactionsModal extends StatelessWidget { duration: Duration(milliseconds: 300), curve: Curves.easeInOutBack, builder: (context, val, snapshot) { + final hasFileAttachment = + message.attachments?.any((it) => it.type == 'file') == true; return GestureDetector( behavior: HitTestBehavior.translucent, onTap: () => Navigator.maybePop(context), @@ -83,7 +85,7 @@ class MessageReactionsModal extends StatelessWidget { child: Center( child: SingleChildScrollView( child: Padding( - padding: const EdgeInsets.symmetric(vertical: 8.0), + padding: const EdgeInsets.all(8.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, @@ -106,6 +108,7 @@ class MessageReactionsModal extends StatelessWidget { messageTheme: messageTheme, ), ), + const SizedBox(height: 8), IgnorePointer( child: MessageWidget( key: Key('MessageWidget'), @@ -124,6 +127,10 @@ class MessageReactionsModal extends StatelessWidget { translateUserAvatar: false, showSendingIndicator: false, shape: messageShape, + padding: const EdgeInsets.all(0), + attachmentPadding: EdgeInsets.all( + hasFileAttachment ? 4 : 2, + ), showInChannelIndicator: false, textPadding: EdgeInsets.symmetric( vertical: 8.0, @@ -135,8 +142,10 @@ class MessageReactionsModal extends StatelessWidget { message.status == null), ), ), - if (message.latestReactions?.isNotEmpty == true) + if (message.latestReactions?.isNotEmpty == true) ...[ + const SizedBox(height: 8), _buildReactionCard(context), + ] ], ), ), @@ -150,47 +159,42 @@ class MessageReactionsModal extends StatelessWidget { ); } - Padding _buildReactionCard(BuildContext context) { + Widget _buildReactionCard(BuildContext context) { final currentUser = StreamChat.of(context).user; - return Padding( - padding: const EdgeInsets.symmetric( - horizontal: 8.0, + return Card( + color: StreamChatTheme.of(context).colorTheme.white, + clipBehavior: Clip.hardEdge, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), ), - child: Card( - color: StreamChatTheme.of(context).colorTheme.white, - clipBehavior: Clip.hardEdge, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16), - ), - margin: EdgeInsets.zero, - child: Padding( - padding: const EdgeInsets.all(16), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - 'Message Reactions', - style: StreamChatTheme.of(context).textTheme.headlineBold, - ), - const SizedBox(height: 16), - Flexible( - child: SingleChildScrollView( - child: Wrap( - spacing: 16, - runSpacing: 16, - alignment: WrapAlignment.start, - children: message.latestReactions - .map((e) => _buildReaction( - e, - currentUser, - context, - )) - .toList(), - ), + margin: EdgeInsets.zero, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + 'Message Reactions', + style: StreamChatTheme.of(context).textTheme.headlineBold, + ), + const SizedBox(height: 16), + Flexible( + child: SingleChildScrollView( + child: Wrap( + spacing: 16, + runSpacing: 16, + alignment: WrapAlignment.start, + children: message.latestReactions + .map((e) => _buildReaction( + e, + currentUser, + context, + )) + .toList(), ), ), - ], - ), + ), + ], ), ), ); diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 95753d09..29749c14 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -434,8 +434,8 @@ class _MessageWidgetState extends State { ), if (widget.showReactionPickerIndicator) Positioned( - right: 0, - top: -8, + right: widget.reverse ? -6 : 6, + top: -6, child: Transform( transform: Matrix4.rotationY( widget.reverse ? pi : 0),