StreamChatThemeData constructor
StreamChatThemeData({
- Brightness? brightness,
- StreamTextTheme? textTheme,
- StreamColorTheme? colorTheme,
- StreamChannelListHeaderThemeData? channelListHeaderTheme,
- StreamChannelPreviewThemeData? channelPreviewTheme,
- StreamChannelHeaderThemeData? channelHeaderTheme,
- StreamMessageThemeData? otherMessageTheme,
- StreamMessageThemeData? ownMessageTheme,
- StreamMessageInputThemeData? messageInputTheme,
- Widget defaultUserImage()?,
- PlaceholderUserImage? placeholderUserImage,
- IconThemeData? primaryIconTheme,
- List<
StreamReactionIcon> ? reactionIcons, - StreamGalleryHeaderThemeData? imageHeaderTheme,
- StreamMessageListViewThemeData? messageListViewTheme,
Creates a theme from scratch
Implementation
factory StreamChatThemeData({
Brightness? brightness,
StreamTextTheme? textTheme,
StreamColorTheme? colorTheme,
StreamChannelListHeaderThemeData? channelListHeaderTheme,
StreamChannelPreviewThemeData? channelPreviewTheme,
StreamChannelHeaderThemeData? channelHeaderTheme,
StreamMessageThemeData? otherMessageTheme,
StreamMessageThemeData? ownMessageTheme,
StreamMessageInputThemeData? messageInputTheme,
Widget Function(BuildContext, User)? defaultUserImage,
PlaceholderUserImage? placeholderUserImage,
IconThemeData? primaryIconTheme,
List<StreamReactionIcon>? reactionIcons,
StreamGalleryHeaderThemeData? imageHeaderTheme,
StreamGalleryFooterThemeData? imageFooterTheme,
StreamMessageListViewThemeData? messageListViewTheme,
}) {
brightness ??= colorTheme?.brightness ?? Brightness.light;
final isDark = brightness == Brightness.dark;
textTheme ??= isDark ? StreamTextTheme.dark() : StreamTextTheme.light();
colorTheme ??= isDark ? StreamColorTheme.dark() : StreamColorTheme.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,
);
return defaultData.merge(customizedData);
}