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