Merge pull request #506 from GetStream/feat/userAvatarBuilder

feat: userAvatarBuilder in MessageWiget
This commit is contained in:
Salvatore Giordano
2021-06-29 10:26:56 +02:00
committed by GitHub
@@ -89,6 +89,7 @@ class MessageWidget extends StatefulWidget {
this.onLinkTap, this.onLinkTap,
this.onMessageActions, this.onMessageActions,
this.onShowMessage, this.onShowMessage,
this.userAvatarBuilder,
this.editMessageInputBuilder, this.editMessageInputBuilder,
this.textBuilder, this.textBuilder,
this.onReturnAction, this.onReturnAction,
@@ -274,6 +275,9 @@ class MessageWidget extends StatefulWidget {
/// Function called on long press /// Function called on long press
final void Function(BuildContext, Message)? onMessageActions; final void Function(BuildContext, Message)? onMessageActions;
/// Widget builder for building user avatar
final Widget Function(BuildContext, User)? userAvatarBuilder;
/// The message /// The message
final Message message; final Message message;
@@ -448,6 +452,7 @@ class MessageWidget extends StatefulWidget {
void Function(Message)? onMessageTap, void Function(Message)? onMessageTap,
List<MessageAction>? customActions, List<MessageAction>? customActions,
void Function(Message message, Attachment attachment)? onAttachmentTap, void Function(Message message, Attachment attachment)? onAttachmentTap,
Widget Function(BuildContext, User)? userAvatarBuilder,
}) => }) =>
MessageWidget( MessageWidget(
key: key ?? this.key, key: key ?? this.key,
@@ -506,6 +511,7 @@ class MessageWidget extends StatefulWidget {
onMessageTap: onMessageTap ?? this.onMessageTap, onMessageTap: onMessageTap ?? this.onMessageTap,
customActions: customActions ?? this.customActions, customActions: customActions ?? this.customActions,
onAttachmentTap: onAttachmentTap ?? this.onAttachmentTap, onAttachmentTap: onAttachmentTap ?? this.onAttachmentTap,
userAvatarBuilder: userAvatarBuilder ?? this.userAvatarBuilder,
); );
@override @override
@@ -1231,13 +1237,14 @@ class _MessageWidgetState extends State<MessageWidget>
2 2
: 0, : 0,
), ),
child: UserAvatar( child: widget.userAvatarBuilder?.call(context, widget.message.user!) ??
user: widget.message.user!, UserAvatar(
onTap: widget.onUserAvatarTap, user: widget.message.user!,
constraints: widget.messageTheme.avatarTheme!.constraints, onTap: widget.onUserAvatarTap,
borderRadius: widget.messageTheme.avatarTheme!.borderRadius, constraints: widget.messageTheme.avatarTheme!.constraints,
showOnlineStatus: false, borderRadius: widget.messageTheme.avatarTheme!.borderRadius,
), showOnlineStatus: false,
),
); );
Widget _buildTextBubble() { Widget _buildTextBubble() {