TF-3514 Show explicit error when transfer base64 to cid
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -62,6 +62,7 @@ import 'package:tmail_ui_user/features/composer/presentation/extensions/email_ac
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/get_draft_mailbox_id_for_composer_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/get_outbox_mailbox_id_for_composer_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/get_sent_mailbox_id_for_composer_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/handle_message_failure_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/list_identities_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/list_shared_media_file_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/mixin/drag_drog_file_mixin.dart';
|
||||
@@ -1158,10 +1159,14 @@ class ComposerController extends BaseController
|
||||
required BuildContext context,
|
||||
required FeatureFailure failure
|
||||
}) async {
|
||||
final errorMessage = getMessageFailure(
|
||||
appLocalizations: AppLocalizations.of(context),
|
||||
exception: failure.exception,
|
||||
);
|
||||
await showConfirmDialogAction(
|
||||
context,
|
||||
title: '',
|
||||
AppLocalizations.of(context).warningMessageWhenSendEmailFailure,
|
||||
errorMessage,
|
||||
AppLocalizations.of(context).edit,
|
||||
cancelTitle: AppLocalizations.of(context).closeAnyway,
|
||||
alignCenter: true,
|
||||
@@ -2449,10 +2454,15 @@ class ComposerController extends BaseController
|
||||
VoidCallback? onConfirmAction,
|
||||
VoidCallback? onCancelAction,
|
||||
}) async {
|
||||
final errorMessage = getMessageFailure(
|
||||
appLocalizations: AppLocalizations.of(context),
|
||||
exception: failure.exception,
|
||||
isDraft: true,
|
||||
);
|
||||
await showConfirmDialogAction(
|
||||
context,
|
||||
title: '',
|
||||
AppLocalizations.of(context).warningMessageWhenSaveEmailToDraftsFailure,
|
||||
errorMessage,
|
||||
AppLocalizations.of(context).edit,
|
||||
cancelTitle: AppLocalizations.of(context).closeAnyway,
|
||||
alignCenter: true,
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
extension HandleMessageFailureExtension on ComposerController {
|
||||
|
||||
String getMessageFailure({
|
||||
required AppLocalizations appLocalizations,
|
||||
dynamic exception,
|
||||
bool isDraft = false,
|
||||
}) {
|
||||
if (exception is! SetMethodException) {
|
||||
return isDraft
|
||||
? appLocalizations.warningMessageWhenSaveEmailToDraftsFailure
|
||||
: appLocalizations.warningMessageWhenSendEmailFailure;
|
||||
}
|
||||
|
||||
for (var error in exception.mapErrors.values) {
|
||||
if (error.type != SetError.tooLarge && error.type != SetError.overQuota) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isDraft) {
|
||||
return error.toastMessageForSaveEmailAsDraftFailure(
|
||||
appLocalizations: appLocalizations,
|
||||
defaultMessage:appLocalizations.warningMessageWhenSaveEmailToDraftsFailure,
|
||||
);
|
||||
} else {
|
||||
return error.toastMessageForSendEmailFailure(
|
||||
appLocalizations: appLocalizations,
|
||||
defaultMessage:appLocalizations.warningMessageWhenSendEmailFailure,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return isDraft
|
||||
? appLocalizations.warningMessageWhenSaveEmailToDraftsFailure
|
||||
: appLocalizations.warningMessageWhenSendEmailFailure;
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -2413,9 +2413,13 @@ class MailboxDashBoardController extends ReloadableController
|
||||
for (var error in listErrors) {
|
||||
if (error.type == SetError.tooLarge || error.type == SetError.overQuota) {
|
||||
if (isDrafts) {
|
||||
_showToastSendMessageFailure(error.toastMessageForSaveEmailAsDraftFailure(currentContext!));
|
||||
_showToastSendMessageFailure(error.toastMessageForSaveEmailAsDraftFailure(
|
||||
appLocalizations: AppLocalizations.of(currentContext!),
|
||||
));
|
||||
} else {
|
||||
_showToastSendMessageFailure(error.toastMessageForSendEmailFailure(currentContext!));
|
||||
_showToastSendMessageFailure(error.toastMessageForSendEmailFailure(
|
||||
appLocalizations: AppLocalizations.of(currentContext!),
|
||||
));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,32 @@
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
extension SetErrorExtension on SetError {
|
||||
|
||||
String toastMessageForSendEmailFailure(BuildContext context) {
|
||||
String toastMessageForSendEmailFailure({
|
||||
required AppLocalizations appLocalizations,
|
||||
String? defaultMessage,
|
||||
}) {
|
||||
if (type == SetError.tooLarge) {
|
||||
return AppLocalizations.of(context).sendMessageFailureWithSetErrorTypeTooLarge;
|
||||
return appLocalizations.sendMessageFailureWithSetErrorTypeTooLarge;
|
||||
} else if (type == SetError.overQuota) {
|
||||
return AppLocalizations.of(context).sendMessageFailureWithSetErrorTypeOverQuota;
|
||||
return appLocalizations.sendMessageFailureWithSetErrorTypeOverQuota;
|
||||
} else {
|
||||
return AppLocalizations.of(context).sendMessageFailure;
|
||||
return defaultMessage ?? appLocalizations.sendMessageFailure;
|
||||
}
|
||||
}
|
||||
|
||||
String toastMessageForSaveEmailAsDraftFailure(BuildContext context) {
|
||||
String toastMessageForSaveEmailAsDraftFailure({
|
||||
required AppLocalizations appLocalizations,
|
||||
String? defaultMessage,
|
||||
}) {
|
||||
if (type == SetError.tooLarge) {
|
||||
return AppLocalizations.of(context).saveEmailAsDraftFailureWithSetErrorTypeTooLarge;
|
||||
return appLocalizations.saveEmailAsDraftFailureWithSetErrorTypeTooLarge;
|
||||
} else if (type == SetError.overQuota) {
|
||||
return AppLocalizations.of(context).saveEmailAsDraftFailureWithSetErrorTypeOverQuota;
|
||||
return appLocalizations.saveEmailAsDraftFailureWithSetErrorTypeOverQuota;
|
||||
} else {
|
||||
return AppLocalizations.of(context).saveEmailAsDraftFailure;
|
||||
return defaultMessage ?? appLocalizations.saveEmailAsDraftFailure;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user