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,
- @Deprecated('Use StreamChatConfigurationData.reactionIcons instead') List<
StreamReactionIcon> ? reactionIcons, - StreamGalleryHeaderThemeData? imageHeaderTheme,
- StreamMessageListViewThemeData? messageListViewTheme,
- @Deprecated("Use 'StreamChatThemeData.voiceRecordingAttachmentTheme' instead") StreamVoiceRecordingThemeData? voiceRecordingTheme,
- StreamPollCreatorThemeData? pollCreatorTheme,
- StreamPollInteractorThemeData? pollInteractorTheme,
- StreamPollOptionsDialogThemeData? pollOptionsDialogTheme,
- StreamPollResultsDialogThemeData? pollResultsDialogTheme,
- StreamPollCommentsDialogThemeData? pollCommentsDialogTheme,
- StreamPollOptionVotesDialogThemeData? pollOptionVotesDialogTheme,
- StreamThreadListTileThemeData? threadListTileTheme,
- StreamAudioWaveformThemeData? audioWaveformTheme,
- StreamAudioWaveformSliderThemeData? audioWaveformSliderTheme,
- StreamVoiceRecordingAttachmentThemeData? voiceRecordingAttachmentTheme,
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,
@Deprecated('Use StreamChatConfigurationData.reactionIcons instead')
List<StreamReactionIcon>? reactionIcons,
StreamGalleryHeaderThemeData? imageHeaderTheme,
StreamGalleryFooterThemeData? imageFooterTheme,
StreamMessageListViewThemeData? messageListViewTheme,
@Deprecated(
"Use 'StreamChatThemeData.voiceRecordingAttachmentTheme' instead")
StreamVoiceRecordingThemeData? voiceRecordingTheme,
StreamPollCreatorThemeData? pollCreatorTheme,
StreamPollInteractorThemeData? pollInteractorTheme,
StreamPollOptionsDialogThemeData? pollOptionsDialogTheme,
StreamPollResultsDialogThemeData? pollResultsDialogTheme,
StreamPollCommentsDialogThemeData? pollCommentsDialogTheme,
StreamPollOptionVotesDialogThemeData? pollOptionVotesDialogTheme,
StreamThreadListTileThemeData? threadListTileTheme,
StreamAudioWaveformThemeData? audioWaveformTheme,
StreamAudioWaveformSliderThemeData? audioWaveformSliderTheme,
StreamVoiceRecordingAttachmentThemeData? voiceRecordingAttachmentTheme,
}) {
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,
voiceRecordingTheme: voiceRecordingTheme,
pollCreatorTheme: pollCreatorTheme,
pollInteractorTheme: pollInteractorTheme,
pollOptionsDialogTheme: pollOptionsDialogTheme,
pollResultsDialogTheme: pollResultsDialogTheme,
pollCommentsDialogTheme: pollCommentsDialogTheme,
pollOptionVotesDialogTheme: pollOptionVotesDialogTheme,
threadListTileTheme: threadListTileTheme,
audioWaveformTheme: audioWaveformTheme,
audioWaveformSliderTheme: audioWaveformSliderTheme,
voiceRecordingAttachmentTheme: voiceRecordingAttachmentTheme,
);
return defaultData.merge(customizedData);
}