PaginateController<T> constructor
PaginateController<T> ({
- PageFuture<
T> ? pageControl, - PageRequest? pageRequest,
- int pageSize = RequestPaginate.DEFAULT_SIZE,
- String defaultTextNoData = "No data to show",
- TextNoDataCallback? textNoDataCallback,
Implementation
PaginateController({
PageFuture<T>? pageControl,
PageRequest? pageRequest,
int pageSize = RequestPaginate.DEFAULT_SIZE,
this.defaultTextNoData = "No data to show",
this.textNoDataCallback,
}) : super(
pageFuture: pageControl ??
(index) async {
try {
Object? response;
List<T> result = [];
if (pageRequest != null) {
response = await pageRequest(index);
}
if (response is Resource) {
result = _checkResource<T>(
response as Resource<List<T>?>,
textNoDataCallback != null
? textNoDataCallback()
: defaultTextNoData);
} else if (response is List) {
result = response as List<T>;
}
if (index == 0 && result.isEmpty) {
throw Resource.error(
null,
textNoDataCallback != null
? textNoDataCallback()
: defaultTextNoData);
}
return result;
} catch (e) {
return Future.error(e);
}
},
pageSize: pageSize);