From 46410ede5020f2a9f87596004871db438e4a3a16 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Fri, 26 Feb 2021 18:48:46 +0530 Subject: [PATCH] [UI-Kit -> ChannelListCore] Replace ChannelListController function signature with `AsyncCallback` for better refreshIndicator support. Signed-off-by: Sahil Kumar --- .../lib/src/channel_list_view.dart | 10 +++------- .../lib/src/channel_list_core.dart | 14 ++++++-------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/channel_list_view.dart b/packages/stream_chat_flutter/lib/src/channel_list_view.dart index 7f9818a7..9edd39ff 100644 --- a/packages/stream_chat_flutter/lib/src/channel_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/channel_list_view.dart @@ -180,15 +180,13 @@ class _ChannelListViewState extends State { if (widget.pullToRefresh) { child = RefreshIndicator( - onRefresh: () async => _channelListController.loadData(), + onRefresh: () => _channelListController.loadData(), child: child, ); } return LazyLoadScrollView( - onEndOfPage: () async { - _channelListController.paginateData(); - }, + onEndOfPage: () => _channelListController.paginateData(), child: child, ); } @@ -451,9 +449,7 @@ class _ChannelListViewState extends State { style: Theme.of(context).textTheme.headline6, ), FlatButton( - onPressed: () { - _channelListController.loadData(); - }, + onPressed: () => _channelListController.loadData(), child: Text('Retry'), ), ], diff --git a/packages/stream_chat_flutter_core/lib/src/channel_list_core.dart b/packages/stream_chat_flutter_core/lib/src/channel_list_core.dart index acc9f802..816bb052 100644 --- a/packages/stream_chat_flutter_core/lib/src/channel_list_core.dart +++ b/packages/stream_chat_flutter_core/lib/src/channel_list_core.dart @@ -159,10 +159,9 @@ class _ChannelListCoreState extends State { return widget.errorBuilder(context, snapshot.error); } - void loadData() { + Future loadData() { final channelsBloc = ChannelsBloc.of(context); - - channelsBloc.queryChannels( + return channelsBloc.queryChannels( filter: widget.filter, sortOptions: widget.sort, paginationParams: widget.pagination, @@ -170,10 +169,9 @@ class _ChannelListCoreState extends State { ); } - void paginateData() { + Future paginateData() { final channelsBloc = ChannelsBloc.of(context); - - channelsBloc.queryChannels( + return channelsBloc.queryChannels( filter: widget.filter, sortOptions: widget.sort, paginationParams: widget.pagination.copyWith( @@ -229,10 +227,10 @@ class _ChannelListCoreState extends State { class ChannelListController { /// This function calls Stream's servers to load a list of channels. If there is existing data, /// calling this function causes a reload. - VoidCallback loadData; + AsyncCallback loadData; /// This function is used to load another page of data. Note, [loadData] should be /// used to populate the initial page of data. Calling [paginateData] performs a query /// to load subsequent pages. - VoidCallback paginateData; + AsyncCallback paginateData; }