usePagination<T> function

PaginationController<T> usePagination<T>(
  1. Future<PaginationResult<T>> service(
    1. int page,
    2. int pageSize
    ), {
  2. PaginationOptions<T> options = const PaginationOptions(),
})

A composable for managing paginated data fetching.

It simplifies the process of handling loading states, errors, and pagination logic.

Example

// In your widget
final controller = usePagination((page, pageSize) => fetchUsers(page, pageSize));

// In your build method
if (controller.loading.value) {
  return CircularProgressIndicator();
}

if (controller.error.value != null) {
  return Text('Error: ${controller.error.value}');
}

return ListView.builder(
  itemCount: controller.items.length,
  itemBuilder: (context, index) {
    final user = controller.items[index];
    return ListTile(title: Text(user.name));
  },
);

service is the asynchronous function that fetches the data for a given page and page size. options are the options for the pagination request.

Implementation

PaginationController<T> usePagination<T>(
  Future<PaginationResult<T>> Function(int page, int pageSize) service, {
  PaginationOptions<T> options = const PaginationOptions(),
}) {
  return PaginationController(service, options);
}