diff --git a/core/lib/presentation/utils/html_transformer/dom/remove_lazy_loading_image_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/remove_lazy_loading_image_transformers.dart
new file mode 100644
index 000000000..857d04192
--- /dev/null
+++ b/core/lib/presentation/utils/html_transformer/dom/remove_lazy_loading_image_transformers.dart
@@ -0,0 +1,19 @@
+import 'package:core/data/network/dio_client.dart';
+import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
+import 'package:html/dom.dart';
+
+class RemoveLazyLoadingImageTransformer extends DomTransformer {
+ const RemoveLazyLoadingImageTransformer();
+
+ @override
+ Future process({
+ required Document document,
+ required DioClient dioClient,
+ Map? mapUrlDownloadCID,
+ }) async {
+ final elements = document.querySelectorAll('img[loading]');
+ await Future.wait(elements.map((element) async {
+ element.attributes.remove('loading');
+ }));
+ }
+}
diff --git a/core/lib/presentation/utils/html_transformer/transform_configuration.dart b/core/lib/presentation/utils/html_transformer/transform_configuration.dart
index 9e1b03cd0..fecf928d1 100644
--- a/core/lib/presentation/utils/html_transformer/transform_configuration.dart
+++ b/core/lib/presentation/utils/html_transformer/transform_configuration.dart
@@ -9,6 +9,7 @@ import 'package:core/presentation/utils/html_transformer/dom/blockquoted_transfo
import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_collapsed_signature_button_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_for_background_image_transformers.dart';
+import 'package:core/presentation/utils/html_transformer/dom/remove_lazy_loading_image_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_max_width_in_image_style_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_style_tag_outside_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_tooltip_link_transformers.dart';
@@ -67,6 +68,7 @@ class TransformConfiguration {
if (PlatformInfo.isWeb)
const RemoveTooltipLinkTransformer(),
const RemoveLazyLoadingForBackgroundImageTransformer(),
+ const RemoveLazyLoadingImageTransformer(),
const RemoveCollapsedSignatureButtonTransformer(),
const RemoveStyleTagOutsideTransformer(),
const RemoveMaxWidthInImageStyleTransformer(),
diff --git a/lib/features/email/domain/model/email_print.dart b/lib/features/email/domain/model/email_print.dart
index 3c1f33063..d37dec519 100644
--- a/lib/features/email/domain/model/email_print.dart
+++ b/lib/features/email/domain/model/email_print.dart
@@ -1,6 +1,12 @@
import 'package:equatable/equatable.dart';
+import 'package:flutter/material.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:model/email/attachment.dart';
+import 'package:model/extensions/list_email_address_extension.dart';
+import 'package:model/extensions/presentation_email_extension.dart';
+import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
+import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
+import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class EmailPrint with EquatableMixin {
final String appName;
@@ -39,6 +45,30 @@ class EmailPrint with EquatableMixin {
this.replyToAddress,
});
+ factory EmailPrint.generate({
+ required PrintEmailAction printEmailAction,
+ required EmailLoaded emailLoaded
+ }) {
+ return EmailPrint(
+ appName: AppLocalizations.of(printEmailAction.context).app_name,
+ userName: printEmailAction.userEmail,
+ emailInformation: printEmailAction.email.toEmail(),
+ attachments: emailLoaded.attachments,
+ emailContent: emailLoaded.htmlContent,
+ locale: Localizations.localeOf(printEmailAction.context).toLanguageTag(),
+ fromPrefix: AppLocalizations.of(printEmailAction.context).from_email_address_prefix,
+ toPrefix: AppLocalizations.of(printEmailAction.context).to_email_address_prefix,
+ ccPrefix: AppLocalizations.of(printEmailAction.context).cc_email_address_prefix,
+ bccPrefix: AppLocalizations.of(printEmailAction.context).bcc_email_address_prefix,
+ replyToPrefix: AppLocalizations.of(printEmailAction.context).replyToEmailAddressPrefix,
+ titleAttachment: AppLocalizations.of(printEmailAction.context).attachments.toLowerCase(),
+ toAddress: printEmailAction.email.to?.listEmailAddressToString(isFullEmailAddress: true),
+ ccAddress: printEmailAction.email.cc?.listEmailAddressToString(isFullEmailAddress: true),
+ bccAddress: printEmailAction.email.bcc?.listEmailAddressToString(isFullEmailAddress: true),
+ replyToAddress: printEmailAction.email.replyTo?.listEmailAddressToString(isFullEmailAddress: true),
+ );
+ }
+
@override
List