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,
|
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,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user