diff --git a/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart b/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart index 5fe56dbc..902f5271 100644 --- a/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart +++ b/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart @@ -113,6 +113,7 @@ class StreamChatThemeData { required this.ownMessageTheme, required this.messageInputTheme, required this.defaultUserImage, + this.placeholderUserImage, required this.primaryIconTheme, required this.reactionIcons, required this.galleryHeaderTheme, @@ -170,6 +171,9 @@ class StreamChatThemeData { /// The widget that will be built when the user image is unavailable final Widget Function(BuildContext, User) defaultUserImage; + /// The widget that will be built when the user image is loading + final Widget Function(BuildContext context, User user)? placeholderUserImage; + /// Primary icon theme final IconThemeData primaryIconTheme; diff --git a/packages/stream_chat_flutter/lib/src/user_avatar.dart b/packages/stream_chat_flutter/lib/src/user_avatar.dart index 31e07f0a..ba737e5e 100644 --- a/packages/stream_chat_flutter/lib/src/user_avatar.dart +++ b/packages/stream_chat_flutter/lib/src/user_avatar.dart @@ -79,6 +79,8 @@ class UserAvatar extends StatelessWidget { imageUrl: user.extraData['image'] as String, errorWidget: (_, __, ___) => streamChatTheme.defaultUserImage(context, user), + placeholder: (_, __) => + streamChatTheme.placeholderUserImage!(context, user), fit: BoxFit.cover, ) : streamChatTheme.defaultUserImage(context, user),