setItems method
Sets the list to a completely new set of items.
Implementation
@override
void setItems(List<T> items) {
final currentState = state;
final transformedItems = _applyListBuilder(items);
_onInsertionCallback?.call(transformedItems);
// Update last fetch time when setting items manually
_lastFetchTime = DateTime.now();
if (currentState is SmartPaginationLoaded<T>) {
emit(
currentState.copyWith(
allItems: transformedItems,
items: transformedItems,
hasReachedEnd: true,
lastUpdate: DateTime.now(),
fetchedAt: _lastFetchTime,
dataExpiredAt: _dataAge != null ? _lastFetchTime!.add(_dataAge) : null,
),
);
} else {
// Create a new loaded state if we're in initial or error state
final meta = PaginationMeta(
page: 1,
pageSize: items.length,
hasNext: false,
hasPrevious: false,
);
_currentMeta = meta;
emit(
SmartPaginationLoaded<T>(
items: List<T>.from(transformedItems),
allItems: transformedItems,
meta: meta,
hasReachedEnd: true,
isLoadingMore: false,
loadMoreError: null,
fetchedAt: _lastFetchTime,
dataExpiredAt: _dataAge != null ? _lastFetchTime!.add(_dataAge) : null,
),
);
}
}