showBottomSheetError static method

Future<bool> showBottomSheetError({
  1. required dynamic exception,
  2. List<String>? ignoreErrors,
  3. String? additionalInfo,
  4. String? processMessage,
  5. Widget? additionalWidget,
  6. bool withRetryButton = false,
  7. bool isError = true,
  8. String? customCloseButtonLabel,
})

Implementation

static Future<bool> showBottomSheetError({
  required dynamic exception,
  List<String>? ignoreErrors,
  String? additionalInfo,
  String? processMessage,
  Widget? additionalWidget,
  bool withRetryButton = false,
  bool isError = true,
  String? customCloseButtonLabel,
}) async {
  if (BasfLogicLocalizationUtils.appNavigatorKey.currentContext != null) {
    final String message = resolveLongExceptionMessage(exception);
    final String shortMessage = resolveShortExceptionMessage(exception);

    if (ignoreErrors?.any(
          (i) => message.contains(i) || shortMessage.contains(i),
        ) ??
        false) {
      return false;
    }

    final BuildContext context =
        BasfLogicLocalizationUtils.appNavigatorKey.currentContext!;

    final bool? retry = await showCustomModalBottomSheet(
      context: context,
      constraints: BoxConstraints(
        maxHeight: MediaQuery.of(context).size.height * 0.8,
        maxWidth: 500,
      ),
      builder: (context) {
        final warningMessage = [?processMessage, shortMessage].join('\n\n');
        final modalAdditionalInfo = [
          if (shortMessage != message) message,
          ?additionalInfo,
        ];

        if (additionalWidget == null) {
          return WarningModalLayout(
            warningMessage: warningMessage,
            additionalInfo: modalAdditionalInfo,
            customButtonLabel: customCloseButtonLabel,
            isError: isError,
            withRetryButton: withRetryButton,
          );
        }

        return _WarningModalLayoutWithAdditionalWidget(
          warningMessage: warningMessage,
          additionalInfo: modalAdditionalInfo,
          customButtonLabel: customCloseButtonLabel,
          isError: isError,
          withRetryButton: withRetryButton,
          additionalWidget: additionalWidget,
        );
      },
    );
    return retry ?? false;
  } else {
    showSnackBarError(exception: exception);
    return false;
  }
}