TF-1961 Transform html email content in composer
(cherry picked from commit f5470c130744242195b265a0ea4aad044ad8e740)
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cache.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/main/routes/router_arguments.dart';
|
||||
|
||||
@@ -26,6 +27,84 @@ class ComposerArguments extends RouterArguments {
|
||||
this.sendingEmail
|
||||
});
|
||||
|
||||
factory ComposerArguments.fromSendingEmail(SendingEmail sendingEmail) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.editSendingEmail,
|
||||
sendingEmail: sendingEmail
|
||||
);
|
||||
|
||||
factory ComposerArguments.fromContentShared(String content) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.composeFromContentShared,
|
||||
emailContents: content
|
||||
);
|
||||
|
||||
factory ComposerArguments.fromFileShared(List<SharedMediaFile> filesShared) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.composeFromFileShared,
|
||||
listSharedMediaFile: filesShared
|
||||
);
|
||||
|
||||
factory ComposerArguments.fromEmailAddress(EmailAddress emailAddress) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.composeFromEmailAddress,
|
||||
emailAddress: emailAddress
|
||||
);
|
||||
|
||||
factory ComposerArguments.editDraftEmail(PresentationEmail presentationEmail) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.editDraft,
|
||||
presentationEmail: presentationEmail
|
||||
);
|
||||
|
||||
factory ComposerArguments.fromSessionStorageBrowser(ComposerCache composerCache) =>
|
||||
ComposerArguments(
|
||||
emailActionType: EmailActionType.reopenComposerBrowser,
|
||||
presentationEmail: PresentationEmail(
|
||||
id: composerCache.id,
|
||||
subject: composerCache.subject,
|
||||
from: composerCache.from,
|
||||
to: composerCache.to,
|
||||
cc: composerCache.cc,
|
||||
bcc: composerCache.bcc,
|
||||
),
|
||||
emailContents: composerCache.emailContentList.asHtmlString,
|
||||
);
|
||||
|
||||
factory ComposerArguments.replyEmail({
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
Role? mailboxRole,
|
||||
}) => ComposerArguments(
|
||||
emailActionType: EmailActionType.reply,
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
mailboxRole: mailboxRole
|
||||
);
|
||||
|
||||
factory ComposerArguments.replyAllEmail({
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
Role? mailboxRole,
|
||||
}) => ComposerArguments(
|
||||
emailActionType: EmailActionType.replyAll,
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
mailboxRole: mailboxRole
|
||||
);
|
||||
|
||||
factory ComposerArguments.forwardEmail({
|
||||
required PresentationEmail presentationEmail,
|
||||
required String content,
|
||||
required List<Attachment> attachments,
|
||||
}) => ComposerArguments(
|
||||
emailActionType: EmailActionType.forward,
|
||||
presentationEmail: presentationEmail,
|
||||
emailContents: content,
|
||||
attachments: attachments,
|
||||
mailboxRole: presentationEmail.mailboxContain?.role
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
emailActionType,
|
||||
|
||||
@@ -3,22 +3,19 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/email/attachment.dart';
|
||||
|
||||
class EmailLoaded with EquatableMixin {
|
||||
final String originalContent;
|
||||
final String displayedContent;
|
||||
final String htmlContent;
|
||||
final List<Attachment> attachments;
|
||||
final Email? emailCurrent;
|
||||
|
||||
EmailLoaded({
|
||||
required this.originalContent,
|
||||
required this.displayedContent,
|
||||
required this.htmlContent,
|
||||
required this.attachments,
|
||||
this.emailCurrent,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
originalContent,
|
||||
displayedContent,
|
||||
htmlContent,
|
||||
attachments,
|
||||
emailCurrent
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user