TF-976 Blur out the option context menu mailbox action when deactivated on web

This commit is contained in:
dab246
2022-09-24 11:44:16 +07:00
committed by Dat H. Pham
parent ac9f00c948
commit 4d372336c0
5 changed files with 149 additions and 57 deletions
@@ -0,0 +1,7 @@
import 'package:tmail_ui_user/features/base/widget/context_menu_item_action.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
class ContextMenuItemMailboxAction extends ContextMenuItemAction<MailboxActions> {
ContextMenuItemMailboxAction(super.action, super.state);
}
@@ -1,6 +1,8 @@
import 'package:core/core.dart';
import 'package:flutter/material.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/base/widget/context_menu_item_action.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum MailboxActions {
@@ -113,4 +115,21 @@ extension MailboxActionsExtension on MailboxActions {
return true;
}
}
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
switch(this) {
case MailboxActions.markAsRead:
return mailbox.getCountUnReadEmails().isNotEmpty
? ContextMenuItemState.activated
: ContextMenuItemState.deactivated;
case MailboxActions.move:
case MailboxActions.rename:
case MailboxActions.delete:
return mailbox.hasRole()
? ContextMenuItemState.deactivated
: ContextMenuItemState.activated;
default:
return ContextMenuItemState.deactivated;
}
}
}