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_quoted_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_lazy_loading_for_background_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 SignatureTransformer(),
const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]);
factory TransformConfiguration.forReplyForwardEmptyEmail() => TransformConfiguration.fromDomTransformers([
@@ -54,7 +56,10 @@ class TransformConfiguration {
]);
factory TransformConfiguration.forDraftsEmail() => TransformConfiguration.create(
customDomTransformers: [const ImageTransformer()]
customDomTransformers: [
const ImageTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]
);
factory TransformConfiguration.forEditDraftsEmail() => TransformConfiguration.create(
customDomTransformers: [
@@ -73,6 +78,7 @@ class TransformConfiguration {
const ImageTransformer(),
const AddLazyLoadingForBackgroundImageTransformer(),
const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
]
);
@@ -137,6 +143,7 @@ class TransformConfiguration {
const ImageTransformer(),
const AddLazyLoadingForBackgroundImageTransformer(),
const RemoveCollapsedSignatureButtonTransformer(),
const NormalizeLineHeightInStyleTransformer(),
];
static const List<TextTransformer> standardTextTransformers = [