chore: remove unnecessary ChannelTheme class

This commit is contained in:
groovinchip
2021-07-29 09:23:50 -04:00
parent cede1b572a
commit 15defc4caa
9 changed files with 36 additions and 73 deletions
@@ -140,17 +140,16 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget {
brightness: Theme.of(context).brightness, brightness: Theme.of(context).brightness,
elevation: 1, elevation: 1,
leading: leadingWidget, leading: leadingWidget,
backgroundColor: backgroundColor: chatThemeData.channelHeaderTheme.color,
chatThemeData.channelTheme.channelHeaderTheme.color,
actions: actions ?? actions: actions ??
<Widget>[ <Widget>[
Padding( Padding(
padding: const EdgeInsets.only(right: 10), padding: const EdgeInsets.only(right: 10),
child: Center( child: Center(
child: ChannelAvatar( child: ChannelAvatar(
borderRadius: chatThemeData.channelTheme borderRadius: chatThemeData
.channelHeaderTheme.avatarTheme?.borderRadius, .channelHeaderTheme.avatarTheme?.borderRadius,
constraints: chatThemeData.channelTheme constraints: chatThemeData
.channelHeaderTheme.avatarTheme?.constraints, .channelHeaderTheme.avatarTheme?.constraints,
onTap: onImageTap, onTap: onImageTap,
), ),
@@ -168,16 +167,16 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget {
children: <Widget>[ children: <Widget>[
title ?? title ??
ChannelName( ChannelName(
textStyle: chatThemeData textStyle:
.channelTheme.channelHeaderTheme.titleStyle, chatThemeData.channelHeaderTheme.titleStyle,
), ),
const SizedBox(height: 2), const SizedBox(height: 2),
subtitle ?? subtitle ??
ChannelInfo( ChannelInfo(
showTypingIndicator: showTypingIndicator, showTypingIndicator: showTypingIndicator,
channel: channel, channel: channel,
textStyle: chatThemeData textStyle:
.channelTheme.channelHeaderTheme.subtitleStyle, chatThemeData.channelHeaderTheme.subtitleStyle,
), ),
], ],
), ),
@@ -61,10 +61,7 @@ class ChannelInfo extends StatelessWidget {
if (watcherCount > 0) text += ' $watcherCount Online'; if (watcherCount > 0) text += ' $watcherCount Online';
alternativeWidget = Text( alternativeWidget = Text(
text, text,
style: StreamChatTheme.of(context) style: StreamChatTheme.of(context).channelHeaderTheme.subtitleStyle,
.channelTheme
.channelHeaderTheme
.subtitleStyle,
); );
} else { } else {
final userId = StreamChat.of(context).currentUser?.id; final userId = StreamChat.of(context).currentUser?.id;
@@ -125,7 +125,6 @@ class _FullScreenMediaState extends State<FullScreenMedia>
backgroundDecoration: BoxDecoration( backgroundDecoration: BoxDecoration(
color: ColorTween( color: ColorTween(
begin: StreamChatTheme.of(context) begin: StreamChatTheme.of(context)
.channelTheme
.channelHeaderTheme .channelHeaderTheme
.color, .color,
end: Colors.black, end: Colors.black,
@@ -628,7 +628,7 @@ class _MessageListViewState extends State<MessageListView> {
child: Text( child: Text(
'$replyCount ${replyCount == 1 ? 'Reply' : 'Replies'}', '$replyCount ${replyCount == 1 ? 'Reply' : 'Replies'}',
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: _streamTheme.channelTheme.channelHeaderTheme.subtitleStyle, style: _streamTheme.channelHeaderTheme.subtitleStyle,
), ),
), ),
); );
@@ -49,7 +49,7 @@ class StreamChatThemeData {
ColorTheme? colorTheme, ColorTheme? colorTheme,
ChannelListHeaderTheme? channelListHeaderTheme, ChannelListHeaderTheme? channelListHeaderTheme,
ChannelPreviewTheme? channelPreviewTheme, ChannelPreviewTheme? channelPreviewTheme,
ChannelTheme? channelTheme, ChannelHeaderThemeData? channelHeaderTheme,
MessageTheme? otherMessageTheme, MessageTheme? otherMessageTheme,
MessageTheme? ownMessageTheme, MessageTheme? ownMessageTheme,
MessageInputTheme? messageInputTheme, MessageInputTheme? messageInputTheme,
@@ -76,7 +76,7 @@ class StreamChatThemeData {
final customizedData = defaultData.copyWith( final customizedData = defaultData.copyWith(
channelListHeaderTheme: channelListHeaderTheme, channelListHeaderTheme: channelListHeaderTheme,
channelPreviewTheme: channelPreviewTheme, channelPreviewTheme: channelPreviewTheme,
channelTheme: channelTheme, channelHeaderTheme: channelHeaderTheme,
otherMessageTheme: otherMessageTheme, otherMessageTheme: otherMessageTheme,
ownMessageTheme: ownMessageTheme, ownMessageTheme: ownMessageTheme,
messageInputTheme: messageInputTheme, messageInputTheme: messageInputTheme,
@@ -108,7 +108,7 @@ class StreamChatThemeData {
required this.colorTheme, required this.colorTheme,
required this.channelListHeaderTheme, required this.channelListHeaderTheme,
required this.channelPreviewTheme, required this.channelPreviewTheme,
required this.channelTheme, required this.channelHeaderTheme,
required this.otherMessageTheme, required this.otherMessageTheme,
required this.ownMessageTheme, required this.ownMessageTheme,
required this.messageInputTheme, required this.messageInputTheme,
@@ -147,8 +147,8 @@ class StreamChatThemeData {
/// Theme of the [ChannelListHeader] /// Theme of the [ChannelListHeader]
final ChannelListHeaderTheme channelListHeaderTheme; final ChannelListHeaderTheme channelListHeaderTheme;
/// Theme of the chat widgets dedicated to a channel /// Theme of the chat widgets dedicated to a channel header
final ChannelTheme channelTheme; final ChannelHeaderThemeData channelHeaderTheme;
/// The default style for [GalleryHeader]s below the overall /// The default style for [GalleryHeader]s below the overall
/// [StreamChatTheme]. /// [StreamChatTheme].
@@ -194,7 +194,7 @@ class StreamChatThemeData {
TextTheme? textTheme, TextTheme? textTheme,
ColorTheme? colorTheme, ColorTheme? colorTheme,
ChannelPreviewTheme? channelPreviewTheme, ChannelPreviewTheme? channelPreviewTheme,
ChannelTheme? channelTheme, ChannelHeaderThemeData? channelHeaderTheme,
MessageTheme? ownMessageTheme, MessageTheme? ownMessageTheme,
MessageTheme? otherMessageTheme, MessageTheme? otherMessageTheme,
MessageInputTheme? messageInputTheme, MessageInputTheme? messageInputTheme,
@@ -218,7 +218,7 @@ class StreamChatThemeData {
defaultUserImage: defaultUserImage ?? this.defaultUserImage, defaultUserImage: defaultUserImage ?? this.defaultUserImage,
channelPreviewTheme: channelPreviewTheme:
this.channelPreviewTheme.merge(channelPreviewTheme), this.channelPreviewTheme.merge(channelPreviewTheme),
channelTheme: this.channelTheme.merge(channelTheme), channelHeaderTheme: this.channelHeaderTheme.merge(channelHeaderTheme),
ownMessageTheme: this.ownMessageTheme.merge(ownMessageTheme), ownMessageTheme: this.ownMessageTheme.merge(ownMessageTheme),
otherMessageTheme: this.otherMessageTheme.merge(otherMessageTheme), otherMessageTheme: this.otherMessageTheme.merge(otherMessageTheme),
messageInputTheme: this.messageInputTheme.merge(messageInputTheme), messageInputTheme: this.messageInputTheme.merge(messageInputTheme),
@@ -243,7 +243,7 @@ class StreamChatThemeData {
primaryIconTheme: other.primaryIconTheme, primaryIconTheme: other.primaryIconTheme,
defaultUserImage: other.defaultUserImage, defaultUserImage: other.defaultUserImage,
channelPreviewTheme: channelPreviewTheme.merge(other.channelPreviewTheme), channelPreviewTheme: channelPreviewTheme.merge(other.channelPreviewTheme),
channelTheme: channelTheme.merge(other.channelTheme), channelHeaderTheme: channelHeaderTheme.merge(other.channelHeaderTheme),
ownMessageTheme: ownMessageTheme.merge(other.ownMessageTheme), ownMessageTheme: ownMessageTheme.merge(other.ownMessageTheme),
otherMessageTheme: otherMessageTheme.merge(other.otherMessageTheme), otherMessageTheme: otherMessageTheme.merge(other.otherMessageTheme),
messageInputTheme: messageInputTheme.merge(other.messageInputTheme), messageInputTheme: messageInputTheme.merge(other.messageInputTheme),
@@ -269,21 +269,19 @@ class StreamChatThemeData {
final accentColor = colorTheme.accentPrimary; final accentColor = colorTheme.accentPrimary;
final iconTheme = final iconTheme =
IconThemeData(color: colorTheme.textHighEmphasis.withOpacity(.5)); IconThemeData(color: colorTheme.textHighEmphasis.withOpacity(.5));
final channelTheme = ChannelTheme( final channelHeaderTheme = ChannelHeaderThemeData(
channelHeaderTheme: ChannelHeaderThemeData( avatarTheme: AvatarThemeData(
avatarTheme: AvatarThemeData( borderRadius: BorderRadius.circular(20),
borderRadius: BorderRadius.circular(20), constraints: const BoxConstraints.tightFor(
constraints: const BoxConstraints.tightFor( height: 40,
height: 40, width: 40,
width: 40,
),
),
color: colorTheme.barsBg,
titleStyle: textTheme.headlineBold,
subtitleStyle: textTheme.footnote.copyWith(
color: const Color(0xff7A7A7A),
), ),
), ),
color: colorTheme.barsBg,
titleStyle: textTheme.headlineBold,
subtitleStyle: textTheme.footnote.copyWith(
color: const Color(0xff7A7A7A),
),
); );
final channelPreviewTheme = ChannelPreviewTheme( final channelPreviewTheme = ChannelPreviewTheme(
unreadCounterColor: colorTheme.accentError, unreadCounterColor: colorTheme.accentError,
@@ -325,7 +323,7 @@ class StreamChatThemeData {
color: colorTheme.barsBg, color: colorTheme.barsBg,
title: textTheme.headlineBold, title: textTheme.headlineBold,
), ),
channelTheme: channelTheme, channelHeaderTheme: channelHeaderTheme,
ownMessageTheme: MessageTheme( ownMessageTheme: MessageTheme(
messageAuthor: messageAuthor:
textTheme.footnote.copyWith(color: colorTheme.textLowEmphasis), textTheme.footnote.copyWith(color: colorTheme.textLowEmphasis),
@@ -459,7 +457,7 @@ class StreamChatThemeData {
], ],
galleryHeaderTheme: GalleryHeaderThemeData( galleryHeaderTheme: GalleryHeaderThemeData(
closeButtonColor: colorTheme.textHighEmphasis, closeButtonColor: colorTheme.textHighEmphasis,
backgroundColor: channelTheme.channelHeaderTheme.color, backgroundColor: channelHeaderTheme.color,
iconMenuPointColor: colorTheme.textHighEmphasis, iconMenuPointColor: colorTheme.textHighEmphasis,
titleTextStyle: textTheme.headlineBold, titleTextStyle: textTheme.headlineBold,
subtitleTextStyle: channelPreviewTheme.subtitle, subtitleTextStyle: channelPreviewTheme.subtitle,
@@ -36,7 +36,7 @@ class ChannelHeaderTheme extends InheritedTheme {
final channelHeaderTheme = final channelHeaderTheme =
context.dependOnInheritedWidgetOfExactType<ChannelHeaderTheme>(); context.dependOnInheritedWidgetOfExactType<ChannelHeaderTheme>();
return channelHeaderTheme?.data ?? return channelHeaderTheme?.data ??
StreamChatTheme.of(context).channelTheme.channelHeaderTheme; StreamChatTheme.of(context).channelHeaderTheme;
} }
@override @override
@@ -1,28 +0,0 @@
import 'package:stream_chat_flutter/src/theme/channel_header_theme.dart';
/// Channel theme data
class ChannelTheme {
/// Constructor for creating [ChannelTheme]
ChannelTheme({
required this.channelHeaderTheme,
});
/// Theme of the [ChannelHeader] widget
final ChannelHeaderThemeData channelHeaderTheme;
/// Creates a copy of [ChannelTheme] with specified attributes overridden.
ChannelTheme copyWith({
ChannelHeaderThemeData? channelHeaderTheme,
}) =>
ChannelTheme(
channelHeaderTheme: channelHeaderTheme ?? this.channelHeaderTheme,
);
/// Merge with theme
ChannelTheme merge(ChannelTheme? other) {
if (other == null) return this;
return copyWith(
channelHeaderTheme: channelHeaderTheme.merge(other.channelHeaderTheme),
);
}
}
@@ -3,7 +3,6 @@ export 'channel_header_theme.dart';
export 'channel_list_header_theme.dart'; export 'channel_list_header_theme.dart';
export 'channel_list_view_theme.dart'; export 'channel_list_view_theme.dart';
export 'channel_preview_theme.dart'; export 'channel_preview_theme.dart';
export 'channel_theme.dart';
export 'color_theme.dart'; export 'color_theme.dart';
export 'gallery_footer_theme.dart'; export 'gallery_footer_theme.dart';
export 'gallery_header_theme.dart'; export 'gallery_header_theme.dart';
@@ -112,12 +112,11 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget {
children: [ children: [
Text( Text(
'with ', 'with ',
style: chatThemeData.channelTheme.channelHeaderTheme.subtitleStyle, style: chatThemeData.channelHeaderTheme.subtitleStyle,
), ),
Flexible( Flexible(
child: ChannelName( child: ChannelName(
textStyle: textStyle: chatThemeData.channelHeaderTheme.subtitleStyle,
chatThemeData.channelTheme.channelHeaderTheme.subtitleStyle,
), ),
), ),
], ],
@@ -136,7 +135,7 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget {
showUnreads: true, showUnreads: true,
) )
: const SizedBox()), : const SizedBox()),
backgroundColor: chatThemeData.channelTheme.channelHeaderTheme.color, backgroundColor: chatThemeData.channelHeaderTheme.color,
centerTitle: true, centerTitle: true,
actions: actions, actions: actions,
title: InkWell( title: InkWell(
@@ -150,14 +149,14 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget {
title ?? title ??
Text( Text(
'Thread Reply', 'Thread Reply',
style: chatThemeData.channelTheme.channelHeaderTheme.titleStyle, style: chatThemeData.channelHeaderTheme.titleStyle,
), ),
const SizedBox(height: 2), const SizedBox(height: 2),
if (showTypingIndicator) if (showTypingIndicator)
TypingIndicator( TypingIndicator(
alignment: Alignment.center, alignment: Alignment.center,
channel: StreamChannel.of(context).channel, channel: StreamChannel.of(context).channel,
style: chatThemeData.channelTheme.channelHeaderTheme.subtitleStyle, style: chatThemeData.channelHeaderTheme.subtitleStyle,
parentId: parent.id, parentId: parent.id,
alternativeWidget: defaultSubtitle, alternativeWidget: defaultSubtitle,
) )