chore: remove unnecessary ChannelTheme class
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user