From df2d82231502f32551612c81ef095a447ac7c71e Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Thu, 10 Dec 2020 11:42:01 +0100 Subject: [PATCH] add ontap to channelpreview --- lib/src/channel_header.dart | 29 ++++++++++++++++------------- lib/src/channel_preview.dart | 25 ++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/lib/src/channel_header.dart b/lib/src/channel_header.dart index 09833ad3..96ed9769 100644 --- a/lib/src/channel_header.dart +++ b/lib/src/channel_header.dart @@ -101,21 +101,24 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget { child: ChannelImage( onTap: onImageTap ?? () { - var currentUser = StreamChat.of(context).user; - var otherUser = channel.state.members.firstWhere( - (element) => element.user.id != currentUser.id); - - if (channel.memberCount == 2) { + if (channel.memberCount == 2 && channel.isDistinct) { + final currentUser = StreamChat.of(context).user; + final otherUser = channel.state.members.firstWhere( + (element) => element.user.id != currentUser.id, + orElse: () => null, + ); if (otherUser != null) { Navigator.push( - context, - MaterialPageRoute( - builder: (context) => StreamChannel( - channel: channel, - child: ChatInfoScreen( - user: otherUser.user, - ), - ))); + context, + MaterialPageRoute( + builder: (context) => StreamChannel( + channel: channel, + child: ChatInfoScreen( + user: otherUser.user, + ), + ), + ), + ); } } }, diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 26f68812..5f58e254 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -7,6 +7,7 @@ import 'package:stream_chat_flutter/src/stream_svg_icon.dart'; import '../stream_chat_flutter.dart'; import 'channel_name.dart'; import 'channel_unread_indicator.dart'; +import 'chat_info_screen.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) @@ -60,7 +61,29 @@ class ChannelPreview extends StatelessWidget { } }, leading: ChannelImage( - onTap: onImageTap, + onTap: onImageTap ?? + () { + if (channel.memberCount == 2 && channel.isDistinct) { + final currentUser = StreamChat.of(context).user; + final otherUser = channel.state.members.firstWhere( + (element) => element.user.id != currentUser.id, + orElse: () => null, + ); + if (otherUser != null) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => StreamChannel( + channel: channel, + child: ChatInfoScreen( + user: otherUser.user, + ), + ), + ), + ); + } + } + }, ), title: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,