removeWhereEmit method
Removes all items that match the predicate. Returns the number of items removed.
Implementation
@override
int removeWhereEmit(bool Function(T item) test) {
final currentState = state;
if (currentState is! SmartPaginationLoaded<T>) return 0;
final updated = List<T>.from(currentState.allItems);
final originalLength = updated.length;
updated.removeWhere(test);
final removedCount = originalLength - updated.length;
if (removedCount == 0) return 0;
_onInsertionCallback?.call(updated);
_refreshDataAge();
emit(
currentState.copyWith(
allItems: updated,
items: updated,
lastUpdate: DateTime.now(),
fetchedAt: _lastFetchTime,
dataExpiredAt: _getDataExpiredAt(),
),
);
return removedCount;
}