[UI-Kit -> ChannelListCore] Replace ChannelListController function signature with AsyncCallback for better refreshIndicator support.

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-02-26 18:48:46 +05:30
parent 81c2a514fb
commit 46410ede50
2 changed files with 9 additions and 15 deletions
@@ -180,15 +180,13 @@ class _ChannelListViewState extends State<ChannelListView> {
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<ChannelListView> {
style: Theme.of(context).textTheme.headline6,
),
FlatButton(
onPressed: () {
_channelListController.loadData();
},
onPressed: () => _channelListController.loadData(),
child: Text('Retry'),
),
],
@@ -159,10 +159,9 @@ class _ChannelListCoreState extends State<ChannelListCore> {
return widget.errorBuilder(context, snapshot.error);
}
void loadData() {
Future<void> 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<ChannelListCore> {
);
}
void paginateData() {
Future<void> 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<ChannelListCore> {
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;
}