executeAsyncWithErrorDialog<T> function

Future<T?> executeAsyncWithErrorDialog<T>(
  1. BuildContext context, {
  2. required Future<T> doProcess(),
  3. void onSuccess(
    1. T value
    )?,
  4. void onError(
    1. String errMessage
    )?,
  5. String? errorAcceptText,
})

Implementation

Future<T?> executeAsyncWithErrorDialog<T>(
  BuildContext context, {
  required Future<T> Function() doProcess,
  void Function(T value)? onSuccess,
  void Function(String errMessage)? onError,
  String? errorAcceptText,
}) async {
  errorAcceptText ??= strings.acceptButtonText;
  T? results;
  try {
    results = await doProcess();
    if (onSuccess != null && results != null) {
      onSuccess(results);
    }
  } catch (err) {
    if (context.mounted) {
      await showBottomAlertKDialog(
        context,
        message: err.toString(),
        acceptText: errorAcceptText,
      );
    }
    if (onError != null) onError(err.toString());
  }
  return results;
}