usePagination<T> function
PaginationController<T>
usePagination<T>(
- Future<
PaginationResult< service(), {T> > - 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);
}