update method

Future<void> update(
  1. T newData, {
  2. bool isQuiet = false,
})

Update data by newData. Set isQuiet = true to avoid rendering loading state, default false.

Implementation

Future<void> update(T newData, {bool isQuiet = false}) async {
  _error = null;
  _isUpdating = true;
  if (_isMounted && !isQuiet) notifyListeners();

  try {
    final result = await onUpdate(newData);
    _data = result;
    if (_awaitListener) {
      await onUpdateCompleted(result);
    } else {
      onUpdateCompleted(result);
    }
  } catch (e) {
    _error = e;
    if (_awaitListener) {
      await onUpdateFailed(e);
    } else {
      onUpdateFailed(e);
    }
  }

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