updateItems method

void updateItems(
  1. List<T> items
)

Implementation

void updateItems(List<T> items) {
  if (!isServerSide) {
    _localPaginationItems.clear();
    _localPaginationItems.addAll(items);
  }

  Set<K> preservedKeys = <K>{...selectedKeys, ...expandedKeys};

  final preservedItems = <K, T>{};
  for (final k in preservedKeys) {
    final v = _itemsMap[k];
    if (v != null) preservedItems[k] = v;
  }

  _itemsMap
    ..clear()
    ..addAll(preservedItems);

  void addItemRecursive(T item) {
    final key = itemKey(item);
    _itemsMap[key] = item;

    if (isHierarchical) {
      final children = itemChildren!(item);
      if (children != null) {
        for (final child in children) {
          addItemRecursive(child);
        }
      }
    }
  }

  for (final item in items) {
    addItemRecursive(item);
  }

  if (!isServerSide) {
    _executePaginationAction('updateItems', page: 1);
  }
}