loading<T> method

Future<T> loading<T>(
  1. Future<T> future(), {
  2. bool invokeLoading = true,
  3. bool fullScreen = false,
})

Implementation

Future<T> loading<T>(
  Future<T> Function() future, {
  bool invokeLoading = true,
  bool fullScreen = false,
}) async {
  if (invokeLoading) {
    if (fullScreen) {
      fullScreenLoading.value = true;
    } else {
      isLoading.value = true;
    }
  }
  try {
    return await future();
  } catch (e) {
    error.emit(e);
    rethrow;
  } finally {
    if (invokeLoading) {
      if (fullScreen) {
        fullScreenLoading.value = false;
      } else {
        isLoading.value = false;
      }
    }
  }
}