removeAt method

Future<void> removeAt(
  1. int index, {
  2. bool isQuiet = false,
})

Remove the item at index. Set isQuiet = true to avoid rendering loading state, default false.

Implementation

Future<void> removeAt(int index, {bool isQuiet = false}) async {
  _error = null;
  _isDeleting = true;
  if (_isMounted && !isQuiet) notifyListeners();

  try {
    final result = await onDelete(items[index]);
    if (result) {
      _data.items.removeAt(index);
      _data.totalItem -= 1;
    }
    if (_awaitListener) {
      await onDeleteCompleted(result);
    } else {
      onDeleteCompleted(result);
    }
  } catch (e) {
    _error = e;
    if (_awaitListener) {
      await onDeleteFailed(e);
    } else {
      onDeleteFailed(e);
    }
  }

  _isDeleting = false;
  if (_isMounted && !isQuiet) notifyListeners();
}