TF-2321 Set isSendEmailLoading = false when tap outside to close the dialog in composer

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 3f9ab37e42d6bc2e726a047a8d7606128f23d02a)
This commit is contained in:
dab246
2023-11-16 15:13:08 +07:00
committed by Dat Vu
parent 69c1f569be
commit 2ffda63517
3 changed files with 51 additions and 47 deletions
@@ -50,8 +50,8 @@ class ConfirmationDialogActionSheetBuilder {
_styleCancelButton = style;
}
void show() async {
await showCupertinoModalPopup(
Future<dynamic> show() async {
return await showCupertinoModalPopup(
context: _context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (context) => PointerInterceptor(child: CupertinoActionSheet(
@@ -8,7 +8,7 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
mixin MessageDialogActionMixin {
void showConfirmDialogAction(
Future<dynamic> showConfirmDialogAction(
BuildContext context,
String message,
String actionName,
@@ -34,7 +34,7 @@ mixin MessageDialogActionMixin {
final imagePaths = Get.find<ImagePaths>();
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(
@@ -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 {