From 15defc4caa308c719966d16e4f2f1a7429a2b107 Mon Sep 17 00:00:00 2001 From: groovinchip Date: Thu, 29 Jul 2021 09:23:50 -0400 Subject: [PATCH] chore: remove unnecessary ChannelTheme class --- .../lib/src/channel_header.dart | 15 +++---- .../lib/src/channel_info.dart | 5 +-- .../lib/src/full_screen_media.dart | 1 - .../lib/src/message_list_view.dart | 2 +- .../lib/src/stream_chat_theme.dart | 44 +++++++++---------- .../lib/src/theme/channel_header_theme.dart | 2 +- .../lib/src/theme/channel_theme.dart | 28 ------------ .../lib/src/theme/themes.dart | 1 - .../lib/src/thread_header.dart | 11 +++-- 9 files changed, 36 insertions(+), 73 deletions(-) delete mode 100644 packages/stream_chat_flutter/lib/src/theme/channel_theme.dart diff --git a/packages/stream_chat_flutter/lib/src/channel_header.dart b/packages/stream_chat_flutter/lib/src/channel_header.dart index 4df44765..c3adf9ee 100644 --- a/packages/stream_chat_flutter/lib/src/channel_header.dart +++ b/packages/stream_chat_flutter/lib/src/channel_header.dart @@ -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 ?? [ 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: [ 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, ), ], ), diff --git a/packages/stream_chat_flutter/lib/src/channel_info.dart b/packages/stream_chat_flutter/lib/src/channel_info.dart index 67e18801..e7fa84c0 100644 --- a/packages/stream_chat_flutter/lib/src/channel_info.dart +++ b/packages/stream_chat_flutter/lib/src/channel_info.dart @@ -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; diff --git a/packages/stream_chat_flutter/lib/src/full_screen_media.dart b/packages/stream_chat_flutter/lib/src/full_screen_media.dart index 0f6101b9..5d32d512 100644 --- a/packages/stream_chat_flutter/lib/src/full_screen_media.dart +++ b/packages/stream_chat_flutter/lib/src/full_screen_media.dart @@ -125,7 +125,6 @@ class _FullScreenMediaState extends State backgroundDecoration: BoxDecoration( color: ColorTween( begin: StreamChatTheme.of(context) - .channelTheme .channelHeaderTheme .color, end: Colors.black, diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 303c76db..bdc460af 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -628,7 +628,7 @@ class _MessageListViewState extends State { child: Text( '$replyCount ${replyCount == 1 ? 'Reply' : 'Replies'}', textAlign: TextAlign.center, - style: _streamTheme.channelTheme.channelHeaderTheme.subtitleStyle, + style: _streamTheme.channelHeaderTheme.subtitleStyle, ), ), ); diff --git a/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart b/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart index f83050a3..98a6e156 100644 --- a/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart +++ b/packages/stream_chat_flutter/lib/src/stream_chat_theme.dart @@ -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, diff --git a/packages/stream_chat_flutter/lib/src/theme/channel_header_theme.dart b/packages/stream_chat_flutter/lib/src/theme/channel_header_theme.dart index 2d3253dc..63e208e5 100644 --- a/packages/stream_chat_flutter/lib/src/theme/channel_header_theme.dart +++ b/packages/stream_chat_flutter/lib/src/theme/channel_header_theme.dart @@ -36,7 +36,7 @@ class ChannelHeaderTheme extends InheritedTheme { final channelHeaderTheme = context.dependOnInheritedWidgetOfExactType(); return channelHeaderTheme?.data ?? - StreamChatTheme.of(context).channelTheme.channelHeaderTheme; + StreamChatTheme.of(context).channelHeaderTheme; } @override diff --git a/packages/stream_chat_flutter/lib/src/theme/channel_theme.dart b/packages/stream_chat_flutter/lib/src/theme/channel_theme.dart deleted file mode 100644 index a8c6260d..00000000 --- a/packages/stream_chat_flutter/lib/src/theme/channel_theme.dart +++ /dev/null @@ -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), - ); - } -} diff --git a/packages/stream_chat_flutter/lib/src/theme/themes.dart b/packages/stream_chat_flutter/lib/src/theme/themes.dart index a3e974e8..7e2fb0aa 100644 --- a/packages/stream_chat_flutter/lib/src/theme/themes.dart +++ b/packages/stream_chat_flutter/lib/src/theme/themes.dart @@ -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'; diff --git a/packages/stream_chat_flutter/lib/src/thread_header.dart b/packages/stream_chat_flutter/lib/src/thread_header.dart index 0473ca48..adf2f0e6 100644 --- a/packages/stream_chat_flutter/lib/src/thread_header.dart +++ b/packages/stream_chat_flutter/lib/src/thread_header.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, )