GridResult<TListItem>.fromMap constructor
Factory constructor that creates an instance of GridResult from a Map.
Takes an optional itemParser function for custom mapping of items.
Implementation
factory GridResult.fromMap(
Map<dynamic, dynamic> map, [
TListItem Function(Map<String, dynamic> data)? itemParser,
]) {
final List<TListItem> items =
(map[GridResultJsonConfiguration.itemsJsonKey] as List<dynamic>?)
?.map<TListItem>((x) => itemParser?.call(x) ?? x as TListItem)
.toList() ??
[];
final int pageSize = map[GridResultJsonConfiguration.pageSizeJsonKey] ?? 0;
final String nextCursor =
map[GridResultJsonConfiguration.nextCursorJsonKey] ?? '';
return GridResult<TListItem>(
items: items,
hasMoreItems:
map[GridResultJsonConfiguration.hasMoreItemsJsonKey] ??
(nextCursor.isNotEmpty || items.abstractBlocListCount == pageSize),
currentPage: map[GridResultJsonConfiguration.currentPageJsonKey] ?? 0,
startPage: map[GridResultJsonConfiguration.startPageJsonKey] ?? 0,
endPage: map[GridResultJsonConfiguration.endPageJsonKey] ?? 0,
pageCount: map[GridResultJsonConfiguration.pageCountJsonKey] ?? 0,
pageSize: pageSize,
rowCount: map[GridResultJsonConfiguration.rowCountJsonKey] ?? 0,
hasPreviousPage:
map[GridResultJsonConfiguration.hasPreviousPageJsonKey] ?? 0,
hasNextPage: map[GridResultJsonConfiguration.hasNextPageJsonKey] ?? 0,
hasMultiplePages:
map[GridResultJsonConfiguration.hasMultiplePagesJsonKey] ?? 0,
firstRowOnPage:
map[GridResultJsonConfiguration.firstRowOnPageJsonKey] ?? 0,
lastRowOnPage: map[GridResultJsonConfiguration.lastRowOnPageJsonKey] ?? 0,
hasItems:
map[GridResultJsonConfiguration.hasItemsJsonKey] ??
items.abstractBlocListIsNotNullOrEmpty,
nextCursor: map[GridResultJsonConfiguration.nextCursorJsonKey],
previousCursor: map[GridResultJsonConfiguration.previousCursorJsonKey],
additionalData: map[GridResultJsonConfiguration.additionalDataJsonKey],
);
}