toggleRowSelection method

void toggleRowSelection(
  1. String rowId,
  2. Map<String, dynamic> rowData
)

Toggle row selection

Implementation

void toggleRowSelection(String rowId, Map<String, dynamic> rowData) {
  final newSelectedIds = Set<String>.from(_state.selectedRowIds);
  final newSelectedData = Map<String, Map<String, dynamic>>.from(_state.selectedRowsData);

  if (newSelectedIds.contains(rowId)) {
    newSelectedIds.remove(rowId);
    newSelectedData.remove(rowId);
  } else {
    newSelectedIds.add(rowId);
    newSelectedData[rowId] = rowData;
  }

  _state = _state.copyWith(
    selectedRowIds: newSelectedIds,
    selectedRowsData: newSelectedData,
  );
  notifyListeners();

  // Notify callback if registered
  _onSelectionChanged?.call(newSelectedData.values.toList());
}