From b645c6ae1a78978bae8abd723932784a088f046f Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 12 Sep 2023 02:16:36 +0700 Subject: [PATCH] TF-2134 Add mailto page router (cherry picked from commit d2d3acf255e5b616d55ae379cf1f79f6cc098639) --- lib/main/pages/app_pages.dart | 12 ++++++++---- lib/main/routes/app_routes.dart | 4 ++-- lib/main/routes/navigation_router.dart | 17 +++++++++++++++-- lib/main/routes/route_utils.dart | 4 ++++ 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/lib/main/pages/app_pages.dart b/lib/main/pages/app_pages.dart index 0a24cd9e3..786420489 100644 --- a/lib/main/pages/app_pages.dart +++ b/lib/main/pages/app_pages.dart @@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart'; import 'package:tmail_ui_user/features/home/presentation/home_view.dart'; import 'package:tmail_ui_user/features/contact/presentation/contact_view.dart' deferred as contact_view; import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_bindings.dart'; +import 'package:tmail_ui_user/features/mailto/presentation/mailto_url_bindings.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_view.dart' deferred as rules_filter_creator; import 'package:tmail_ui_user/features/login/presentation/login_bindings.dart'; @@ -32,6 +33,7 @@ import 'package:tmail_ui_user/features/unknown_route_page/unknown_route_page_vie import 'package:tmail_ui_user/main/pages/deferred_widget.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart' deferred as search_mailbox_view; +import 'package:tmail_ui_user/features/mailto/presentation/mailto_url_view.dart' deferred as mailto_url_view; class AppPages { static final pages = [ @@ -54,11 +56,13 @@ class AppPages { () => mailbox_dashboard.MailboxDashBoardView()), binding: MailboxDashBoardBindings()), GetPage( - name: AppRoutes.dashboardWithParameter, + name: AppRoutes.mailtoURL, page: () => DeferredWidget( - mailbox_dashboard.loadLibrary, - () => mailbox_dashboard.MailboxDashBoardView()), - binding: MailboxDashBoardBindings()), + mailto_url_view.loadLibrary, + () => mailto_url_view.MailtoUrlView() + ), + binding: MailtoUrlBindings() + ), GetPage( name: AppRoutes.settings, page: () => DeferredWidget( diff --git a/lib/main/routes/app_routes.dart b/lib/main/routes/app_routes.dart index afc761e5a..b5be314af 100644 --- a/lib/main/routes/app_routes.dart +++ b/lib/main/routes/app_routes.dart @@ -2,8 +2,7 @@ abstract class AppRoutes { static const home = '/'; static const login = '/login'; static const session = '/session'; - static const dashboard = '/dashboard/'; - static const dashboardWithParameter = '/dashboard/:id'; + static const dashboard = '/dashboard'; static const settings = '/settings'; static const composer = '/composer'; static const destinationPicker = '/destination_picker'; @@ -14,4 +13,5 @@ abstract class AppRoutes { static const emailsForwardCreator = '/emails_forward_creator'; static const unknownRoutePage = '/notfound'; static const searchMailbox = '/search_mailbox'; + static const mailtoURL = '/mailto'; } \ No newline at end of file diff --git a/lib/main/routes/navigation_router.dart b/lib/main/routes/navigation_router.dart index 368836fbb..bdac232f1 100644 --- a/lib/main/routes/navigation_router.dart +++ b/lib/main/routes/navigation_router.dart @@ -14,14 +14,27 @@ class NavigationRouter with EquatableMixin { final MailboxId? mailboxId; final DashboardType dashboardType; final SearchQuery? searchQuery; + final String? routeName; + final String? emailAddress; NavigationRouter({ this.emailId, this.mailboxId, this.searchQuery, - this.dashboardType = DashboardType.normal + this.dashboardType = DashboardType.normal, + this.routeName, + this.emailAddress, }); + factory NavigationRouter.initial() => NavigationRouter(); + @override - List get props => [emailId, mailboxId, searchQuery, dashboardType]; + List get props => [ + emailId, + mailboxId, + searchQuery, + dashboardType, + routeName, + emailAddress, + ]; } \ No newline at end of file diff --git a/lib/main/routes/route_utils.dart b/lib/main/routes/route_utils.dart index 08ee33048..0b3e9a286 100644 --- a/lib/main/routes/route_utils.dart +++ b/lib/main/routes/route_utils.dart @@ -58,6 +58,8 @@ abstract class RouteUtils { final typeParam = parameters['type']; final contextPram = parameters['context']; final queryParam = parameters['q']; + final routeName = parameters['routeName']; + final emailAddress = parameters['emailAddress']; final emailId = idParam != null ? EmailId(Id(idParam)) : null; final mailboxId = contextPram != null ? MailboxId(Id(contextPram)) : null; @@ -71,6 +73,8 @@ abstract class RouteUtils { mailboxId: mailboxId, searchQuery: searchQuery, dashboardType: dashboardType, + routeName: routeName, + emailAddress: emailAddress, ); }