fetchNextPage method

Future<void> fetchNextPage()

Implementation

Future<void> fetchNextPage() async {
  if (_isLoadingMore || !_hasMore || state.isLoading) return;

  _isLoadingMore = true;
  final repository = ref.read(galleryRepositoryProvider);
  final query = ref.read(gallerySearchQueryProvider);
  final sortConfig = ref.read(gallerySortProvider);

  try {
    final nextPage = _currentPage + 1;
    final nextGalleries = await repository.findGalleries(
      page: nextPage,
      perPage: _perPage,
      filter: query.isEmpty ? null : query,
      sort: sortConfig.sort,
      descending: sortConfig.descending,
    );

    if (nextGalleries.isEmpty) {
      _hasMore = false;
    } else {
      _currentPage = nextPage;
      state = AsyncData([...state.value ?? [], ...nextGalleries]);
    }
  } finally {
    _isLoadingMore = false;
  }
}