TF-3918 Fix email text be overlapped in body

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-31 11:54:20 +07:00
committed by Dat H. Pham
parent 7038f623fb
commit 11e170978b
2 changed files with 43 additions and 1 deletions
@@ -0,0 +1,35 @@
import 'package:core/data/network/dio_client.dart';
import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
import 'package:core/utils/app_logger.dart';
import 'package:html/dom.dart';
class NormalizeLineHeightInStyleTransformer extends DomTransformer {
const NormalizeLineHeightInStyleTransformer();
@override
Future<void> process({
required Document document,
required DioClient dioClient,
Map<String, String>? mapUrlDownloadCID,
}) async {
try {
final elements = document.querySelectorAll('[style*="line-height"]');
for (final element in elements) {
final originalStyle = element.attributes['style'];
if (originalStyle == null) continue;
final updatedStyle = originalStyle.replaceAllMapped(
RegExp(r'line-height\s*:\s*1px\s*;?', caseSensitive: false),
(match) => '',
);
if (updatedStyle != originalStyle) {
element.attributes['style'] = updatedStyle;
}
}
} catch (e) {
logError('$runtimeType::process: Exception = $e');
}
}
}
@@ -6,6 +6,7 @@ import 'package:core/presentation/utils/html_transformer/dom/hide_draft_signatur
import 'package:core/presentation/utils/html_transformer/dom/block_code_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/block_code_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/block_quoted_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/block_quoted_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart';
import 'package:core/presentation/utils/html_transformer/dom/normalize_line_height_in_style_transformer.dart';
import 'package:core/presentation/utils/html_transformer/dom/remove_collapsed_signature_button_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_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_lazy_loading_image_transformers.dart';
@@ -46,6 +47,7 @@ class TransformConfiguration {
const RemoveTooltipLinkTransformer(), const RemoveTooltipLinkTransformer(),
const SignatureTransformer(), const SignatureTransformer(),
const RemoveCollapsedSignatureButtonTransformer(), const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]); ]);
factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([ factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([
@@ -54,7 +56,10 @@ class TransformConfiguration {
]); ]);
factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create( factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create(
customDomTransformers: [const ImageTransformer()] customDomTransformers: [
const ImageTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]
); );
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create( factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create(
customDomTransformers: [ customDomTransformers: [
@@ -73,6 +78,7 @@ class TransformConfiguration {
const ImageTransformer(), const ImageTransformer(),
const AddLazyLoadingForBackgroundImageTransformer(), const AddLazyLoadingForBackgroundImageTransformer(),
const RemoveCollapsedSignatureButtonTransformer(), const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
] ]
); );
@@ -137,6 +143,7 @@ class TransformConfiguration {
const ImageTransformer(), const ImageTransformer(),
const AddLazyLoadingForBackgroundImageTransformer(), const AddLazyLoadingForBackgroundImageTransformer(),
const RemoveCollapsedSignatureButtonTransformer(), const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]; ];
static const List<TextTransformer> standardTextTransformers = [ static const List<TextTransformer> standardTextTransformers = [