TF-1201 Support mouse right click for mailbox menu to open context menu on browser

(cherry picked from commit 1ce2735d7ae40c76082988aae9bc28a835ac1a56)
This commit is contained in:
dab246
2023-03-16 18:43:30 +07:00
committed by Dat Vu
parent 015617e0bd
commit 57ac72706c
3 changed files with 20 additions and 12 deletions
@@ -1,22 +1,14 @@
import 'package:core/utils/app_logger.dart';
import 'package:flutter/material.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
mixin MailboxActionHandlerMixin {
void openMailboxInNewTabAction(PresentationMailbox mailbox) {
final mailboxRouteWeb = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
NavigationRouter(mailboxId: mailbox.id)
);
log('MailboxActionHandlerMixin::openMailboxInNewTabAction(): mailboxRouteWeb: $mailboxRouteWeb');
AppUtils.launchLink(mailboxRouteWeb.toString());
AppUtils.launchLink(mailbox.mailboxRouteWeb.toString());
}
void markAsReadMailboxAction(
@@ -1,5 +1,8 @@
import 'package:core/core.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
extension PresentationMailboxExtension on PresentationMailbox {
@@ -48,4 +51,6 @@ extension PresentationMailboxExtension on PresentationMailbox {
return imagePaths.icFolderMailbox;
}
}
Uri get mailboxRouteWeb => RouteUtils.generateRouteBrowser(AppRoutes.dashboard, NavigationRouter(mailboxId: id));
}
@@ -11,6 +11,7 @@ import 'package:model/email/presentation_email.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:model/mailbox/select_mode.dart';
import 'package:tmail_ui_user/features/base/widget/link_browser_widget.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
@@ -83,11 +84,21 @@ class MailBoxFolderTileBuilder {
Widget build() {
if (responsiveUtils?.isWebDesktop(_context) == true && mailboxDisplayed == MailboxDisplayed.mailbox) {
return DragTarget<List<PresentationEmail>>(
builder: (_, __, ___) => _buildMailboxItem(_context),
builder: (_, __, ___) => LinkBrowserWidget(
uri: _mailboxNode.item.mailboxRouteWeb,
child: _buildMailboxItem(_context)
),
onAccept: (emails) => _onDragItemAccepted?.call(emails, _mailboxNode.item),
);
} else {
return _buildMailboxItem(_context);
if (BuildUtils.isWeb && mailboxDisplayed == MailboxDisplayed.mailbox) {
return LinkBrowserWidget(
uri: _mailboxNode.item.mailboxRouteWeb,
child: _buildMailboxItem(_context)
);
} else {
return _buildMailboxItem(_context);
}
}
}