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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user