TF-1201 Support right click to open mailbox in new tab

This commit is contained in:
dab246
2022-12-07 15:37:47 +07:00
committed by Dat H. Pham
parent c9cfd43734
commit 9af311ae1d
5 changed files with 31 additions and 9 deletions
@@ -71,6 +71,7 @@ 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_navigation.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
import 'package:uuid/uuid.dart';
class MailboxController extends BaseMailboxController {
@@ -1121,11 +1122,23 @@ class MailboxController extends BaseMailboxController {
case MailboxActions.markAsRead:
_markAsReadMailboxAction(context, mailbox);
break;
case MailboxActions.openInNewTab:
openMailboxInNewTabAction(mailbox);
break;
default:
break;
}
}
void openMailboxInNewTabAction(PresentationMailbox mailbox) {
final mailboxRouteWeb = RouteUtils.generateRouteBrowser(
AppRoutes.dashboard,
NavigationRouter(mailboxId: mailbox.id)
);
log('MailboxController::openMailboxInNewTabAction(): mailboxRouteWeb: $mailboxRouteWeb');
AppUtils.launchLink(mailboxRouteWeb.toString());
}
void _updateSelectedMailboxRouteOnBrowser() {
if (BuildUtils.isWeb) {
final selectedMailboxId = selectedMailbox?.id;
@@ -401,6 +401,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
PresentationMailbox mailbox
) {
final mailboxActionsSupported = [
MailboxActions.openInNewTab,
MailboxActions.markAsRead,
MailboxActions.move,
MailboxActions.rename,
@@ -14,6 +14,7 @@ enum MailboxActions {
move,
markAsRead,
selectForRuleAction,
openInNewTab
}
extension MailboxActionsExtension on MailboxActions {
@@ -35,6 +36,8 @@ extension MailboxActionsExtension on MailboxActions {
String getTitleContextMenu(BuildContext context) {
switch(this) {
case MailboxActions.openInNewTab:
return AppLocalizations.of(context).openInNewTab;
case MailboxActions.markAsRead:
return AppLocalizations.of(context).mark_as_read;
case MailboxActions.move:
@@ -50,6 +53,8 @@ extension MailboxActionsExtension on MailboxActions {
String getContextMenuIcon(ImagePaths imagePaths) {
switch(this) {
case MailboxActions.openInNewTab:
return imagePaths.icOpenInNewTab;
case MailboxActions.markAsRead:
return imagePaths.icRead;
case MailboxActions.move:
@@ -110,6 +115,8 @@ extension MailboxActionsExtension on MailboxActions {
ContextMenuItemState getContextMenuItemState(PresentationMailbox mailbox) {
switch(this) {
case MailboxActions.openInNewTab:
return ContextMenuItemState.activated;
case MailboxActions.markAsRead:
return mailbox.getCountUnReadEmails().isNotEmpty
? ContextMenuItemState.activated