Standardize button actions in confirm dialog

This commit is contained in:
dab246
2025-08-26 16:42:41 +07:00
committed by Dat H. Pham
parent e26e0be51d
commit ff0ac57c1d
10 changed files with 39 additions and 43 deletions
@@ -456,7 +456,6 @@ abstract class BaseMailboxController extends BaseController {
title: AppLocalizations.of(context).deleteFolders, title: AppLocalizations.of(context).deleteFolders,
cancelTitle: AppLocalizations.of(context).cancel, cancelTitle: AppLocalizations.of(context).cancel,
onConfirmAction: () => onDeleteMailboxAction(presentationMailbox), onConfirmAction: () => onDeleteMailboxAction(presentationMailbox),
onCancelAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -85,7 +85,6 @@ extension HandleMailboxActionTypeExtension on BaseMailboxController {
currentRights, currentRights,
MailboxActions.allowSubaddressing, MailboxActions.allowSubaddressing,
), ),
onCancelAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -94,7 +94,6 @@ mixin MailboxActionHandlerMixin {
); );
} }
}, },
onCancelAction: popBack,
); );
} }
} }
@@ -147,7 +146,6 @@ mixin MailboxActionHandlerMixin {
); );
} }
}, },
onCancelAction: popBack
); );
} }
} }
@@ -781,11 +781,13 @@ class ComposerController extends BaseController
autoCreateEmailTag(); autoCreateEmailTag();
} }
final appLocalizations = AppLocalizations.of(context);
if (!isEnableEmailSendButton.value) { if (!isEnableEmailSendButton.value) {
MessageDialogActionManager().showConfirmDialogAction(context, MessageDialogActionManager().showConfirmDialogAction(context,
AppLocalizations.of(context).message_dialog_send_email_without_recipient, appLocalizations.message_dialog_send_email_without_recipient,
AppLocalizations.of(context).add_recipients, appLocalizations.add_recipients,
title: AppLocalizations.of(context).sending_failed, title: appLocalizations.sending_failed,
hasCancelButton: false, hasCancelButton: false,
showAsBottomSheet: true, showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)), dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
@@ -799,8 +801,8 @@ class ComposerController extends BaseController
.toList(); .toList();
if (listEmailAddressInvalid.isNotEmpty) { if (listEmailAddressInvalid.isNotEmpty) {
MessageDialogActionManager().showConfirmDialogAction(context, MessageDialogActionManager().showConfirmDialogAction(context,
AppLocalizations.of(context).message_dialog_send_email_with_email_address_invalid, appLocalizations.message_dialog_send_email_with_email_address_invalid,
AppLocalizations.of(context).fix_email_addresses, appLocalizations.fix_email_addresses,
onConfirmAction: () { onConfirmAction: () {
toAddressExpandMode.value = ExpandMode.EXPAND; toAddressExpandMode.value = ExpandMode.EXPAND;
ccAddressExpandMode.value = ExpandMode.EXPAND; ccAddressExpandMode.value = ExpandMode.EXPAND;
@@ -808,7 +810,7 @@ class ComposerController extends BaseController
replyToAddressExpandMode.value = ExpandMode.EXPAND; replyToAddressExpandMode.value = ExpandMode.EXPAND;
}, },
showAsBottomSheet: true, showAsBottomSheet: true,
title: AppLocalizations.of(context).sending_failed, title: appLocalizations.sending_failed,
hasCancelButton: false, hasCancelButton: false,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)), dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled); ).whenComplete(() => _sendButtonState = ButtonState.enabled);
@@ -817,13 +819,13 @@ class ComposerController extends BaseController
if (subjectEmail.value == null || subjectEmail.isEmpty == true) { if (subjectEmail.value == null || subjectEmail.isEmpty == true) {
MessageDialogActionManager().showConfirmDialogAction(context, MessageDialogActionManager().showConfirmDialogAction(context,
AppLocalizations.of(context).message_dialog_send_email_without_a_subject, appLocalizations.message_dialog_send_email_without_a_subject,
AppLocalizations.of(context).cancel, appLocalizations.send_anyway,
cancelTitle: AppLocalizations.of(context).send_anyway, cancelTitle: appLocalizations.cancel,
onCancelAction: () => _handleSendMessages(context), onConfirmAction: () => _handleSendMessages(context),
onConfirmAction: popBack, onCancelAction: popBack,
autoPerformPopBack: false, autoPerformPopBack: false,
title: AppLocalizations.of(context).empty_subject, title: appLocalizations.empty_subject,
showAsBottomSheet: true, showAsBottomSheet: true,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)), dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
).whenComplete(() => _sendButtonState = ButtonState.enabled); ).whenComplete(() => _sendButtonState = ButtonState.enabled);
@@ -833,9 +835,9 @@ class ComposerController extends BaseController
if (!uploadController.allUploadAttachmentsCompleted) { if (!uploadController.allUploadAttachmentsCompleted) {
MessageDialogActionManager().showConfirmDialogAction( MessageDialogActionManager().showConfirmDialogAction(
context, context,
AppLocalizations.of(context).messageDialogSendEmailUploadingAttachment, appLocalizations.messageDialogSendEmailUploadingAttachment,
AppLocalizations.of(context).got_it, appLocalizations.got_it,
title: AppLocalizations.of(context).sending_failed, title: appLocalizations.sending_failed,
showAsBottomSheet: true, showAsBottomSheet: true,
hasCancelButton: false, hasCancelButton: false,
dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)), dialogMargin: MediaQuery.paddingOf(context).add(const EdgeInsets.only(bottom: 12)),
@@ -846,10 +848,11 @@ class ComposerController extends BaseController
if (uploadController.isExceededMaxSizeAttachmentsPerEmail()) { if (uploadController.isExceededMaxSizeAttachmentsPerEmail()) {
MessageDialogActionManager().showConfirmDialogAction( MessageDialogActionManager().showConfirmDialogAction(
context, context,
AppLocalizations.of(context).message_dialog_send_email_exceeds_maximum_size( appLocalizations.message_dialog_send_email_exceeds_maximum_size(
filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)), filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0),
AppLocalizations.of(context).got_it, ),
title: AppLocalizations.of(context).sending_failed, appLocalizations.got_it,
title: appLocalizations.sending_failed,
hasCancelButton: false hasCancelButton: false
).whenComplete(() => _sendButtonState = ButtonState.enabled); ).whenComplete(() => _sendButtonState = ButtonState.enabled);
return; return;
@@ -216,10 +216,9 @@ class EmailActionReactor {
currentContext!, currentContext!,
title: DeleteActionType.single.getTitleDialog(currentContext!), title: DeleteActionType.single.getTitleDialog(currentContext!),
DeleteActionType.single.getContentDialog(currentContext!), DeleteActionType.single.getContentDialog(currentContext!),
cancelTitle: DeleteActionType.single.getConfirmActionName(currentContext!), DeleteActionType.single.getConfirmActionName(currentContext!),
AppLocalizations.of(currentContext!).cancel, cancelTitle: AppLocalizations.of(currentContext!).cancel,
onCancelAction: () => onDeleteEmailRequest.call(presentationEmail), onConfirmAction: () => onDeleteEmailRequest.call(presentationEmail),
onConfirmAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -1063,7 +1063,6 @@ class MailboxController extends BaseMailboxController
AppLocalizations.of(context).messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length), AppLocalizations.of(context).messageConfirmationDialogDeleteMultipleFolder(selectedMailboxList.length),
cancelTitle: AppLocalizations.of(context).cancel, cancelTitle: AppLocalizations.of(context).cancel,
AppLocalizations.of(context).delete, AppLocalizations.of(context).delete,
onCancelAction: popBack,
onConfirmAction: () => _deleteMultipleMailboxAction(selectedMailboxList), onConfirmAction: () => _deleteMultipleMailboxAction(selectedMailboxList),
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
@@ -1681,14 +1681,13 @@ class MailboxDashBoardController extends ReloadableController
actionType.getConfirmActionName(context), actionType.getConfirmActionName(context),
cancelTitle: AppLocalizations.of(context).cancel, cancelTitle: AppLocalizations.of(context).cancel,
onConfirmAction: () { onConfirmAction: () {
onConfirm?.call(); onConfirm?.call();
_deleteSelectionEmailsPermanentlyAction( _deleteSelectionEmailsPermanentlyAction(
actionType, actionType,
listEmails: listEmails, listEmails: listEmails,
onCancelSelectionEmail: onCancelSelectionEmail, onCancelSelectionEmail: onCancelSelectionEmail,
); );
}, },
onCancelAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -2745,7 +2744,6 @@ class MailboxDashBoardController extends ReloadableController
); );
} }
}, },
onCancelAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -191,14 +191,15 @@ class SendingQueueController extends BaseController {
} }
void _deleteListSendingEmailAction(BuildContext context, List<SendingEmail> listSendingEmails) { void _deleteListSendingEmailAction(BuildContext context, List<SendingEmail> listSendingEmails) {
final appLocalizations = AppLocalizations.of(context);
MessageDialogActionManager().showConfirmDialogAction( MessageDialogActionManager().showConfirmDialogAction(
context, context,
AppLocalizations.of(context).messageDialogDeleteSendingEmail, appLocalizations.messageDialogDeleteSendingEmail,
AppLocalizations.of(context).cancel, appLocalizations.delete,
title: AppLocalizations.of(context).deleteOfflineEmail, title: appLocalizations.deleteOfflineEmail,
alignCenter: true, alignCenter: true,
cancelTitle: AppLocalizations.of(context).delete, cancelTitle: appLocalizations.cancel,
onCancelAction: () => _handleDeleteListSendingEmail(listSendingEmails), onConfirmAction: () => _handleDeleteListSendingEmail(listSendingEmails),
); );
} }
@@ -250,7 +250,6 @@ mixin EmailActionController {
DeleteActionType.single.getConfirmActionName(context), DeleteActionType.single.getConfirmActionName(context),
cancelTitle: AppLocalizations.of(context).cancel, cancelTitle: AppLocalizations.of(context).cancel,
onConfirmAction: () => _deleteEmailPermanentlyAction(context, email), onConfirmAction: () => _deleteEmailPermanentlyAction(context, email),
onCancelAction: popBack,
onCloseButtonAction: popBack, onCloseButtonAction: popBack,
); );
} }
@@ -382,14 +382,15 @@ class UploadController extends BaseController {
required BuildContext context, required BuildContext context,
VoidCallback? confirmAction, VoidCallback? confirmAction,
}) { }) {
final appLocalizations = AppLocalizations.of(context);
MessageDialogActionManager().showConfirmDialogAction( MessageDialogActionManager().showConfirmDialogAction(
context, context,
title: '', title: '',
AppLocalizations.of(context).warningMessageWhenExceedGenerallySizeInComposer, appLocalizations.warningMessageWhenExceedGenerallySizeInComposer,
AppLocalizations.of(context).cancel, appLocalizations.continueAction,
cancelTitle: AppLocalizations.of(context).continueAction, cancelTitle: appLocalizations.cancel,
alignCenter: true, alignCenter: true,
onCancelAction: confirmAction, onConfirmAction: confirmAction,
); );
} }