Merge branch 'feature/new-ui' into feature/reactions

This commit is contained in:
Salvatore Giordano
2020-10-23 16:29:37 +02:00
9 changed files with 68 additions and 37 deletions
+9 -4
View File
@@ -64,6 +64,7 @@ class ChannelListView extends StatefulWidget {
this.onChannelLongPress,
this.channelWidget,
this.channelPreviewBuilder,
this.separatorBuilder,
this.errorBuilder,
this.onImageTap,
this.swipeToAction = false,
@@ -113,6 +114,9 @@ class ChannelListView extends StatefulWidget {
/// Builder used to create a custom channel preview
final ChannelPreviewBuilder channelPreviewBuilder;
/// Builder used to create a custom item separator
final Function(BuildContext, int) separatorBuilder;
/// The function called when the image is tapped
final Function(Channel) onImageTap;
@@ -273,6 +277,9 @@ class _ChannelListViewState extends State<ChannelListView>
Widget _itemBuilder(context, int i, List<Channel> channels) {
if (i % 2 != 0) {
if (widget.separatorBuilder != null) {
return widget.separatorBuilder(context, i);
}
return _separatorBuilder(context, i);
}
@@ -304,10 +311,8 @@ class _ChannelListViewState extends State<ChannelListView>
return StreamChannel(
key: ValueKey<String>('CHANNEL-${channel.id}'),
channel: channel,
child: StreamBuilder<DateTime>(
initialData: channel.updatedAt,
stream: channel.updatedAtStream,
builder: (context, snapshot) {
child: Builder(
builder: (context) {
Widget child;
if (widget.channelPreviewBuilder != null) {
child = Stack(
+3 -5
View File
@@ -6,7 +6,6 @@ import 'package:stream_chat_flutter/src/unread_indicator.dart';
import '../stream_chat_flutter.dart';
import 'channel_name.dart';
import 'typing_indicator.dart';
/// ![screenshot](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/screenshots/channel_preview.png)
/// ![screenshot](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/screenshots/channel_preview_paint.png)
@@ -71,10 +70,9 @@ class ChannelPreview extends StatelessWidget {
StreamChatTheme.of(context).channelPreviewTheme.title,
),
),
if (channel.state.unreadCount > 0)
UnreadIndicator(
channel: channel,
),
UnreadIndicator(
channel: channel,
),
],
),
subtitle: Row(
+31 -15
View File
@@ -12,20 +12,36 @@ class UnreadIndicator extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 8.0),
child: CircleAvatar(
backgroundColor:
StreamChatTheme.of(context).channelPreviewTheme.unreadCounterColor,
radius: 8,
child: Text(
'${channel.state.unreadCount}',
style: TextStyle(
fontSize: 11,
color: Colors.white,
),
),
),
);
return StreamBuilder<int>(
stream: channel.state.unreadCountStream,
initialData: channel.state.unreadCount,
builder: (context, snapshot) {
if (!snapshot.hasData || snapshot.data == 0) {
return SizedBox();
}
return Material(
borderRadius: BorderRadius.circular(8),
color: StreamChatTheme.of(context)
.channelPreviewTheme
.unreadCounterColor,
child: Padding(
padding: const EdgeInsets.only(
left: 5.0,
right: 5.0,
top: 2,
bottom: 1,
),
child: Center(
child: Text(
'${snapshot.data}',
style: TextStyle(
fontSize: 11,
color: Colors.white,
),
),
),
),
);
});
}
}