removeItemsByKeys method
void
removeItemsByKeys(
- 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,
);
}