insertAllEmit method

  1. @override
void insertAllEmit(
  1. List<T> items, {
  2. int index = 0,
})
override

Inserts multiple items at the specified index.

Implementation

@override
void insertAllEmit(List<T> items, {int index = 0}) {
  final currentState = state;
  if (currentState is! SmartPaginationLoaded<T>) return;

  if (items.isEmpty) return;

  final currentItems = List<T>.from(currentState.allItems);

  // Use efficient merge if sorting is active, otherwise use simple insertAll
  final updated = _orders?.activeOrder != null
      ? _insertAllSorted(currentItems, items)
      : (List<T>.from(currentItems)..insertAll(index.clamp(0, currentItems.length), items));

  _onInsertionCallback?.call(updated);

  _refreshDataAge();
  emit(
    currentState.copyWith(
      allItems: updated,
      items: updated,
      lastUpdate: DateTime.now(),
      fetchedAt: _lastFetchTime,
      dataExpiredAt: _getDataExpiredAt(),
    ),
  );
}