add multiplr_conversation example

This commit is contained in:
Salvatore Giordano
2020-02-24 16:46:05 +01:00
parent d3b6a7e5e5
commit e0e36f50cc
7 changed files with 139 additions and 161 deletions
+7 -6
View File
@@ -100,14 +100,15 @@ class _ChannelListViewState extends State<ChannelListView> {
Widget child;
if (widget._channelPreviewBuilder != null) {
child = widget._channelPreviewBuilder(context, channelState);
child = GestureDetector(
onTap: () {
widget.onChannelTap(channelClient);
},
child: widget._channelPreviewBuilder(context, channelState),
);
} else {
child = ChannelPreview(
onTap: widget?.onChannelTap != null
? () {
widget?.onChannelTap(channelClient);
}
: null,
onTap: widget.onChannelTap,
);
}
+6 -6
View File
@@ -4,12 +4,13 @@ import 'package:flutter/widgets.dart';
import 'package:stream_chat/stream_chat.dart';
import 'channel_image.dart';
import 'channel_list_view.dart';
import 'channel_name_text.dart';
import 'stream_channel.dart';
import 'stream_chat.dart';
class ChannelPreview extends StatelessWidget {
final VoidCallback onTap;
final ChannelTapCallback onTap;
const ChannelPreview({
Key key,
@@ -37,14 +38,13 @@ class ChannelPreview extends StatelessWidget {
ChannelState channelState,
StreamChannelState streamChannel,
) {
final channelClient =
StreamChat.of(context).client.channelClients[channelState.channel.id];
return StreamChannel(
channelClient:
StreamChat.of(context).client.channelClients[channelState.channel.id],
channelClient: channelClient,
child: ListTile(
onTap: () {
if (onTap != null) {
onTap();
}
onTap(channelClient);
},
leading: ChannelImage(
channel: channelState.channel,
+2 -3
View File
@@ -8,7 +8,7 @@ class StreamChannel extends StatefulWidget {
StreamChannel({
Key key,
@required this.child,
this.channelClient,
@required this.channelClient,
}) : super(
key: key,
);
@@ -95,8 +95,6 @@ class StreamChannelState extends State<StreamChannel> {
@override
void dispose() {
_queryMessageController.close();
widget.channelClient.dispose();
super.dispose();
}
@@ -109,6 +107,7 @@ class StreamChannelState extends State<StreamChannel> {
}
return FutureBuilder<bool>(
future: widget.channelClient.initialized,
initialData: widget.channelClient.state != null,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Scaffold(