removeItemsByKeys method

void removeItemsByKeys(
  1. Set<K> keys
)

Implementation

void removeItemsByKeys(Set<K> keys) {
  final existingKeys = keys.where(_itemsMap.containsKey).toSet();
  if (existingKeys.isEmpty) {
    throw ArgumentError.value(keys, 'keys', 'No matching items found');
  }

  _itemsMap.removeWhere((k, _) => existingKeys.contains(k));

  if (!isServerSide) {
    _localPaginationItems.removeWhere((x) => existingKeys.contains(itemKey(x)));
  }

  final displayItems = value.displayItems;
  final newDisplayItems = displayItems.where((x) => !existingKeys.contains(x.key)).toList();

  final newSelectedKeys = LinkedHashSet<K>.from(value.selectedKeys)..removeAll(existingKeys);
  final newExpandedKeys = LinkedHashSet<K>.from(value.expandedKeys)..removeAll(existingKeys);

  updateState(
    who: 'removeItems',
    displayItems: newDisplayItems,
    totalItems: value.totalItems - existingKeys.length,
    selectedKeys: newSelectedKeys,
    expandedKeys: newExpandedKeys,
  );
}