TF-2168 Fix mailto invalid recipient
(cherry picked from commit c559daeb1029c96103e3bca951317d878a837a5c)
This commit is contained in:
@@ -440,14 +440,16 @@ class ComposerController extends BaseController {
|
||||
toAddressExpandMode.value = ExpandMode.COLLAPSE;
|
||||
_updateStatusEmailSendButton();
|
||||
break;
|
||||
case EmailActionType.composeFromMailtoURL:
|
||||
if (GetUtils.isEmail(arguments.uri ?? '')) {
|
||||
listToEmailAddress.add(EmailAddress(null, arguments.uri));
|
||||
} else {
|
||||
listToEmailAddress.add(EmailAddress(null, 'invalid'));
|
||||
case EmailActionType.composeFromMailtoUri:
|
||||
if (arguments.subject != null) {
|
||||
setSubjectEmail(arguments.subject!);
|
||||
subjectEmailInputController.text = arguments.subject!;
|
||||
}
|
||||
if (arguments.emailAddress != null) {
|
||||
listToEmailAddress.add(arguments.emailAddress!);
|
||||
isInitialRecipient.value = true;
|
||||
toAddressExpandMode.value = ExpandMode.COLLAPSE;
|
||||
}
|
||||
isInitialRecipient.value = true;
|
||||
toAddressExpandMode.value = ExpandMode.COLLAPSE;
|
||||
_updateStatusEmailSendButton();
|
||||
break;
|
||||
case EmailActionType.reply:
|
||||
|
||||
@@ -16,7 +16,7 @@ class ComposerArguments extends RouterArguments {
|
||||
final List<Attachment>? attachments;
|
||||
final Role? mailboxRole;
|
||||
final SendingEmail? sendingEmail;
|
||||
final String? uri;
|
||||
final String? subject;
|
||||
final MessageIdsHeaderValue? messageId;
|
||||
final MessageIdsHeaderValue? references;
|
||||
|
||||
@@ -29,7 +29,7 @@ class ComposerArguments extends RouterArguments {
|
||||
this.emailAddress,
|
||||
this.listSharedMediaFile,
|
||||
this.sendingEmail,
|
||||
this.uri,
|
||||
this.subject,
|
||||
this.messageId,
|
||||
this.references,
|
||||
});
|
||||
@@ -58,10 +58,11 @@ class ComposerArguments extends RouterArguments {
|
||||
emailAddress: emailAddress
|
||||
);
|
||||
|
||||
factory ComposerArguments.fromMailtoURL(String? uri) =>
|
||||
factory ComposerArguments.fromMailtoUri({EmailAddress? emailAddress, String? subject}) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.composeFromMailtoURL,
|
||||
uri: uri
|
||||
emailActionType: EmailActionType.composeFromMailtoUri,
|
||||
emailAddress: emailAddress,
|
||||
subject: subject,
|
||||
);
|
||||
|
||||
factory ComposerArguments.editDraftEmail(PresentationEmail presentationEmail) =>
|
||||
@@ -140,7 +141,7 @@ class ComposerArguments extends RouterArguments {
|
||||
emailAddress,
|
||||
listSharedMediaFile,
|
||||
sendingEmail,
|
||||
uri,
|
||||
subject,
|
||||
messageId,
|
||||
references,
|
||||
];
|
||||
|
||||
@@ -405,7 +405,10 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
if (isHasDataFromRoute) {
|
||||
if (isRedirectToMailtoURL) {
|
||||
mailboxDashBoardController.goToComposer(
|
||||
ComposerArguments.fromMailtoURL(navigationRouter?.emailAddress)
|
||||
ComposerArguments.fromMailtoUri(
|
||||
emailAddress: navigationRouter?.emailAddress,
|
||||
subject: navigationRouter?.subject
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class MailtoUrlController extends ReloadableController {
|
||||
if (parameters.containsKey('uri')) {
|
||||
final mailtoArgument = MailtoArguments(
|
||||
session: session,
|
||||
emailAddress: parameters['uri']
|
||||
mailtoUri: parameters['uri']
|
||||
);
|
||||
popAndPush(
|
||||
RouteUtils.generateNavigationRoute(
|
||||
|
||||
@@ -1,22 +1,17 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/routes/router_arguments.dart';
|
||||
|
||||
class MailtoArguments extends RouterArguments {
|
||||
|
||||
final Session session;
|
||||
final String? emailAddress;
|
||||
final String? mailtoUri;
|
||||
|
||||
MailtoArguments({required this.session, this.emailAddress});
|
||||
MailtoArguments({required this.session, this.mailtoUri});
|
||||
|
||||
Map<String, String?> toMapRouter() {
|
||||
return {
|
||||
'routeName': AppRoutes.mailtoURL,
|
||||
'emailAddress': emailAddress
|
||||
};
|
||||
}
|
||||
Map<String, String?> toMapRouter() => RouteUtils.parseMapMailtoFromUri(mailtoUri);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [session, emailAddress];
|
||||
List<Object?> get props => [session, mailtoUri];
|
||||
}
|
||||
Reference in New Issue
Block a user