center user avatar in modal

This commit is contained in:
Salvatore Giordano
2020-10-29 12:33:18 +01:00
parent c9c790e120
commit 8424e3a972
3 changed files with 25 additions and 9 deletions
+4 -4
View File
@@ -25,6 +25,7 @@ class MessageActionsModal extends StatelessWidget {
final bool showReply;
final bool reverse;
final ShapeBorder messageShape;
final DisplayWidget showUserAvatar;
const MessageActionsModal({
Key key,
@@ -36,6 +37,7 @@ class MessageActionsModal extends StatelessWidget {
this.onThreadTap,
this.showCopyMessage = true,
this.showReply = true,
this.showUserAvatar = DisplayWidget.show,
this.editMessageInputBuilder,
this.messageShape,
this.reverse = false,
@@ -43,7 +45,6 @@ class MessageActionsModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
final ownId = StreamChat.of(context).user.id;
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
@@ -92,10 +93,9 @@ class MessageActionsModal extends StatelessWidget {
showReactions: false,
showUsername: false,
showReplyIndicator: false,
showUserAvatar: message.user.id == ownId
? DisplayWidget.gone
: DisplayWidget.show,
showUserAvatar: showUserAvatar,
showTimestamp: false,
translateUserAvatar: false,
showSendingIndicator: DisplayWidget.gone,
shape: messageShape,
),
+4 -4
View File
@@ -17,6 +17,7 @@ class MessageReactionsModal extends StatelessWidget {
final MessageTheme messageTheme;
final bool reverse;
final bool showReactions;
final DisplayWidget showUserAvatar;
final ShapeBorder messageShape;
final void Function(User) onUserAvatarTap;
@@ -29,12 +30,12 @@ class MessageReactionsModal extends StatelessWidget {
this.editMessageInputBuilder,
this.messageShape,
this.reverse = false,
this.showUserAvatar = DisplayWidget.show,
this.onUserAvatarTap,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final ownId = StreamChat.of(context).user.id;
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
@@ -82,11 +83,10 @@ class MessageReactionsModal extends StatelessWidget {
messageTheme: messageTheme,
showReactions: false,
showUsername: false,
showUserAvatar: message.user.id == ownId
? DisplayWidget.gone
: DisplayWidget.show,
showUserAvatar: showUserAvatar,
showReplyIndicator: false,
showTimestamp: false,
translateUserAvatar: false,
showSendingIndicator: DisplayWidget.gone,
shape: messageShape,
),
+17 -1
View File
@@ -115,11 +115,15 @@ class MessageWidget extends StatefulWidget {
final bool showEditMessage;
final Map<String, AttachmentBuilder> attachmentBuilders;
/// Center user avatar with bottom of the message
final bool translateUserAvatar;
MessageWidget({
Key key,
@required this.message,
@required this.messageTheme,
this.reverse = false,
this.translateUserAvatar = true,
this.shape,
this.attachmentShape,
this.borderSide,
@@ -423,6 +427,10 @@ class _MessageWidgetState extends State<MessageWidget> {
return StreamChannel(
channel: channel,
child: MessageActionsModal(
showUserAvatar:
widget.message.user.id == channel.client.state.user.id
? DisplayWidget.gone
: DisplayWidget.show,
messageTheme: widget.messageTheme,
messageShape: widget.shape ?? _getDefaultShape(context),
reverse: widget.reverse,
@@ -447,6 +455,10 @@ class _MessageWidgetState extends State<MessageWidget> {
return StreamChannel(
channel: channel,
child: MessageReactionsModal(
showUserAvatar:
widget.message.user.id == channel.client.state.user.id
? DisplayWidget.gone
: DisplayWidget.show,
onUserAvatarTap: widget.onUserAvatarTap,
messageTheme: widget.messageTheme,
messageShape: widget.shape ?? _getDefaultShape(context),
@@ -614,7 +626,11 @@ class _MessageWidgetState extends State<MessageWidget> {
padding: const EdgeInsets.symmetric(horizontal: 4.0),
child: Transform.translate(
offset: Offset(
0, widget.messageTheme.avatarTheme.constraints.maxHeight / 2),
0,
widget.translateUserAvatar
? widget.messageTheme.avatarTheme.constraints.maxHeight / 2
: 0,
),
child: UserAvatar(
user: widget.message.user,
onTap: widget.onUserAvatarTap,