From c14659c55be26879bea19bc75480d61a0585002b Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 21 Jan 2025 17:59:20 +0700 Subject: [PATCH] TF-3427 Remove print action in composer in mobile browser app Signed-off-by: dab246 --- .../composer/presentation/composer_view_web.dart | 6 +++--- .../extensions/composer_print_draft_extension.dart | 12 +++++++++--- .../widgets/web/bottom_bar_composer_widget.dart | 10 +++++++--- .../mobile_responsive_app_bar_composer_widget.dart | 10 +++++++--- lib/main/localizations/app_localizations.dart | 1 + 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 1974d69ac..85d7a02e8 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -47,7 +47,7 @@ class ComposerView extends GetWidget { openRichToolbarAction: controller.richTextWebController!.toggleFormattingOptions, isSendButtonEnabled: controller.isEnableEmailSendButton.value, hasRequestReadReceipt: controller.hasRequestReadReceipt.value, - isPrintDraftEnabled: controller.isEmailChanged.value, + isEmailChanged: controller.isEmailChanged.value, menuMoreOptionController: controller.menuMoreOptionController!, onCloseViewAction: () => controller.handleClickCloseComposer(context), attachFileAction: () => controller.openFilePickerByType(context, FileType.any), @@ -518,7 +518,7 @@ class ComposerView extends GetWidget { deleteComposerAction: () => controller.handleClickDeleteComposer(context), saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context), sendMessageAction: () => controller.handleClickSendButton(context), - isPrintDraftEnabled: controller.isEmailChanged.isTrue, + isEmailChanged: controller.isEmailChanged.isTrue, toggleCodeViewAction: controller.richTextWebController!.toggleCodeView, menuMoreOptionController: controller.menuMoreOptionController!, printDraftAction: () => controller.printDraft(context), @@ -801,7 +801,7 @@ class ComposerView extends GetWidget { deleteComposerAction: () => controller.handleClickDeleteComposer(context), saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context), sendMessageAction: () => controller.handleClickSendButton(context), - isPrintDraftEnabled: controller.isEmailChanged.isTrue, + isEmailChanged: controller.isEmailChanged.isTrue, toggleCodeViewAction: controller.richTextWebController!.toggleCodeView, menuMoreOptionController: controller.menuMoreOptionController!, printDraftAction: () => controller.printDraft(context), diff --git a/lib/features/composer/presentation/extensions/composer_print_draft_extension.dart b/lib/features/composer/presentation/extensions/composer_print_draft_extension.dart index dba35a164..3c140a5e0 100644 --- a/lib/features/composer/presentation/extensions/composer_print_draft_extension.dart +++ b/lib/features/composer/presentation/extensions/composer_print_draft_extension.dart @@ -94,9 +94,15 @@ extension ComposerPrintDraftExtension on ComposerController { bccPrefix: appLocalizations.bcc_email_address_prefix, replyToPrefix: appLocalizations.replyToEmailAddressPrefix, titleAttachment: appLocalizations.attachments.toLowerCase(), - toAddress: listToEmailAddress.toSet().toEscapeHtmlStringUseCommaSeparator(), - ccAddress: listCcEmailAddress.toSet().toEscapeHtmlStringUseCommaSeparator(), - bccAddress: listBccEmailAddress.toSet().toEscapeHtmlStringUseCommaSeparator(), + toAddress: listToEmailAddress.toSet().listEmailAddressToString( + isFullEmailAddress: true, + ), + ccAddress: listCcEmailAddress.toSet().listEmailAddressToString( + isFullEmailAddress: true, + ), + bccAddress: listBccEmailAddress.toSet().listEmailAddressToString( + isFullEmailAddress: true, + ), sender: identitySelected.value?.toEmailAddress(), receiveTime: receiveTime, subject: subjectEmail.value ?? '', diff --git a/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart b/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart index 9538efe6f..95b271051 100644 --- a/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart +++ b/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart @@ -1,5 +1,6 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:custom_pop_up_menu/custom_pop_up_menu.dart'; import 'package:flutter/material.dart'; import 'package:tmail_ui_user/features/base/widget/highlight_svg_icon_on_hover.dart'; @@ -12,7 +13,7 @@ class BottomBarComposerWidget extends StatelessWidget { final ImagePaths imagePaths; final bool isCodeViewEnabled; - final bool isPrintDraftEnabled; + final bool isEmailChanged; final bool isFormattingOptionsEnabled; final bool hasReadReceipt; final CustomPopupMenuController menuMoreOptionController; @@ -30,7 +31,7 @@ class BottomBarComposerWidget extends StatelessWidget { super.key, required this.imagePaths, required this.isCodeViewEnabled, - required this.isPrintDraftEnabled, + required this.isEmailChanged, required this.isFormattingOptionsEnabled, required this.hasReadReceipt, required this.menuMoreOptionController, @@ -128,7 +129,7 @@ class BottomBarComposerWidget extends StatelessWidget { toggleRequestReadReceiptAction(); }, ), - if (isPrintDraftEnabled) + if (_isPrintEnabled) PopupItemWidget( imagePaths.icPrinter, AppLocalizations.of(context).print, @@ -183,4 +184,7 @@ class BottomBarComposerWidget extends StatelessWidget { ), ); } + + bool get _isPrintEnabled => + isEmailChanged && PlatformInfo.isWeb && PlatformInfo.isCanvasKit; } \ No newline at end of file diff --git a/lib/features/composer/presentation/widgets/web/mobile_responsive_app_bar_composer_widget.dart b/lib/features/composer/presentation/widgets/web/mobile_responsive_app_bar_composer_widget.dart index 3ecf1d546..b3c2dcf5c 100644 --- a/lib/features/composer/presentation/widgets/web/mobile_responsive_app_bar_composer_widget.dart +++ b/lib/features/composer/presentation/widgets/web/mobile_responsive_app_bar_composer_widget.dart @@ -1,5 +1,6 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:custom_pop_up_menu/custom_pop_up_menu.dart'; import 'package:flutter/material.dart'; import 'package:tmail_ui_user/features/base/widget/highlight_svg_icon_on_hover.dart'; @@ -15,7 +16,7 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget { final bool isSendButtonEnabled; final bool isFormattingOptionsEnabled; final bool hasRequestReadReceipt; - final bool isPrintDraftEnabled; + final bool isEmailChanged; final CustomPopupMenuController menuMoreOptionController; final VoidCallback onCloseViewAction; final VoidCallback attachFileAction; @@ -35,7 +36,7 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget { required this.isFormattingOptionsEnabled, required this.isSendButtonEnabled, required this.hasRequestReadReceipt, - required this.isPrintDraftEnabled, + required this.isEmailChanged, required this.menuMoreOptionController, required this.openRichToolbarAction, required this.onCloseViewAction, @@ -145,7 +146,7 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget { toggleRequestReadReceiptAction(); }, ), - if (isPrintDraftEnabled) + if (_isPrintEnabled) PopupItemWidget( imagePaths.icPrinter, AppLocalizations.of(context).print, @@ -187,4 +188,7 @@ class MobileResponsiveAppBarComposerWidget extends StatelessWidget { ), ); } + + bool get _isPrintEnabled => + isEmailChanged && PlatformInfo.isWeb && PlatformInfo.isCanvasKit; } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 7e9459cf0..33375c6c6 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -4321,6 +4321,7 @@ class AppLocalizations { name: 'downloadAttachmentInEMLPreviewWarningMessage', ); } + String get editAsNewEmail { return Intl.message( 'Edit as new email',