platform/packages/paginate
2021-02-21 10:47:23 +08:00
..
.idea Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
example Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
lib Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
test Fixed test errors 2021-02-21 10:47:23 +08:00
.analysis-options Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
.gitignore Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
.travis.yml Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
CHANGELOG.md Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
LICENSE Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00
pubspec.yaml Updated dart requirements to 2.10 2021-02-14 13:22:25 +08:00
README.md Add 'packages/paginate/' from commit 'a2daba88abb3c4c73b67922d3f93f2032b14e1da' 2020-02-15 18:28:46 -05:00

paginate

Pub build status

Platform-agnostic pagination library, with custom support for the Angel framework.

Installation

In your pubspec.yaml file:

dependencies:
  angel_paginate: ^2.0.0

Usage

This library exports a Paginator<T>, which can be used to efficiently produce instances of PaginationResult<T>. Pagination results, when serialized to JSON, look like this:

{
  "total" : 75,
  "items_per_page" : 10,
  "previous_page" : 3,
  "current_page" : 4,
  "next_page" : 5,
  "start_index" : 30,
  "end_index" : 39,
  "data" : ["<items...>"]
}

Results can be parsed from Maps using the PaginationResult<T>.fromMap constructor, and serialized via their toJson() method.

To create a paginator:

import 'package:angel_paginate/angel_paginate.dart';

main() {
  var p = new Paginator(iterable);
  
  // Get the current page (default: page 1)
  var page = p.current;
  print(page.total);
  print(page.startIndex);
  print(page.data); // The actual items on this page.
  p.next(); // Advance a page
  p.back(); // Back one page
  p.goToPage(10); // Go to page number (1-based, not a 0-based index)
}

The entire Paginator API is documented, so check out the DartDocs.

Paginators by default cache paginations, to improve performance as you shift through pages. This can be especially helpful in a client-side application where your UX involves a fast response time, i.e. a search page.