TF-1363: [Presentation] Implement disable and enable spam report
This commit is contained in:
@@ -57,6 +57,7 @@ import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_na
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/validator_failure_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/mailbox_creator_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_mailbox_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
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';
|
||||
@@ -1120,6 +1121,12 @@ class MailboxController extends BaseMailboxController {
|
||||
case MailboxActions.openInNewTab:
|
||||
openMailboxInNewTabAction(mailbox);
|
||||
break;
|
||||
case MailboxActions.disableSpamReport:
|
||||
case MailboxActions.enableSpamReport:
|
||||
final _currentSpamReportState = mailboxDashBoardController.enableSpamRepot;
|
||||
final _storeSpamReportState = _currentSpamReportState ? SpamReportState.disabled : SpamReportState.enabled;
|
||||
mailboxDashBoardController.storeSpamReportStateAction(_storeSpamReportState);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -408,6 +408,11 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
||||
MailboxActions.delete
|
||||
];
|
||||
|
||||
if(mailbox.isSpam) {
|
||||
mailboxActionsSupported.insert(1,
|
||||
controller.mailboxDashBoardController.enableSpamRepot ? MailboxActions.disableSpamReport : MailboxActions.enableSpamReport);
|
||||
}
|
||||
|
||||
final listContextMenuItemAction = mailboxActionsSupported
|
||||
.map((action) => ContextMenuItemMailboxAction(
|
||||
action,
|
||||
@@ -488,7 +493,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
||||
styleName: TextStyle(
|
||||
fontWeight: FontWeight.normal,
|
||||
fontSize: 17,
|
||||
color: contextMenuItem.action.getColorContextMenuIcon()),
|
||||
color: contextMenuItem.action.getColorContextMenuTitle()),
|
||||
onCallbackAction: () =>
|
||||
controller.handleMailboxAction(context, contextMenuItem.action, mailbox)),
|
||||
),
|
||||
|
||||
@@ -14,7 +14,9 @@ enum MailboxActions {
|
||||
move,
|
||||
markAsRead,
|
||||
selectForRuleAction,
|
||||
openInNewTab
|
||||
openInNewTab,
|
||||
disableSpamReport,
|
||||
enableSpamReport
|
||||
}
|
||||
|
||||
extension MailboxActionsExtension on MailboxActions {
|
||||
@@ -38,6 +40,10 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
switch(this) {
|
||||
case MailboxActions.openInNewTab:
|
||||
return AppLocalizations.of(context).openInNewTab;
|
||||
case MailboxActions.disableSpamReport:
|
||||
return AppLocalizations.of(context).disableSpamReport;
|
||||
case MailboxActions.enableSpamReport:
|
||||
return AppLocalizations.of(context).enableSpamReport;
|
||||
case MailboxActions.markAsRead:
|
||||
return AppLocalizations.of(context).mark_as_read;
|
||||
case MailboxActions.move:
|
||||
@@ -55,6 +61,10 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
switch(this) {
|
||||
case MailboxActions.openInNewTab:
|
||||
return imagePaths.icOpenInNewTab;
|
||||
case MailboxActions.disableSpamReport:
|
||||
return imagePaths.icSpamReportDisable;
|
||||
case MailboxActions.enableSpamReport:
|
||||
return imagePaths.icSpamReportEnable;
|
||||
case MailboxActions.markAsRead:
|
||||
return imagePaths.icRead;
|
||||
case MailboxActions.move:
|
||||
@@ -68,10 +78,22 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
}
|
||||
}
|
||||
|
||||
Color getColorContextMenuTitle() {
|
||||
switch(this) {
|
||||
case MailboxActions.delete:
|
||||
return AppColor.colorActionDeleteConfirmDialog;
|
||||
default:
|
||||
return Colors.black;
|
||||
}
|
||||
}
|
||||
|
||||
Color getColorContextMenuIcon() {
|
||||
switch(this) {
|
||||
case MailboxActions.delete:
|
||||
return AppColor.colorActionDeleteConfirmDialog;
|
||||
case MailboxActions.disableSpamReport:
|
||||
case MailboxActions.enableSpamReport:
|
||||
return AppColor.primaryColor;
|
||||
default:
|
||||
return Colors.black;
|
||||
}
|
||||
@@ -116,7 +138,9 @@ extension MailboxActionsExtension on MailboxActions {
|
||||
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
|
||||
switch(this) {
|
||||
case MailboxActions.openInNewTab:
|
||||
return ContextMenuItemState.activated;
|
||||
case MailboxActions.disableSpamReport:
|
||||
case MailboxActions.enableSpamReport:
|
||||
return ContextMenuItemState.activated;
|
||||
case MailboxActions.markAsRead:
|
||||
return mailbox.getCountUnReadEmails().isNotEmpty
|
||||
? ContextMenuItemState.activated
|
||||
|
||||
Reference in New Issue
Block a user