StreamChatThemeData constructor
StreamChatThemeData({
- Brightness? brightness,
- TextTheme? textTheme,
- ColorTheme? colorTheme,
- ChannelListHeaderThemeData? channelListHeaderTheme,
- ChannelPreviewThemeData? channelPreviewTheme,
- ChannelHeaderThemeData? channelHeaderTheme,
- MessageThemeData? otherMessageTheme,
- MessageThemeData? ownMessageTheme,
- MessageInputThemeData? messageInputTheme,
- Widget defaultUserImage()?,
- Widget placeholderUserImage()?,
- IconThemeData? primaryIconTheme,
- List<
ReactionIcon> ? reactionIcons, - GalleryHeaderThemeData? imageHeaderTheme,
- MessageListViewThemeData? messageListViewTheme,
- ChannelListViewThemeData? channelListViewTheme,
- UserListViewThemeData? userListViewTheme,
- MessageSearchListViewThemeData? messageSearchListViewTheme,
Create a theme from scratch
Implementation
factory StreamChatThemeData({
Brightness? brightness,
TextTheme? textTheme,
ColorTheme? colorTheme,
ChannelListHeaderThemeData? channelListHeaderTheme,
ChannelPreviewThemeData? channelPreviewTheme,
ChannelHeaderThemeData? channelHeaderTheme,
MessageThemeData? otherMessageTheme,
MessageThemeData? ownMessageTheme,
MessageInputThemeData? messageInputTheme,
Widget Function(BuildContext, User)? defaultUserImage,
Widget Function(BuildContext, User)? placeholderUserImage,
IconThemeData? primaryIconTheme,
List<ReactionIcon>? reactionIcons,
GalleryHeaderThemeData? imageHeaderTheme,
GalleryFooterThemeData? imageFooterTheme,
MessageListViewThemeData? messageListViewTheme,
ChannelListViewThemeData? channelListViewTheme,
UserListViewThemeData? userListViewTheme,
MessageSearchListViewThemeData? messageSearchListViewTheme,
}) {
brightness ??= colorTheme?.brightness ?? Brightness.light;
final isDark = brightness == Brightness.dark;
textTheme ??= isDark ? TextTheme.dark() : TextTheme.light();
colorTheme ??= isDark ? ColorTheme.dark() : ColorTheme.light();
final defaultData = StreamChatThemeData.fromColorAndTextTheme(
colorTheme,
textTheme,
);
final customizedData = defaultData.copyWith(
channelListHeaderTheme: channelListHeaderTheme,
channelPreviewTheme: channelPreviewTheme,
channelHeaderTheme: channelHeaderTheme,
otherMessageTheme: otherMessageTheme,
ownMessageTheme: ownMessageTheme,
messageInputTheme: messageInputTheme,
defaultUserImage: defaultUserImage,
placeholderUserImage: placeholderUserImage,
primaryIconTheme: primaryIconTheme,
reactionIcons: reactionIcons,
galleryHeaderTheme: imageHeaderTheme,
galleryFooterTheme: imageFooterTheme,
messageListViewTheme: messageListViewTheme,
channelListViewTheme: channelListViewTheme,
userListViewTheme: userListViewTheme,
messageSearchListViewTheme: messageSearchListViewTheme,
);
return defaultData.merge(customizedData);
}