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) { List<ContextMenuItemMailboxAction> _generateListContextMenuItemAction(PresentationMailbox mailbox) {
final mailboxActionsSupported = mailbox.isSubscribed?.value == true final mailboxActionsSupported = mailbox.supportedSubscribe
? _listActionForMailboxSubscribed(mailbox) ? _listActionForMailboxSubscribed(mailbox)
: _listActionForMailboxUnsubscribed(); : _listActionForMailboxUnsubscribed(mailbox);
final listContextMenuItemAction = mailboxActionsSupported final contextMenuActions = listContextMenuItemAction(
.map((action) => ContextMenuItemMailboxAction(action, action.getContextMenuItemState(mailbox))) mailbox,
.toList(); controller.dashboardController,
mailboxActions: mailboxActionsSupported
);
return listContextMenuItemAction return contextMenuActions;
}
List<FocusedMenuItem> _listPopupMenuItemAction(BuildContext context, PresentationMailbox mailbox) {
return _generateListContextMenuItemAction(mailbox)
.map((action) => _mailboxFocusedMenuItem(context, action, mailbox)) .map((action) => _mailboxFocusedMenuItem(context, action, mailbox))
.toList(); .toList();
} }
@@ -251,9 +257,10 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
); );
} }
List<MailboxActions> _listActionForMailboxUnsubscribed() { List<MailboxActions> _listActionForMailboxUnsubscribed(PresentationMailbox mailbox) {
return [ return [
MailboxActions.enableMailbox if (mailbox.isSupportedEnableMailbox)
MailboxActions.enableMailbox
]; ];
} }
@@ -266,15 +273,7 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
PresentationMailbox mailbox, PresentationMailbox mailbox,
{RelativeRect? position} {RelativeRect? position}
) { ) {
final mailboxActionsSupported = mailbox.supportedSubscribe final contextMenuActions = _generateListContextMenuItemAction(mailbox);
? _listActionForMailboxSubscribed(mailbox)
: _listActionForMailboxUnsubscribed();
final contextMenuActions = listContextMenuItemAction(
mailbox,
controller.dashboardController,
mailboxActions: mailboxActionsSupported
);
if (controller.responsiveUtils.isScreenWithShortestSide(context) || position == null) { if (controller.responsiveUtils.isScreenWithShortestSide(context) || position == null) {
controller.openContextMenuAction( controller.openContextMenuAction(
@@ -224,7 +224,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
} }
Widget _buildMenuIcon(BuildContext context) { Widget _buildMenuIcon(BuildContext context) {
if (isHoverItem) { if (isHoverItem && widget.listPopupMenuItemAction?.isNotEmpty == true) {
return InkWell( return InkWell(
onTapDown: (detail) { onTapDown: (detail) {
final screenSize = MediaQuery.of(context).size; 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 @override
List<Object?> get props => [ List<Object?> get props => [