StreamChatThemeData constructor

StreamChatThemeData({
  1. Brightness? brightness,
  2. TextTheme? textTheme,
  3. ColorTheme? colorTheme,
  4. ChannelListHeaderThemeData? channelListHeaderTheme,
  5. ChannelPreviewThemeData? channelPreviewTheme,
  6. ChannelHeaderThemeData? channelHeaderTheme,
  7. MessageThemeData? otherMessageTheme,
  8. MessageThemeData? ownMessageTheme,
  9. MessageInputThemeData? messageInputTheme,
  10. Widget defaultUserImage(
    1. BuildContext,
    2. User
    )?,
  11. Widget placeholderUserImage(
    1. BuildContext,
    2. User
    )?,
  12. IconThemeData? primaryIconTheme,
  13. List<ReactionIcon>? reactionIcons,
  14. GalleryHeaderThemeData? imageHeaderTheme,
  15. GalleryFooterThemeData? imageFooterTheme,
  16. MessageListViewThemeData? messageListViewTheme,
  17. ChannelListViewThemeData? channelListViewTheme,
  18. UserListViewThemeData? userListViewTheme,
  19. 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);
}