TF-2134 Add mailto page router

(cherry picked from commit d2d3acf255e5b616d55ae379cf1f79f6cc098639)
This commit is contained in:
dab246
2023-09-12 02:16:36 +07:00
committed by Dat Vu
parent c4b9caab3f
commit b645c6ae1a
4 changed files with 29 additions and 8 deletions
+8 -4
View File
@@ -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(
+2 -2
View File
@@ -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';
}
+15 -2
View File
@@ -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<Object?> get props => [emailId, mailboxId, searchQuery, dashboardType];
List<Object?> get props => [
emailId,
mailboxId,
searchQuery,
dashboardType,
routeName,
emailAddress,
];
}
+4
View File
@@ -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,
);
}