add ontap to channelpreview

This commit is contained in:
Salvatore Giordano
2020-12-10 11:42:01 +01:00
parent da4bc14679
commit df2d822315
2 changed files with 40 additions and 14 deletions
+16 -13
View File
@@ -101,21 +101,24 @@ class ChannelHeader extends StatelessWidget implements PreferredSizeWidget {
child: ChannelImage( child: ChannelImage(
onTap: onImageTap ?? onTap: onImageTap ??
() { () {
var currentUser = StreamChat.of(context).user; if (channel.memberCount == 2 && channel.isDistinct) {
var otherUser = channel.state.members.firstWhere( final currentUser = StreamChat.of(context).user;
(element) => element.user.id != currentUser.id); final otherUser = channel.state.members.firstWhere(
(element) => element.user.id != currentUser.id,
if (channel.memberCount == 2) { orElse: () => null,
);
if (otherUser != null) { if (otherUser != null) {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => StreamChannel( builder: (context) => StreamChannel(
channel: channel, channel: channel,
child: ChatInfoScreen( child: ChatInfoScreen(
user: otherUser.user, user: otherUser.user,
), ),
))); ),
),
);
} }
} }
}, },
+24 -1
View File
@@ -7,6 +7,7 @@ import 'package:stream_chat_flutter/src/stream_svg_icon.dart';
import '../stream_chat_flutter.dart'; import '../stream_chat_flutter.dart';
import 'channel_name.dart'; import 'channel_name.dart';
import 'channel_unread_indicator.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.png)
/// ![screenshot](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/screenshots/channel_preview_paint.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( 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( title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,