0 purchases
chunk
Used to paginate any type of data
Getting started #
Simply use the Chunker class to select the value you'll be using as your identifier between chunks. Then supply a function to be called each time you need a new chunk from your data source. Once those are provided, a single function is all that's needed to infinitely walk through your data.
Usage #
Set up #
final chunker = Chunker<String, String>(
cursorSelector: (v) => v,
dataChunker: (cursor, limit) {
final isFirstRun = cursor == null;
return isFirstRun
? dataSource.take(limit)
: dataSource
.skipWhile((value) => value != cursor)
.skip(1) // Start after the previous cursor
.take(limit);
},
);
copied to clipboard
Paginate #
First Chunk
For the first chunk you can provide a new Chunk with a custom limit or provide null to accept the default limit of 20
final Chunk<String, String> nextChunk = await chunker.getNext(
Chunk(limit: 15),
);
copied to clipboard
Remaining Chunks
For all future chunks, all you need to do is pass the previous chunk in.
await chunker.getNext(nextChunk);
copied to clipboard
Examples #
Dart Example #
Check out a simple Dart only example listing out US States in chunks.
Flutter Example #
Check out a more complete Flutter example derived from the flutter infinite list example created for the bloc library.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.