loadMore method
Implementation
Future<void> loadMore() async {
if (state.loading || state.loadingMore || state.endReached) {
return;
}
await wrap(
loading: false,
callback: () async {
emit(state.copyWith(loadingMore: true));
final result = await config.filterApi.filter(
NiceFilterModel(
page: NiceFilterPageModel(
number: state.values.length ~/ config.itemsPerPage,
size: config.itemsPerPage,
),
order: [state.order ?? config.defaultOrder],
query: state.query,
search: state.search,
),
);
emit(
state.copyWith(
result: NiceFilterResultModel(
page: result.page,
total: result.total,
values: [...state.values, ...result.values],
),
loadingMore: false,
endReached: result.values.length < config.itemsPerPage,
),
);
},
);
}