TF-1436 Disable show/hide mailbox button for child team-mailbox

This commit is contained in:
dab246
2023-02-14 10:59:32 +07:00
committed by Dat Vu
parent 7703db7f5a
commit 259f5ae6e3
3 changed files with 28 additions and 19 deletions
@@ -195,16 +195,22 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
});
}
List<FocusedMenuItem> _listPopupMenuItemAction(BuildContext context, PresentationMailbox mailbox) {
final mailboxActionsSupported = mailbox.isSubscribed?.value == true
List<ContextMenuItemMailboxAction> _generateListContextMenuItemAction(PresentationMailbox mailbox) {
final mailboxActionsSupported = mailbox.supportedSubscribe
? _listActionForMailboxSubscribed(mailbox)
: _listActionForMailboxUnsubscribed();
: _listActionForMailboxUnsubscribed(mailbox);
final listContextMenuItemAction = mailboxActionsSupported
.map((action) => ContextMenuItemMailboxAction(action, action.getContextMenuItemState(mailbox)))
.toList();
final contextMenuActions = listContextMenuItemAction(
mailbox,
controller.dashboardController,
mailboxActions: mailboxActionsSupported
);
return listContextMenuItemAction
return contextMenuActions;
}
List<FocusedMenuItem> _listPopupMenuItemAction(BuildContext context, PresentationMailbox mailbox) {
return _generateListContextMenuItemAction(mailbox)
.map((action) => _mailboxFocusedMenuItem(context, action, mailbox))
.toList();
}
@@ -251,9 +257,10 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
);
}
List<MailboxActions> _listActionForMailboxUnsubscribed() {
List<MailboxActions> _listActionForMailboxUnsubscribed(PresentationMailbox mailbox) {
return [
MailboxActions.enableMailbox
if (mailbox.isSupportedEnableMailbox)
MailboxActions.enableMailbox
];
}
@@ -266,15 +273,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
PresentationMailbox mailbox,
{RelativeRect? position}
) {
final mailboxActionsSupported = mailbox.supportedSubscribe
? _listActionForMailboxSubscribed(mailbox)
: _listActionForMailboxUnsubscribed();
final contextMenuActions = listContextMenuItemAction(
mailbox,
controller.dashboardController,
mailboxActions: mailboxActionsSupported
);
final contextMenuActions = _generateListContextMenuItemAction(mailbox);
if (controller.responsiveUtils.isScreenWithShortestSide(context) || position == null) {
controller.openContextMenuAction(
@@ -224,7 +224,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
}
Widget _buildMenuIcon(BuildContext context) {
if (isHoverItem) {
if (isHoverItem && widget.listPopupMenuItemAction?.isNotEmpty == true) {
return InkWell(
onTapDown: (detail) {
final screenSize = MediaQuery.of(context).size;
@@ -116,6 +116,16 @@ class PresentationMailbox with EquatableMixin {
}
}
bool get isSupportedEnableMailbox {
if (supportedSubscribe) {
return false;
}
if (isPersonal) {
return true;
} else {
return isTeamMailboxes;
}
}
@override
List<Object?> get props => [