getItemsWithPaginatedRequest method

Future<void> getItemsWithPaginatedRequest({
  1. required int page,
  2. String? key,
  3. bool isNewSearch = false,
})

Implementation

Future<void> getItemsWithPaginatedRequest({
  required int page,
  String? key,
  bool isNewSearch = false,
}) async {
  if (paginatedRequest == null) return;
  if (isNewSearch) {
    _page = 1;
    paginatedItemList.value = null;
    _hasMoreData = true;
  }
  if (!_hasMoreData) return;
  status.value = SearchableDropdownStatus.busy;
  final response = await paginatedRequest!(page, key);
  if (response is! List<SearchableDropdownMenuItem<T>>) return;

  paginatedItemList.value ??= [];
  paginatedItemList.value = paginatedItemList.value! + response;
  if (response.length < requestItemCount) {
    _hasMoreData = false;
  } else {
    _page = _page + 1;
  }
  status.value = SearchableDropdownStatus.loaded;
}