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