update single_conversation example

This commit is contained in:
Salvatore Giordano
2020-02-24 16:20:48 +01:00
parent 9f22241f89
commit d3b6a7e5e5
13 changed files with 714 additions and 260 deletions
+16 -19
View File
@@ -30,18 +30,18 @@ class StreamChannel extends StatefulWidget {
}
@override
StreamChannelState createState() => StreamChannelState(channelClient);
StreamChannelState createState() => StreamChannelState();
}
class StreamChannelState extends State<StreamChannel> {
final ChannelClient channelClient;
StreamChannelState();
StreamChannelState(this.channelClient);
ChannelClient get channelClient => widget.channelClient;
ChannelState get channelState => channelClient.state.channelState;
ChannelState get channelState => widget.channelClient.state.channelState;
Stream<ChannelState> get channelStateStream =>
channelClient.state.channelStateStream;
widget.channelClient.state.channelStateStream;
final BehaviorSubject<bool> _queryMessageController = BehaviorSubject();
@@ -55,7 +55,7 @@ class StreamChannelState extends State<StreamChannel> {
firstId = channelState.messages.first.id;
}
channelClient
widget.channelClient
.query(
messagesPagination: PaginationParams(
lessThan: firstId,
@@ -73,11 +73,11 @@ class StreamChannelState extends State<StreamChannel> {
_queryMessageController.add(true);
String firstId;
if (channelClient.state.threads.containsKey(parentId)) {
firstId = channelClient.state.threads[parentId].first.id;
if (widget.channelClient.state.threads.containsKey(parentId)) {
firstId = widget.channelClient.state.threads[parentId].first.id;
}
return channelClient
return widget.channelClient
.getReplies(
parentId,
PaginationParams(
@@ -95,29 +95,26 @@ class StreamChannelState extends State<StreamChannel> {
@override
void dispose() {
_queryMessageController.close();
channelClient.dispose();
widget.channelClient.dispose();
super.dispose();
}
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
if (channelClient == null) {
if (widget.channelClient == null) {
return Center(
child: CircularProgressIndicator(),
);
}
return FutureBuilder<bool>(
future: channelClient.initialized,
future: widget.channelClient.initialized,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
return Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
} else if (snapshot.hasError) {
return Center(