PaginateController<T> constructor

PaginateController<T>({
  1. PageFuture<T>? pageControl,
  2. PageRequest? pageRequest,
  3. int pageSize = RequestPaginate.DEFAULT_SIZE,
  4. String defaultTextNoData = "No data to show",
  5. 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);