TF-3759 Display correct context menu for web responsive

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-16 13:22:04 +07:00
committed by Dat H. Pham
parent d39d09663d
commit ecc3cf81d4
4 changed files with 41 additions and 84 deletions
@@ -204,24 +204,18 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
context,
mailboxNode.item,
),
onDragItemAccepted: PlatformInfo.isMobile
? null
: controller.handleDragItemAccepted,
onMenuActionClick: PlatformInfo.isMobile
? null
: (position, mailboxNode) {
return controller.openMailboxContextMenuAction(
context,
position,
mailboxNode.item,
);
},
onEmptyMailboxActionCallback: PlatformInfo.isMobile
? null
: (mailboxNode) => controller.emptyMailboxAction(
context,
mailboxNode.item,
),
onDragItemAccepted: controller.handleDragItemAccepted,
onMenuActionClick: (position, mailboxNode) {
return controller.openMailboxContextMenuAction(
context,
position,
mailboxNode.item,
);
},
onEmptyMailboxActionCallback: (mailboxNode) => controller.emptyMailboxAction(
context,
mailboxNode.item,
),
));
if (mailboxNode.hasChildren()) {
@@ -75,53 +75,30 @@ extension HandleMailboxActionExtension on MailboxController {
final isSubAddressingSupported =
session?.isSubAddressingSupported(accountId) ?? false;
if (responsiveUtils.isScreenWithShortestSide(context)) {
final contextMenuActions = listContextMenuItemAction(
mailbox,
mailboxDashBoardController.enableSpamReport,
deletedMessageVaultSupported,
isSubAddressingSupported,
imagePaths,
AppLocalizations.of(context),
);
final popupMenuActions = getListPopupMenuItemAction(
AppLocalizations.of(context),
imagePaths,
mailbox,
mailboxDashBoardController.enableSpamReport,
deletedMessageVaultSupported,
isSubAddressingSupported,
);
if (contextMenuActions.isEmpty) return Future.value();
if (popupMenuActions.isEmpty) return Future.value();
return openBottomSheetContextMenuAction(
context: context,
itemActions: contextMenuActions,
onContextMenuActionClick: (menuAction) => handleMailboxAction(
context,
menuAction.action,
mailbox,
final popupMenuItems = popupMenuActions.map((menuAction) {
return PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupMenuItemActionWidget(
menuAction: menuAction,
menuActionClick: (menuAction) {
popBack();
handleMailboxAction(context, menuAction.action, mailbox);
},
),
);
} else {
final popupMenuActions = getListPopupMenuItemAction(
AppLocalizations.of(context),
imagePaths,
mailbox,
mailboxDashBoardController.enableSpamReport,
deletedMessageVaultSupported,
isSubAddressingSupported,
);
}).toList();
if (popupMenuActions.isEmpty) return Future.value();
final popupMenuItems = popupMenuActions.map((menuAction) {
return PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupMenuItemActionWidget(
menuAction: menuAction,
menuActionClick: (menuAction) {
popBack();
handleMailboxAction(context, menuAction.action, mailbox);
},
),
);
}).toList();
return openPopupMenuAction(context, position, popupMenuItems);
}
return openPopupMenuAction(context, position, popupMenuItems);
}
}