diff --git a/core/lib/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart b/core/lib/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart index 75c4541c0..1d657af3e 100644 --- a/core/lib/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart +++ b/core/lib/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart @@ -50,8 +50,8 @@ class ConfirmationDialogActionSheetBuilder { _styleCancelButton = style; } - void show() async { - await showCupertinoModalPopup( + Future show() async { + return await showCupertinoModalPopup( context: _context, barrierColor: AppColor.colorDefaultCupertinoActionSheet, builder: (context) => PointerInterceptor(child: CupertinoActionSheet( diff --git a/lib/features/base/mixin/message_dialog_action_mixin.dart b/lib/features/base/mixin/message_dialog_action_mixin.dart index 7c8364329..78930bb3a 100644 --- a/lib/features/base/mixin/message_dialog_action_mixin.dart +++ b/lib/features/base/mixin/message_dialog_action_mixin.dart @@ -8,7 +8,7 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart'; mixin MessageDialogActionMixin { - void showConfirmDialogAction( + Future showConfirmDialogAction( BuildContext context, String message, String actionName, @@ -34,7 +34,7 @@ mixin MessageDialogActionMixin { final imagePaths = Get.find(); if (alignCenter) { - await showDialog( + return await showDialog( context: context, barrierColor: AppColor.colorDefaultCupertinoActionSheet, builder: (BuildContext context) => PointerInterceptor( @@ -71,7 +71,7 @@ mixin MessageDialogActionMixin { } else { if (responsiveUtils.isMobile(context)) { if (showAsBottomSheet) { - await showModalBottomSheet( + return await showModalBottomSheet( context: context, isScrollControlled: true, barrierColor: AppColor.colorDefaultCupertinoActionSheet, @@ -110,7 +110,7 @@ mixin MessageDialogActionMixin { ..onCloseButtonAction(() => popBack())) .build())); } else { - (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan) + return (ConfirmationDialogActionSheetBuilder(context, listTextSpan: listTextSpan) ..messageText(message) ..styleConfirmButton(const TextStyle(fontSize: 20, fontWeight: FontWeight.normal, color: Colors.black)) ..styleMessage(messageStyle) @@ -128,7 +128,7 @@ mixin MessageDialogActionMixin { })).show(); } } else { - await showDialog( + return await showDialog( context: context, barrierColor: AppColor.colorDefaultCupertinoActionSheet, builder: (BuildContext context) => PointerInterceptor( diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index c88fe43dd..5efb203ef 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -819,12 +819,13 @@ class ComposerController extends BaseController { if (!isEnableEmailSendButton.value) { showConfirmDialogAction(context, - AppLocalizations.of(context).message_dialog_send_email_without_recipient, - AppLocalizations.of(context).add_recipients, - onConfirmAction: () => {isSendEmailLoading.value = false}, - title: AppLocalizations.of(context).sending_failed, - icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), - hasCancelButton: false); + AppLocalizations.of(context).message_dialog_send_email_without_recipient, + AppLocalizations.of(context).add_recipients, + onConfirmAction: () => isSendEmailLoading.value = false, + title: AppLocalizations.of(context).sending_failed, + icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), + hasCancelButton: false + ).whenComplete(() => isSendEmailLoading.value = false); return; } @@ -834,54 +835,57 @@ class ComposerController extends BaseController { .toList(); if (listEmailAddressInvalid.isNotEmpty) { showConfirmDialogAction(context, - AppLocalizations.of(context).message_dialog_send_email_with_email_address_invalid, - AppLocalizations.of(context).fix_email_addresses, - onConfirmAction: () { - toAddressExpandMode.value = ExpandMode.EXPAND; - ccAddressExpandMode.value = ExpandMode.EXPAND; - bccAddressExpandMode.value = ExpandMode.EXPAND; - isSendEmailLoading.value = false; - }, - title: AppLocalizations.of(context).sending_failed, - icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), - hasCancelButton: false); + AppLocalizations.of(context).message_dialog_send_email_with_email_address_invalid, + AppLocalizations.of(context).fix_email_addresses, + onConfirmAction: () { + toAddressExpandMode.value = ExpandMode.EXPAND; + ccAddressExpandMode.value = ExpandMode.EXPAND; + bccAddressExpandMode.value = ExpandMode.EXPAND; + isSendEmailLoading.value = false; + }, + title: AppLocalizations.of(context).sending_failed, + icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), + hasCancelButton: false + ).whenComplete(() => isSendEmailLoading.value = false); return; } if (subjectEmail.value == null || subjectEmail.isEmpty == true) { showConfirmDialogAction(context, - AppLocalizations.of(context).message_dialog_send_email_without_a_subject, - AppLocalizations.of(context).send_anyway, - onConfirmAction: () => _handleSendMessages(context), - onCancelAction: () => {isSendEmailLoading.value = false}, - title: AppLocalizations.of(context).empty_subject, - icon: SvgPicture.asset(imagePaths.icEmpty, fit: BoxFit.fill), - ); + AppLocalizations.of(context).message_dialog_send_email_without_a_subject, + AppLocalizations.of(context).send_anyway, + onConfirmAction: () => _handleSendMessages(context), + onCancelAction: () => isSendEmailLoading.value = false, + title: AppLocalizations.of(context).empty_subject, + icon: SvgPicture.asset(imagePaths.icEmpty, fit: BoxFit.fill), + ).whenComplete(() => isSendEmailLoading.value = false); return; } if (!uploadController.allUploadAttachmentsCompleted) { showConfirmDialogAction( - context, - AppLocalizations.of(context).messageDialogSendEmailUploadingAttachment, - AppLocalizations.of(context).got_it, - onConfirmAction: () => {isSendEmailLoading.value = false}, - title: AppLocalizations.of(context).sending_failed, - icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), - hasCancelButton: false); + context, + AppLocalizations.of(context).messageDialogSendEmailUploadingAttachment, + AppLocalizations.of(context).got_it, + onConfirmAction: () => isSendEmailLoading.value = false, + title: AppLocalizations.of(context).sending_failed, + icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), + hasCancelButton: false + ).whenComplete(() => isSendEmailLoading.value = false); return; } if (!uploadController.hasEnoughMaxAttachmentSize()) { showConfirmDialogAction( - context, - AppLocalizations.of(context).message_dialog_send_email_exceeds_maximum_size( - filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)), - AppLocalizations.of(context).got_it, - onConfirmAction: () => {isSendEmailLoading.value = false}, - title: AppLocalizations.of(context).sending_failed, - icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), - hasCancelButton: false); + context, + AppLocalizations.of(context).message_dialog_send_email_exceeds_maximum_size( + filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)), + AppLocalizations.of(context).got_it, + onConfirmAction: () => isSendEmailLoading.value = false, + title: AppLocalizations.of(context).sending_failed, + icon: SvgPicture.asset(imagePaths.icSendToastError, fit: BoxFit.fill), + hasCancelButton: false + ).whenComplete(() => isSendEmailLoading.value = false); return; } @@ -1010,7 +1014,7 @@ class ComposerController extends BaseController { ), TextSpan(text: AppLocalizations.of(context).messageDialogWhenStoreSendingEmailTail) ] - ); + ).whenComplete(() => isSendEmailLoading.value = false); } void _checkContactPermission() async {