From 91c0a7031a8f47327b5c6ad8d16b5913b87138f2 Mon Sep 17 00:00:00 2001 From: groovinchip Date: Fri, 6 Aug 2021 11:39:51 -0400 Subject: [PATCH 1/4] feat(ui): added backgroundColor property to the various header widgets Also updated CHANGELOG.md --- packages/stream_chat_flutter/CHANGELOG.md | 1 + packages/stream_chat_flutter/lib/src/channel_header.dart | 6 +++++- .../stream_chat_flutter/lib/src/channel_list_header.dart | 7 ++++++- packages/stream_chat_flutter/lib/src/gallery_header.dart | 7 ++++++- packages/stream_chat_flutter/lib/src/thread_header.dart | 6 +++++- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 4fe9e6e9..55dfcc62 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -4,6 +4,7 @@ - [#516](https://github.com/GetStream/stream-chat-flutter/issues/516): Added `StreamChatThemeData.placeholderUserImage` for building a widget when the `UserAvatar` image is loading +- Added a `backgroundColor` property to the various header widgets 🔄 Changed diff --git a/packages/stream_chat_flutter/lib/src/channel_header.dart b/packages/stream_chat_flutter/lib/src/channel_header.dart index 11dfc95a..ada04271 100644 --- a/packages/stream_chat_flutter/lib/src/channel_header.dart +++ b/packages/stream_chat_flutter/lib/src/channel_header.dart @@ -67,6 +67,7 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { this.subtitle, this.leading, this.actions, + this.backgroundColor, }) : preferredSize = const Size.fromHeight(kToolbarHeight), super(key: key); @@ -102,6 +103,9 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { /// By default it shows the [ChannelAvatar] final List? actions; + /// The background color for this [ChannelHeader]. + final Color? backgroundColor; + @override Widget build(BuildContext context) { final channel = StreamChannel.of(context).channel; @@ -141,7 +145,7 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { brightness: Theme.of(context).brightness, elevation: 1, leading: leadingWidget, - backgroundColor: channelHeaderTheme.color, + backgroundColor: backgroundColor ?? channelHeaderTheme.color, actions: actions ?? [ Padding( diff --git a/packages/stream_chat_flutter/lib/src/channel_list_header.dart b/packages/stream_chat_flutter/lib/src/channel_list_header.dart index 692db477..4ce8b0d2 100644 --- a/packages/stream_chat_flutter/lib/src/channel_list_header.dart +++ b/packages/stream_chat_flutter/lib/src/channel_list_header.dart @@ -61,6 +61,7 @@ class ChannelListHeader extends StatelessWidget implements PreferredSizeWidget { this.subtitle, this.leading, this.actions, + this.backgroundColor, }) : super(key: key); /// Pass this if you don't have a [StreamChatClient] in your widget tree. @@ -93,6 +94,9 @@ class ChannelListHeader extends StatelessWidget implements PreferredSizeWidget { /// By default it shows the new chat button final List? actions; + /// The background color for this [ChannelListHeader]. + final Color? backgroundColor; + @override Widget build(BuildContext context) { final _client = client ?? StreamChat.of(context).client; @@ -124,7 +128,8 @@ class ChannelListHeader extends StatelessWidget implements PreferredSizeWidget { textTheme: Theme.of(context).textTheme, brightness: Theme.of(context).brightness, elevation: 1, - backgroundColor: channelListHeaderThemeData.color, + backgroundColor: + backgroundColor ?? channelListHeaderThemeData.color, centerTitle: true, leading: leading ?? Center( diff --git a/packages/stream_chat_flutter/lib/src/gallery_header.dart b/packages/stream_chat_flutter/lib/src/gallery_header.dart index 3e732898..74eeb4ee 100644 --- a/packages/stream_chat_flutter/lib/src/gallery_header.dart +++ b/packages/stream_chat_flutter/lib/src/gallery_header.dart @@ -19,6 +19,7 @@ class GalleryHeader extends StatelessWidget implements PreferredSizeWidget { this.onImageTap, this.userName = '', this.sentAt = '', + this.backgroundColor, }) : preferredSize = const Size.fromHeight(kToolbarHeight), super(key: key); @@ -50,6 +51,9 @@ class GalleryHeader extends StatelessWidget implements PreferredSizeWidget { /// Stores the current index of media shown final int currentIndex; + /// The background color of this [GalleryHeader]. + final Color? backgroundColor; + @override Widget build(BuildContext context) { final galleryHeaderThemeData = GalleryHeaderTheme.of(context); @@ -66,7 +70,8 @@ class GalleryHeader extends StatelessWidget implements PreferredSizeWidget { onPressed: onBackPressed, ) : const SizedBox(), - backgroundColor: galleryHeaderThemeData.backgroundColor, + backgroundColor: + backgroundColor ?? galleryHeaderThemeData.backgroundColor, actions: [ if (!message.isEphemeral) IconButton( diff --git a/packages/stream_chat_flutter/lib/src/thread_header.dart b/packages/stream_chat_flutter/lib/src/thread_header.dart index 66b6b8be..abbd9bf0 100644 --- a/packages/stream_chat_flutter/lib/src/thread_header.dart +++ b/packages/stream_chat_flutter/lib/src/thread_header.dart @@ -70,6 +70,7 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { this.actions, this.onTitleTap, this.showTypingIndicator = true, + this.backgroundColor, }) : preferredSize = const Size.fromHeight(kToolbarHeight), super(key: key); @@ -102,6 +103,9 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { /// if a user is typing in this thread final bool showTypingIndicator; + /// The background color of this [ThreadHeader]. + final Color? backgroundColor; + @override Widget build(BuildContext context) { final channelHeaderTheme = ChannelHeaderTheme.of(context); @@ -136,7 +140,7 @@ class ThreadHeader extends StatelessWidget implements PreferredSizeWidget { showUnreads: true, ) : const SizedBox()), - backgroundColor: channelHeaderTheme.color, + backgroundColor: backgroundColor ?? channelHeaderTheme.color, centerTitle: true, actions: actions, title: InkWell( From b8de269c1f88985b7262d3b7b27a411800bd76bf Mon Sep 17 00:00:00 2001 From: groovinchip Date: Fri, 6 Aug 2021 12:16:22 -0400 Subject: [PATCH 2/4] chore: updated CHANGELOG.md --- packages/stream_chat_flutter/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 55dfcc62..cbcad168 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -4,7 +4,11 @@ - [#516](https://github.com/GetStream/stream-chat-flutter/issues/516): Added `StreamChatThemeData.placeholderUserImage` for building a widget when the `UserAvatar` image is loading -- Added a `backgroundColor` property to the various header widgets +- Added a `backgroundColor` property to the following widgets: + - `ChannelHeader` + - `ChannelListHeader` + - `GalleryHeader` + - `ThreadHeader` 🔄 Changed From bdc527f8d312418563adbd84633a05b05a8e4bc7 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Sat, 7 Aug 2021 00:58:46 +0530 Subject: [PATCH 3/4] feat(ui): added backgroundColor property to GalleryFooter Signed-off-by: xsahil03x --- packages/stream_chat_flutter/lib/src/gallery_footer.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/lib/src/gallery_footer.dart b/packages/stream_chat_flutter/lib/src/gallery_footer.dart index 74a7ac45..365368ac 100644 --- a/packages/stream_chat_flutter/lib/src/gallery_footer.dart +++ b/packages/stream_chat_flutter/lib/src/gallery_footer.dart @@ -27,6 +27,7 @@ class GalleryFooter extends StatefulWidget implements PreferredSizeWidget { this.totalPages = 0, this.mediaAttachments = const [], this.mediaSelectedCallBack, + this.backgroundColor, }) : preferredSize = const Size.fromHeight(kToolbarHeight), super(key: key); @@ -55,6 +56,9 @@ class GalleryFooter extends StatefulWidget implements PreferredSizeWidget { /// Callback when media is selected final ValueChanged? mediaSelectedCallBack; + /// The background color of this [GalleryFooter]. + final Color? backgroundColor; + @override _GalleryFooterState createState() => _GalleryFooterState(); @@ -90,7 +94,8 @@ class _GalleryFooterState extends State { context: context, removeTop: true, child: BottomAppBar( - color: galleryFooterThemeData.backgroundColor, + color: + widget.backgroundColor ?? galleryFooterThemeData.backgroundColor, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ From f30704dbeb8b489a5eb2d1abe3c0867a577e1004 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Sat, 7 Aug 2021 00:59:02 +0530 Subject: [PATCH 4/4] chore(ui): update CHANGELOG.md Signed-off-by: xsahil03x --- packages/stream_chat_flutter/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index cbcad168..5289ec30 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -8,6 +8,7 @@ - `ChannelHeader` - `ChannelListHeader` - `GalleryHeader` + - `GalleryFooter` - `ThreadHeader`