diff --git a/lib/features/base/mixin/mailbox_action_handler_mixin.dart b/lib/features/base/mixin/mailbox_action_handler_mixin.dart index 2079d8599..f9c495eeb 100644 --- a/lib/features/base/mixin/mailbox_action_handler_mixin.dart +++ b/lib/features/base/mixin/mailbox_action_handler_mixin.dart @@ -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( diff --git a/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart b/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart index 2d80ed044..efd91e067 100644 --- a/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart +++ b/lib/features/mailbox/domain/extensions/presentation_mailbox_extension.dart @@ -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)); } \ No newline at end of file diff --git a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart index c582fe9c1..2b5b6f345 100644 --- a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart +++ b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart @@ -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>( - 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); + } } }