TF-3764 Add Create filter button in context menu
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -85,6 +85,7 @@ import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_ma
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_create_filter_for_folder.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/presentation/websocket/web_socket_message.dart';
|
||||
@@ -1285,6 +1286,9 @@ class MailboxController extends BaseMailboxController
|
||||
case MailboxActions.newSubfolder:
|
||||
goToCreateNewMailboxView(context, parentMailbox: mailbox);
|
||||
break;
|
||||
case MailboxActions.createFilter:
|
||||
mailboxDashBoardController.openCreateEmailRuleView(mailbox);
|
||||
break;
|
||||
case MailboxActions.recoverDeletedMessages:
|
||||
mailboxDashBoardController.gotoEmailRecovery();
|
||||
break;
|
||||
|
||||
@@ -27,6 +27,7 @@ mixin MailboxWidgetMixin {
|
||||
MailboxActions.openInNewTab,
|
||||
if (!mailbox.isRecovered)
|
||||
MailboxActions.newSubfolder,
|
||||
MailboxActions.createFilter,
|
||||
if (mailbox.isTrash)
|
||||
...[
|
||||
MailboxActions.emptyTrash,
|
||||
@@ -49,6 +50,7 @@ mixin MailboxWidgetMixin {
|
||||
if (PlatformInfo.isWeb && mailbox.isSubscribedMailbox)
|
||||
MailboxActions.openInNewTab,
|
||||
MailboxActions.newSubfolder,
|
||||
MailboxActions.createFilter,
|
||||
if (mailbox.countUnReadEmailsAsString.isNotEmpty)
|
||||
MailboxActions.markAsRead,
|
||||
MailboxActions.move,
|
||||
@@ -202,11 +204,8 @@ mixin MailboxWidgetMixin {
|
||||
iconAction: contextMenuItem.action.getContextMenuIcon(imagePaths),
|
||||
nameAction: contextMenuItem.action.getTitleContextMenu(context),
|
||||
colorIcon: contextMenuItem.action.getColorContextMenuIcon(),
|
||||
padding: const EdgeInsetsDirectional.only(start: 12),
|
||||
iconSize: 24,
|
||||
styleName: TextStyle(
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 16,
|
||||
padding: const EdgeInsetsDirectional.symmetric(horizontal: 12),
|
||||
styleName: ThemeUtils.textStyleBodyBody3(
|
||||
color: contextMenuItem.action.getColorContextMenuTitle()
|
||||
),
|
||||
onCallbackAction: () => handleMailboxAction(context, contextMenuItem.action, mailbox)
|
||||
|
||||
@@ -24,6 +24,7 @@ enum MailboxActions {
|
||||
emptyTrash,
|
||||
emptySpam,
|
||||
newSubfolder,
|
||||
createFilter,
|
||||
confirmMailSpam,
|
||||
recoverDeletedMessages,
|
||||
allowSubaddressing,
|
||||
@@ -55,6 +56,8 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
return AppLocalizations.of(context).copySubaddress;
|
||||
case MailboxActions.newSubfolder:
|
||||
return AppLocalizations.of(context).newSubfolder;
|
||||
case MailboxActions.createFilter:
|
||||
return AppLocalizations.of(context).createFilter;
|
||||
case MailboxActions.disableSpamReport:
|
||||
return AppLocalizations.of(context).disableSpamReport;
|
||||
case MailboxActions.enableSpamReport:
|
||||
@@ -96,6 +99,8 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
return imagePaths.icCopy;
|
||||
case MailboxActions.newSubfolder:
|
||||
return imagePaths.icAddNewFolder;
|
||||
case MailboxActions.createFilter:
|
||||
return imagePaths.icCreateFilter;
|
||||
case MailboxActions.disableSpamReport:
|
||||
return imagePaths.icSpamReportDisable;
|
||||
case MailboxActions.enableSpamReport:
|
||||
@@ -132,7 +137,7 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
Color getColorContextMenuTitle() {
|
||||
switch(this) {
|
||||
case MailboxActions.delete:
|
||||
return AppColor.colorActionDeleteConfirmDialog;
|
||||
return AppColor.redFF3347;
|
||||
default:
|
||||
return Colors.black;
|
||||
}
|
||||
@@ -141,9 +146,9 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
Color getColorContextMenuIcon() {
|
||||
switch(this) {
|
||||
case MailboxActions.delete:
|
||||
return AppColor.colorActionDeleteConfirmDialog;
|
||||
return AppColor.redFF3347;
|
||||
default:
|
||||
return AppColor.primaryColor;
|
||||
return AppColor.steelGrayA540;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,6 +193,7 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
case MailboxActions.openInNewTab:
|
||||
case MailboxActions.copySubaddress:
|
||||
case MailboxActions.newSubfolder:
|
||||
case MailboxActions.createFilter:
|
||||
case MailboxActions.disableSpamReport:
|
||||
case MailboxActions.enableSpamReport:
|
||||
case MailboxActions.enableMailbox:
|
||||
|
||||
@@ -42,6 +42,7 @@ class FoldersBarWidget extends StatelessWidget {
|
||||
backgroundColor: Colors.transparent,
|
||||
iconColor: AppColor.steelGrayA540,
|
||||
iconSize: 20,
|
||||
padding: const EdgeInsets.all(5),
|
||||
tooltipMessage: AppLocalizations.of(context).searchForFolders,
|
||||
onTapActionCallback: onOpenSearchFolder,
|
||||
);
|
||||
@@ -57,7 +58,7 @@ class FoldersBarWidget extends StatelessWidget {
|
||||
icon: imagePaths.icAddNewFolder,
|
||||
backgroundColor: Colors.transparent,
|
||||
iconColor: AppColor.steelGrayA540,
|
||||
iconSize: 24,
|
||||
iconSize: 20,
|
||||
padding: const EdgeInsets.all(5),
|
||||
tooltipMessage: AppLocalizations.of(context).newFolder,
|
||||
onTapActionCallback: onAddNewFolder,
|
||||
|
||||
+6
-4
@@ -11,8 +11,8 @@ class MailboxBottomSheetActionTileBuilder extends CupertinoActionSheetActionBuil
|
||||
final PresentationMailbox presentationMailbox;
|
||||
final SvgPicture? actionSelected;
|
||||
final Color? bgColor;
|
||||
final EdgeInsets? iconLeftPadding;
|
||||
final EdgeInsets? iconRightPadding;
|
||||
final EdgeInsetsGeometry? iconLeftPadding;
|
||||
final EdgeInsetsGeometry? iconRightPadding;
|
||||
final bool opacity;
|
||||
final bool absorbing;
|
||||
|
||||
@@ -46,8 +46,10 @@ class MailboxBottomSheetActionTileBuilder extends CupertinoActionSheetActionBuil
|
||||
key: key,
|
||||
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||
Padding(
|
||||
padding: iconLeftPadding ?? const EdgeInsets.only(left: 12, right: 16),
|
||||
child: actionIcon),
|
||||
padding: iconLeftPadding ??
|
||||
const EdgeInsetsDirectional.only(start: 12, end: 16),
|
||||
child: actionIcon,
|
||||
),
|
||||
Expanded(child: Text(actionName, textAlign: TextAlign.left, style: actionTextStyle())),
|
||||
]),
|
||||
onPressed: () {
|
||||
|
||||
Reference in New Issue
Block a user