diff --git a/lib/features/base/mixin/message_dialog_action_mixin.dart b/lib/features/base/mixin/message_dialog_action_mixin.dart index b945a6671..0475dfda0 100644 --- a/lib/features/base/mixin/message_dialog_action_mixin.dart +++ b/lib/features/base/mixin/message_dialog_action_mixin.dart @@ -16,7 +16,7 @@ mixin MessageDialogActionMixin { String message, String actionName, Function onConfirmAction, - {bool hasCancelButton = true, Widget? icon} + {String? title, bool hasCancelButton = true, Widget? icon} ) { if (_responsiveUtils.isMobile(context)) { (ConfirmationDialogActionSheetBuilder(context) @@ -33,12 +33,12 @@ mixin MessageDialogActionMixin { barrierColor: AppColor.colorDefaultCupertinoActionSheet, builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths) ..key(Key('confirm_dialog_action')) - ..title(AppLocalizations.of(context).sending_failed) + ..title(title ?? '') ..content(message) ..addIcon(icon) ..colorConfirmButton(AppColor.colorTextButton) ..colorCancelButton(AppColor.colorCancelButton) - ..paddingTitle(icon != null ? EdgeInsets.only(top: 34) : EdgeInsets.only(top: 10)) + ..paddingTitle(icon != null ? EdgeInsets.only(top: 34) : EdgeInsets.zero) ..marginIcon(EdgeInsets.zero) ..paddingContent(EdgeInsets.only(left: 44, right: 44, bottom: 24, top: 8)) ..paddingButton(hasCancelButton ? null : EdgeInsets.only(bottom: 16, left: 44, right: 44)) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 2773e53f6..a016c624e 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -389,6 +389,7 @@ class ComposerController extends BaseController { AppLocalizations.of(context).message_dialog_send_email_without_recipient, AppLocalizations.of(context).add_recipients, () => {}, + title: AppLocalizations.of(context).sending_failed, icon: SvgPicture.asset(_imagePaths.icSendToastError, fit: BoxFit.fill), hasCancelButton: false); return; @@ -407,6 +408,7 @@ class ComposerController extends BaseController { ccAddressExpandMode.value = ExpandMode.EXPAND; bccAddressExpandMode.value = ExpandMode.EXPAND; }, + title: AppLocalizations.of(context).sending_failed, icon: SvgPicture.asset(_imagePaths.icSendToastError, fit: BoxFit.fill), hasCancelButton: false); return; @@ -417,6 +419,7 @@ class ComposerController extends BaseController { AppLocalizations.of(context).message_dialog_send_email_without_a_subject, AppLocalizations.of(context).send_anyway, () => _handleSendMessages(context), + title: AppLocalizations.of(context).empty_subject, icon: SvgPicture.asset(_imagePaths.icEmpty, fit: BoxFit.fill), ); return; @@ -429,6 +432,7 @@ class ComposerController extends BaseController { filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)}'), AppLocalizations.of(context).got_it, () => {}, + title: AppLocalizations.of(context).sending_failed, icon: SvgPicture.asset(_imagePaths.icSendToastError, fit: BoxFit.fill), hasCancelButton: false); return; @@ -508,22 +512,10 @@ class ComposerController extends BaseController { .build(); } - void openPickAttachmentsForWeb(BuildContext context, RelativeRect? position, List popupMenuItems) async { - await showMenu( - context: context, - position: position ?? RelativeRect.fromLTRB(16, 40, 16, 16), - color: Colors.white, - elevation: 5, - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)), - items: popupMenuItems); - } - void openFilePickerByType(BuildContext context, FileType fileType) async { - popBack(); - consumeState(_localFilePickerInteractor.execute(fileType: fileType)); - } - - void openFilePickerByTypeOnWeb(BuildContext context, FileType fileType) async { + if (!kIsWeb) { + popBack(); + } consumeState(_localFilePickerInteractor.execute(fileType: fileType)); } @@ -547,6 +539,7 @@ class ComposerController extends BaseController { filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)}'), AppLocalizations.of(currentContext!).got_it, () => {}, + title: AppLocalizations.of(currentContext!).maximum_files_size, hasCancelButton: false); } } diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 8a37551c8..4d13b38f7 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -410,7 +410,7 @@ class ComposerView extends GetWidget { buildIconWeb( icon: SvgPicture.asset(imagePaths.icAttachmentsComposer, color: AppColor.colorTextButton, fit: BoxFit.fill), tooltip: AppLocalizations.of(context).attach_file, - onTap: () => controller.openFilePickerByTypeOnWeb(context, FileType.any)), + onTap: () => controller.openFilePickerByType(context, FileType.any)), ]) ) ); diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb index c1eee9fa5..d741d3a1d 100644 --- a/lib/l10n/intl_messages.arb +++ b/lib/l10n/intl_messages.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2022-04-07T14:40:38.896425", + "@@last_modified": "2022-04-07T15:43:45.603676", "initializing_data": "Initializing data...", "@initializing_data": { "type": "text", @@ -1035,5 +1035,11 @@ "type": "text", "placeholders_order": [], "placeholders": {} + }, + "maximum_files_size": "Maximum files size", + "@maximum_files_size": { + "type": "text", + "placeholders_order": [], + "placeholders": {} } } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 40b7c41ff..0ea1af7c3 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -1084,4 +1084,10 @@ class AppLocalizations { 'Got it', name: 'got_it'); } + + String get maximum_files_size { + return Intl.message( + 'Maximum files size', + name: 'maximum_files_size'); + } } \ No newline at end of file diff --git a/model/lib/extensions/list_attachment_extension.dart b/model/lib/extensions/list_attachment_extension.dart index 6632152ae..dd8f7ed72 100644 --- a/model/lib/extensions/list_attachment_extension.dart +++ b/model/lib/extensions/list_attachment_extension.dart @@ -3,9 +3,12 @@ import 'package:model/model.dart'; extension ListAttachmentExtension on List { num totalSize() { - final currentListSize = map((attachment) => attachment.size?.value ?? 0).toList(); - final totalSize = currentListSize.reduce((sum, size) => sum + size); - return totalSize; + if (isNotEmpty) { + final currentListSize = map((attachment) => attachment.size?.value ?? 0).toList(); + final totalSize = currentListSize.reduce((sum, size) => sum + size); + return totalSize; + } + return 0; } List get listAttachmentsDisplayedOutSide {